Архив метки: Python

Функция getattr() в Python

Огромное количество встроенных модулей, функций и операторов Python помогает программистам выполнять различные задачи. Функция getattr() — это встроенная функция Python, которая позволяет программистам получать доступ к значению атрибута объекта. Если значение не найдено, функция getattar() возвращает значение по умолчанию. По этой причине функция getattr() используется в основном для доступа к значениям атрибутов объектов. Эта статья предоставит подробное объяснение функции getattr() с некоторыми примерами.

 

Синтаксис

Прежде чем перейти к реализации функции getattr(), сначала обсудим ее синтаксис. Синтаксис функции getattr() следующий:

getattr(object_name,attribute_name,defalut_value)

 

Функция getattr() принимает в качестве аргумента три параметра:

  • object_name: имя объекта, к атрибуту которого нам нужно получить доступ.
  • attribute_name: имя атрибута, к которому нам нужно получить доступ.
  • default_value: значение по умолчанию, которое возвращается, если атрибут не найден.

 

Если атрибут name не найден и мы не определяем default_value, функция getattar() вызывает исключение AttributeError.

 

Примеры

Теперь мы рассмотрим несколько примеров с использованием функции getattr(). Мы создали студенческий класс и определили некоторые атрибуты для этого класса. Мы получаем доступ к этим атрибутам с помощью функции getattar().

# создание класса студент

class Student:

#определение атрибута name

name = "AndreyEx"

#определение атрибута email

email = "AndreyEx@example.ru"

# Создание объекта класса ученика

std_obj = Student()

# теперь std_obj - наш объект

# доступ к атрибуту имени

print("Значение атрибута имени:", getattr(std_obj, 'name'))

# доступ к атрибуту электронной почты

print("Значение атрибута электронной почты:", getattr (std_obj, 'email'))

 

Вывод

Функция getattr() успешно вернула значения атрибутов.

Теперь мы попытаемся получить доступ к атрибуту, который не определен. Мы определим значение по умолчанию для этого отсутствующего атрибута.

# создание класса Student

class Student:

# определение атрибута имени

name = "AndreyEx"

# определение атрибута электронной почты

email = "AndreyEx@example.ru"

# Создание объекта класса Student

std_obj = Student()

# Теперь std_obj - наш объект

# доступ к атрибуту age

print("Возраст:", getattr(std_obj, 'age', ' Более 20'))

 

Определенное значение — «Больше 20».

Вывод

В случае отсутствия атрибута «age» печатается определенное значение.

Если значение не определено, функция getattr() вызовет исключение AttributeError. Давайте посмотрим на пример этого.

# создание класса Student

class Student:

# определение атрибута name

name = "AndreyEx"

# определение атрибута email

email = "AndreyEx@example.ru" 

std_obj = Student()

# теперь std_obj - наш объект

# доступ к атрибуту age

print("Возраст:", getattr(std_obj, 'age'))

 

Вы также можете использовать функцию getattr() с namedtuple для доступа к значениям. Namedtuple — это контейнер типа словаря, но вы можете получить доступ к его значениям с помощью функции getattar(). Namedtuple — это класс модуля коллекций. Давайте реализуем именованный кортеж и получим доступ к значениям с помощью функции getattr(). Мы создаем именованный набор для student.

# импорт модуля collections

import collections

# создание именованного кортежа для ученика

# name и age - это ключи

Student = collections.namedtuple('Student', [ 'name', 'age' ])

# создание нового учителя и добавление значений

std = Student("AndreyEx", 21)

print("Имя:", getattr(std, "name"))

print("Возраст:", getattr(std, "age"))

 

Заключение

Функция getattar() — это встроенная функция в Python, которая возвращает значение атрибута объекта. Основная причина использования функции getattr() заключается в том, что она упрощает доступ к значению атрибута, используя имя атрибута. Имя атрибута определяется как строка, а значение мы получаем с помощью функции getattar(). Также можно определить значение для отсутствующего атрибута. Надеюсь, после прочтения этой статьи вы узнали больше о том, как использовать функцию getattar() в Python.



