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

Оператор модуля Python

Операция по модулю — это арифметическая операция, которая находит остаток от деления одного числа на другое. Остаток называется модулем операции.

Например, 5, разделенное на 3, равно 1 с остатком 2, а 8, разделенное на 4, равно 2, с остатком 0.

Оператор модуля Python

В Python оператор по модулю представлен знаком процента ( % ). Синтаксис следующий:

num1 % num2

Вот пример:

5 % 4

1

Если делитель (второй аргумент) равен нулю, возникает ZeroDivisionError :

5 % 0

ZeroDivisionError: integer division or modulo by zero

Оператор по модулю также принимает плавающие числа в качестве аргументов:

6.8 % 3.4

0.0

При форматировании строк символ % представляет оператор интерполяции.

Примеры

Один из распространенных случаев использования оператора по модулю — проверка четности или нечетности числа. Если число, деленное на 2, не имеет остатка, то это четное число. В противном случае, если остается 1, то число нечетное:

num = 11

if (num % 2) == 0:
   print(num, "is even")
else:
   print(num, "is odd")

Если вы запустите приведенный выше код, 11 % 2 оставит остаток 1 и будет выполнен код внутри оператора else :

11 is odd

Вот еще один пример, показывающий, как с помощью оператора по модулю проверить, является ли число простым. Простое число — это целое положительное число, которое без остатка можно разделить только на себя и на 1:

def isPrimeNumber(num):
  if num < 1:
    return False
  for i in range(2, num):
    if (num % i) == 0:
      return False
  else:
    return True

Сначала мы проверяем, является ли число num положительным числом. Затем мы проверяем, делится ли число на другое число в диапазоне от 2 до num без напоминания. Если ни одно из условий не выполняется, число простое.

Оператор по модулю также может использоваться для преобразования единиц измерения. В следующем примере показано, как преобразовать секунды в минуты:

def secondsToMinutes(sec):
  seconds = sec // 60
  minutes = sec % 60
  return "%d minutes and %d seconds" % (minutes, seconds)

secondsToMinutes(657)

'57 minutes and 10 seconds'

Двойная косая черта ( // ), оператор деления по этажам округляет результат до ближайшего целого числа.

Выводы

В этой статье мы показали вам, как использовать оператор Python по модулю.

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



2021-01-01T16:20:37
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() .

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

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