2020-12-26T18:43:33
Python

Как преобразовать целое число в строку в Python

Python имеет несколько встроенных типов данных. Иногда при написании кода Python вам может потребоваться преобразовать один тип данных в другой. Например, объедините строку и целое число, сначала вам нужно преобразовать целое число в строку.

В этой статье объясняется, как преобразовать целое число Python в строку.

Функция Python str()

В Python мы можем преобразовывать целые числа и другие типы данных в строки с помощью встроенной функции str() .

Функция str() возвращает строковую версию данного объекта. Он принимает следующие формы:

class str(object='')
class str(object=b'', encoding='utf-8', errors='strict')

  • object — объект, который нужно преобразовать в строку.

Функция принимает три аргумента, но обычно при преобразовании целого числа в строку вы передаете функции только один аргумент ( object ).

Преобразование целого числа Python в строку

Чтобы преобразовать целое число 23 в строковую версию, просто передайте это число в функцию str() :

str(23)
type(days)

'23'
<class 'str'>

Кавычки около 23 указывают на то, что число не является целым числом, а является объектом строкового типа. Кроме того, функция type() показывает, что объект является строкой.

В Python строки объявляются с использованием одинарных ( ' ), двойных ( " ) или тройных кавычек ( """ ).

Объединение строк и целых чисел

Попробуем объединить строки и целые числа с помощью оператора + и распечатать результат:

number = 6
lang = "Python"
quote = "There are " + number + " relational operators in " + lang + "."
print(quote)

Python TypeError исключения TypeError потому что он не может объединить строки и целые числа:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

Чтобы преобразовать целое число в строку, передайте целое число в функцию str() :

number = 6
lang = "Python"
quote = "There are " + str(number) + " relational operators in " + lang + "."
print(quote)

Теперь, когда вы запустите код, он будет успешно выполнен:

There are 6 relational operators in Python.

Есть и другие способы объединения строк и чисел.

Встроенный строковый класс предоставляет метод format() который форматирует заданную строку, используя произвольный набор позиционных и ключевых аргументов:

number = 6
lang = "Python"
quote = "There are {} relational operators in {}.".format(number, lang)
print(quote)

There are 6 relational operators in Python.

В Python 3.6 и новее вы можете использовать f-строки, которые представляют собой буквальные строки с префиксом ‘f’, содержащие выражения в фигурных скобках:

number = 6
lang = "Python"
quote = f"There are {number} relational operators in {lang}."
print(quote)

There are 6 relational operators in Python.

Наконец, вы можете использовать старое% -форматирование:

number = 6
lang = "Python"
quote = "There are %s relational operators in %s." % (number, lang)
print(quote)

There are 6 relational operators in Python.

Выводы

В Python вы можете преобразовать целое число в строку с помощью функции str() .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-12-20T10:59:08
Python

Vue.js против Django

Когда вам необходимо выбрать библиотеку или фреймворк для создания веб-приложений, нет никаких сомнений в том, что библиотеки JavaScript предпочтительнее любой другой библиотеки. Но это не значит, что другие библиотеки недостаточно хороши.

Vue.js и Django — известные веб-фреймворки JavaScript. Они также являются инструментами с открытым исходным кодом. Vue.js известен тем, что создает чистые, многократно используемые веб-приложения на основе компонентов. Django — это фреймворк, построенный на Python, известный своей быстрой разработкой и рациональным дизайном кода.

В этой статье мы обнаружим некоторые из основных и более технических различий между Vue.js и Django. Сюда входят плюсы и минусы каждого фреймворка, компании, которые в настоящее время используют эти фреймворки, интегрированные инструменты и многое другое.

 

Разница между Vue.js и Django

Vue.js — это интерфейсный JavaScript-фреймворк, который генерирует страницы на стороне клиента. Поскольку он отображает страницы на стороне клиента, Vue.js требует больше времени на первоначальную загрузку, но дает лучший опыт, когда необходимо перемещаться между страницами.

В то время как Django — это полнофункциональный Python-фреймворк, который генерирует страницы на стороне сервера. Его рендеринг на стороне сервера помогает при первоначальной загрузке страницы, но во время навигации нам, возможно, придется столкнуться с проблемами производительности из-за задержки в сети.

 

Плюсы Vue.js

Vue.js — простая, удобная и фантастическая библиотека для ваших нужд. Вы можете изучить его на практике, если знаете Html, CSS и JavaScript. Vue.js — это фреймворк с быстрой кривой обучения. Документация, написанная для Vue.js, также проста для понимания и чрезвычайно подробна.

Документация настолько хорошо написана, что вы не должны растеряться, даже работая с ней целый день. Все шаги четко объяснены, а документация Vue.js — одно из лучших руководств, доступных для любого веб-фреймворка. Vue.js — это полная и функциональная экосистема JavaScript, которая является одной из лучших интерфейсных сред.

 

Плюсы Django

Django известен своим быстрым развитием, и это инструмент с открытым исходным кодом. У этого фреймворка также есть отличное сообщество. Django — это элегантная платформа MVC, которая помогает вам писать красивый код. Этот фреймворк бесплатен, имеет отличную документацию и очень прост в освоении. Он также предоставляет отличные пакеты и библиотеки для помощи в разработке.

 

Минусы Vue.js

Сообщество Vue.js меньше, чем два других конкурирующих фреймворка, reactJS и Angular. Vue.js не поддерживает фрагменты, а программно поддерживает только несколько корневых узлов. Еще один недостаток Vue.js — разметка YXML и HTML.

 

Минусы Django

Django — это недостаточно мощный фреймворк для создания шаблонов и слабая ORM. Его автоматическая перезагрузка перезагружает весь сервер. Диспетчер URL-адресов Django игнорирует метод HTTP и имеет некоторую связь внутренних подкомпонентов.

Наличие минусов не обязательно означает, что фреймворк плохой. Фактически, каждая структура идет с намерением удовлетворить какую-то конкретную потребность или предоставить определенную ценность. Хорошо известно, что у каждой платформы есть свои особенности и стандарты, которые отличают ее от других платформ, и что один из них легко расставить по приоритетам в соответствии с вашими потребностями.

 

Компании, использующие фреймворки

Обе эти структуры поддерживаются хорошими компаниями.

Vue.js поддерживается многими громкими именами, такими как:

  • Alibaba
  • Xiaomi
  • Laracast
  • Trivago.com

 

Django также поддерживается некоторыми громкими именами, такими как:

  • Pinterest
  • Instagram
  • Udemy
  • Robinhood

 

Заключение

В этой статье мы рассмотрели фреймворки Vue.js и Django и указали на их различия. Мы также обсудили плюсы и минусы каждого фреймворка и упомянули названия компаний, поддерживающих эти фреймворки. Vue.js становится все более популярным среди фреймворков JavaScript и интерфейсной веб-разработки, особенно с точки зрения одностраничных приложений и пользовательских интерфейсов. Между тем, Django получит признание как полноценный фреймворк для быстрой разработки.



2020-12-18T03:02:53
Python

Функция range() в Python

Тип range Python генерирует последовательность целых чисел, определяя начальную и конечную точки диапазона. Обычно он используется с циклом for для перебора последовательности чисел.

range() работает по-разному в Python 2 и 3.

В Python 2 есть две функции, которые позволяют генерировать последовательность целых чисел, range и xrange . Эти функции очень похожи, с основным отличием в том, что range возвращает список, а xrange возвращает объект xrange.

В Python 3 функция xrange была удалена, а функция range ведет себя аналогично Python 2 xrange . range Python 3 — это не функция, а тип, представляющий неизменяемую последовательность чисел.

В этой статье мы рассмотрим основу Python 3 range типа.

Синтаксис range() в Python

Конструктор range принимает следующие формы:

range(stop)

range(start, stop[, step])

Аргументы, передаваемые конструктору range должны быть целыми числами. Плавающие числа и другие типы не допускаются.

range принимает один обязательный и два необязательных аргумента. Он возвращает объект диапазона, который представляет данный диапазон и генерирует числа по запросу.

range(stop)

Если указан только один аргумент, range возвращает последовательность чисел, увеличенных на 1 , начиная с 0 до stop - 1 .

Вот тип диапазона в действии:

for i in range(5):

    print(i)

Сгенерированная последовательность чисел начинается с 0 и заканчивается 4 (5-1):

0

1

2

3

4

Если аргумент равен 0 или range отрицательных целых чисел возвращает пустую последовательность:

print(list(range(-5)))

Мы конвертируем объект диапазона в список, потому что диапазон выполняет ленивую оценку целочисленной последовательности. Результатом будет пустой список:

[]

range(start, stop)

Если указаны два аргумента, range возвращает последовательность чисел, увеличенную на 1 , начиная от start до stop - 1 .

Вот пример:

for i in range(3, 5):

    print(i)

3

4

Аргумент stop должен быть больше start . В противном случае последовательность пуста:

print(list(range(5, 3)))

[]

В качестве аргументов можно использовать 0 , положительные и отрицательные целые числа:

print(list(range(-5, -3)))

[-5, -4]

print(list(range(-3, 0)))

[-3, -2, -1]

range(start, stop, step)

Когда даны три аргумента, range возвращает последовательность чисел, увеличивающуюся или уменьшающуюся на step , начиная от start до stop - 1 .

Если step положительный, range возвращает последовательность, которая увеличивается:

for i in range(0, 26, 5):

    print(i)

0

5

10

15

20

25

При увеличении аргумент stop должен быть больше start . В противном случае последовательность пуста.

Если step отрицательный, range возвращает последовательность, которая уменьшается:

for i in range(20, 4, -5):

    print(i)

20

15

10

5

При уменьшении аргумент stop должен быть меньше start . В противном случае последовательность пуста.

Если step равен 0 возникает исключение ValueError:

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ValueError: range() arg 3 must not be zero

Выводы

Тип range Python позволяет генерировать последовательность целых чисел. В основном он используется в циклах for .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-12-10T18:57:22
Python

Функция enumerate() Python

enumerate() — это встроенная функция в Python, которая позволяет вам иметь автоматический счетчик во время цикла по итерациям.

Функция enumerate()

Функция enumerate() принимает следующий вид:

enumerate(iterable, start=0)

Функция принимает два аргумента:

  • iterable — объект, поддерживающий итерацию.
  • start — число, с которого начинается счетчик. Это необязательный аргумент. По умолчанию счетчик начинается с 0.

enumerate() возвращает объект перечисления, для которого вы можете вызвать метод __next__() (или next() в Python 2), чтобы получить кортеж, содержащий счетчик и текущее значение итерируемого.

Вот пример того, как создать список кортежей с помощью list() и как перебрать итерацию:

directions = ["north", "east", "south", "west"] 

list(enumerate(directions))



for index, value in enumerate(directions): 

    print("{}: {}".format(index, value))

[(0, 'north'), (1, 'east'), (2, 'south'), (3, 'west')]



0: north

1: east

2: south

3: west

Если индексирование с нулевым отсчетом у вас не работает, выберите другой начальный индекс для перечисления:

directions = ["north", "east", "south", "west"] 

list(enumerate(directions, 1))

[(1, 'north'), (2, 'east'), (3, 'south'), (4, 'west')]

Функция enumerate() работает с любым итерируемым объектом. Итерируемый объект — это контейнер, который можно повторять. Проще говоря, это означает объект, который можно перебрать с помощью цикла for . Большинство встроенных объектов в Python, таких как строки, списки и кортежи, являются повторяемыми.

Больше о enumerate()

Цикл for Python полностью отличается от традиционного цикла for стиле C, который доступен во многих языках программирования. Цикл for в Python эквивалентен циклу foreach в других языках.

Обычный метод, используемый новыми разработчиками Python для получения соответствующего индекса при работе с итерациями, заключается в использовании либо шаблона range(len(...)) , либо установки и увеличения счетчика:

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

for i in range(len(planets)):

    print("Planet {}: {}".format(i, planets[i]))

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

i = 0

for planet in planets:

    print("Planet {}: {}".format(i, planet))

    i += 1

Приведенные выше циклы можно переписать более идиоматическим способом с помощью enumerate() :

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

for index, value in enumerate(planets): 

    print("Planet {}: {}".format(index, value))

Все методы будут давать одинаковый результат:

Planet 0: Mercury

Planet 1: Venus

Planet 2: Earth

Planet 3: Mars

Planet 4: Jupiter

Planet 5: Saturn

Planet 6: Uranus

Planet 7: Neptune

Выводы

В этой статье мы показали вам, как использовать функцию Python enumerate() .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-12-10T01:11:44
Python

Оператор if else в Python

Принятие решений — одна из самых фундаментальных концепций компьютерного программирования. Python поддерживает стандартные операторы управления потоком, имеющиеся в других языках, с некоторыми изменениями. Оператор управления if является одним из самых основных и хорошо известных операторов, который используется для выполнения кода на основе определенного условия.

В этой статье мы рассмотрим основы оператора if в Python.

Оператор if в Python

Самая простая форма оператора if в Python выглядит следующим образом:

if EXPRESSION:

  STATEMENT

Оператор if начинается с ключевого слова if за которым следует условное выражение.

EXPRESSION должно сопровождаться ( : ) толстой кишки. Если EXPRESSION оценивается как True , выполняется STATEMENT . Если EXPRESSION возвращает False , ничего не происходит, STATEMENT игнорируется. STATEMENT может быть любым оператором, включая несколько операторов или дополнительных вложенных операторов if . Чтобы не выполнять никаких инструкций, используйте инструкцию pass .

STATEMENT блок начинается с углублением и концами с первой линией отступа. Большинство людей предпочитают использовать отступы с четырьмя или двумя пробелами. Официальное руководство по стилю для кода Python рекомендует использовать 4 пробела для каждого уровня отступа и избегать смешивания использования табуляции и пробелов для отступа.

Давайте посмотрим на следующий пример скрипта, который проверяет, больше ли заданное число 5.

number = int(input('Enter a number: '))



if number > 5:

    print(number, 'is greater than 5.')

Сохраните код в файл и запустите его из командной строки:

python test.py

Скрипт предложит вам ввести номер. Например, если вы введете 10, условное выражение будет иметь значение True (10 больше 5), и функция print будет выполнена.

10 is greater than 5.

Python поддерживает стандартные операции сравнения:

  • a == b — Истинно, если a и b равны.
  • a != b — Верно, если a и b не равны.
  • a > b — Истинно, если a больше b .
  • a >= b — Истинно, если a равно или больше b .
  • a < b — Истинно, если a меньше b .
  • a <= b — Истинно, если a равно или меньше b .

Вы также можете использовать ключевое слово in чтобы проверить, присутствует ли значение в итерации (строка, список, кортеж, словарь и т. Д.):

s = 'linuxize'

if 'ze' in s:

    print('True.')

Вот еще один пример использования словаря:

d = {'a': 2, 'b': 4}

if 'a' in d:

    print('True.')

При использовании в словаре ключевое слово in проверяет, есть ли в словаре определенный ключ.

Чтобы отрицать условное выражение, используйте логический оператор not :

number = int(input('Enter a number: '))



if not number < 5:

    print(number, 'is greater than 5.')

Оператор if else в Python

if..else оценивает условие и выполняет одно из двух операторов в зависимости от результата.

Оператор Python if..else принимает следующую форму:

if EXPRESSION:

    STATEMENT1

else:

    STATEMENT2

Если EXPRESSION оценивается как True , STATEMENT1 будет выполнен. В противном случае, если EXPRESSION возвращает значение False , то STATEMENT2 будет выполнена. В заявлении может быть только одно предложение else .

else ключевое слово должно заканчиваться ( : ) толстой кишки и быть на том же уровне отступа , как соответствующие , if ключевое слово.

Давайте добавим предложение else в предыдущий пример сценария:

number = int(input('Enter a number: '))



if number > 5:

    print(number, 'is greater than 5.')

else:

    print(number, 'is equal or less than 5.')

Если вы запустите код и введете число, сценарий напечатает другое сообщение в зависимости от того, больше ли число / равно 5.

Оператор if elif else

Ключевое слово elif является сокращением от else if .

Оператор Python if..elif..else принимает следующую форму:

if EXPRESSION1:

    STATEMENT1

elif: EXPRESSION2:

    STATEMENT2

else:

    STATEMENT3

Если EXPRESSION1 оценивается как True , STATEMENTS1 будет выполнен. Если EXPRESSION2 оценивается как True , STATEMENTS2 будет выполнен. Если ни одно из выражений не имеет значения True , выполняется STATEMENTS3 .

elif ключевое слово должно заканчиваться ( : ) толстой кишки и быть на том же уровне отступа , как соответствующие , if ключевое слово. В операторе может быть одно или несколько предложений elif . Предложение else является обязательным. Если предложение else не используется и все выражения имеют значение False , ни один из операторов не будет выполнен.

Условия оцениваются последовательно. Как только условие возвращает True , остальные условия не выполняются, и управление программой перемещается в конец операторов if .

Добавим в предыдущий скрипт предложение elif :

number = int(input('Enter a number: '))



if number > 5:

    print(number, 'is greater than 5.')

elif number < 5:

    print(number, 'is less than 5.')

else:

    print(number, 'is equal to 5.')

В отличие от большинства языков программирования, в Python нет операторов switch или case . Последовательность из нескольких операторов elif может использоваться вместо switch или case .

Вложенные операторы if

Python позволяет гнездиться if заявления в if заявления. Как правило, всегда следует избегать чрезмерных отступов и пытаться использовать elif вместо вложенных операторов if

Следующий сценарий предложит вам ввести три числа и напечатает наибольшее число среди чисел.

number1 = int(input('Enter the first number: '))

number2 = int(input('Enter the second number: '))

number3 = int(input('Enter the third number: '))



if number1 > number2:

    if number1 > number3:

        print(number1, 'is the largest number.')

    else:

        print(number3, 'is the largest number.')

else:

    if number2 > number3:

        print(number2, 'is the largest number.')

    else:

        print(number3, 'is the largest number.')

Вот как будет выглядеть результат:

Enter the first number: 455 

Enter the second number: 567

Enter the third number: 354

567 is the largest number.

Несколько условий

Логические операторы or и and позволяют комбинировать несколько условий в операторах if .

Вот еще одна версия скрипта для печати наибольшего числа из трех. В этой версии, а вложенные if заявления, мы будем использовать логические and оператор и elif .

number1 = int(input('Enter the first number: '))

number2 = int(input('Enter the second number: '))

number3 = int(input('Enter the third number: '))



if number1 > number2 and number1 > number3:

    print(number1, 'is the largest number.')

elif number2 > number3 and number2 > number3:

    print(number2, 'is the largest number.')

else:

    print(number3, 'is the largest number.')

Выводы

Операторы if , if..else и if..elif..else позволяют управлять потоком выполнения Python, оценивая заданные условия.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-12-08T22:00:24
Python