Архив метки: 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

Как комментировать в Python

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

Еще один способ улучшить читаемость вашего кода — использовать комментарии. Комментарий — это понятное для человека объяснение или аннотация, которые используются для объяснения кода. Например, если вы написали сложное регулярное выражение, вы добавляете комментарий, описывающий, что делает код.

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

Комментарии должны быть краткими и по существу. Не объясняйте то, что очевидно читателю.

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

Написание комментариев на Python

Python игнорирует все, что написано в строке после решетки ( # ).

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

# This is a Python comment.
print("Hello World") # This is an inline Python comment.

Пробел после решетки не является обязательным, но он улучшит читаемость комментария.

Символ решетки в строковом литерале не указывает на начало строки комментария. Это просто символ решетки:

paragraph = "# Hash inside quotes is not a comment."

Comments should be at the same indent level as the code beneath it:

```py
def factorial(n):
  if n == 0:
    return 1
  else:
    # Use the factorial function
    return n * factorial(n-1)

Если ваш текстовый редактор поддерживает выделение синтаксиса, комментарии обычно отображаются зеленым цветом.

Комментарии также полезны при отладке скрипта. Вместо удаления некоторых строк или блоков вы можете закомментировать их:

# for fruit in fruits:
#   print(fruit)

Многострочные комментарии в Python (блоки комментариев)

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

Самый простой способ написать многострочные комментарии в Python — это добавить однострочные комментарии один за другим:

# This is the first line.
# This is the second line.

Другой вариант — использовать строки документации .

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

Строка документации начинается и заканчивается тройными двойными кавычками ( """ ) и может занимать одну или несколько строк:

"""This is
a multiline
docstring.
"""

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

Шебанг

Если вы читаете сценарии Python, вы можете заметить, что в некоторых из них первая строка начинается с символа #! символы и путь к интерпретатору Python:

#!/usr/bin/env python3

Эта последовательность символов называется shebang и используется для указания операционной системе, какой интерпретатор использовать для анализа остальной части файла. Сценарии, которые начинаются с shebang и являются исполняемыми, можно запускать в терминале, не вводя python перед именем сценария.

Поскольку строка shebang начинается с символа решетки, она рассматривается как комментарий и автоматически игнорируется интерпретатором Python.

Выводы

Написание комментариев является хорошей практикой и помогает другим разработчикам, в том числе будущим самим себе, понять, что делает код. В Python все, что находится после решетки ( # ) и до конца строки, считается комментарием.

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



2020-12-06T01:36:04
Python

Как добавить аргументы командной строки в скрипт Python

Если вы разработали сценарий Python или приложение, предназначенное для запуска в основном в эмуляторах терминала или даже в приложениях с графическим интерфейсом пользователя, добавление аргументов командной строки может улучшить его удобство использования, читаемость кода, структуру приложения и общее удобство использования приложения для конечных пользователей. Эти аргументы командной строки также называются «параметрами» или «переключателями» и работают аналогично аргументам, которые вы обычно видите в сценариях bash и других программах на C/C ++.

Чтобы добавить аргументы в сценарии Python, вам нужно будет использовать встроенный модуль с именем «argparse». Как следует из названия, он анализирует аргументы командной строки, используемые при запуске скрипта или приложения Python. Эти проанализированные аргументы также проверяются модулем «argparse», чтобы убедиться, что они имеют правильный «тип». Ошибки возникают, если в аргументах есть недопустимые значения.

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

 

Пример 1: Создание аргумента и сообщения справки

Рассмотрим пример кода ниже:

import argparse



parser = argparse.ArgumentParser(description='A test program.')



args = parser.parse_args()

 

Первый оператор импортирует модуль «argparse». Затем создается новый экземпляр объекта «ArgumentParser», и в качестве аргумента предоставляется краткое описание программы. Объект ArgumentParser необходим для преобразования значений аргументов командной строки в типы данных, понятные Python. Это выполняется методом parse_args объекта ArgumentParser, как показано в последнем операторе.

Предполагая, что вы сохранили пример кода, указанный выше, в файле с именем «test.py», выполнение приведенных ниже команд приведет к появлению справочных сообщений, связанных с программой.

$ ./test.py -h



$ ./test.py --help

 

Вы должны получить примерно такой результат:

usage: test.py [-h]



A test program.



optional arguments:



-h, --help show this help message and exit




 

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

 

Пример 2: Обработка строкового аргумента

Чтобы добавить аргументы, приемлемые для вашего скрипта python, вам необходимо использовать метод «add_argument». Взгляните на следующий код:

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("print_string", help="Prints the supplied argument.")



args = parser.parse_args()



print(args.print_string)

 

Был добавлен новый оператор, показывающий использование метода «add_argument». Любой аргумент, добавленный при запуске скрипта, будет обрабатываться ArgumentParser как объект «print_string».

Обратите внимание, что по умолчанию метод add_argument обрабатывает значения, полученные из аргументов, как строки, поэтому вам не нужно явно указывать «тип» в этом случае. Значение по умолчанию «Нет» также присваивается добавленным аргументам, если оно не отменено.

Еще раз взгляните на справочное сообщение:

usage: test.py [-h] [print_string]



A test program.



positional arguments:



print_string Prints the supplied argument.



optional arguments:



-h, --help show this help message and exit




 

Одна из строк вывода говорит «позиционные аргументы». Поскольку ключевое слово для аргумента не определено, в настоящее время аргумент рассматривается как «позиционный аргумент», где порядок и позиция предоставленного аргумента имеют прямое влияние на программу. Позиционные аргументы также являются обязательными, если вы не измените их поведение вручную.

Чтобы определить и проанализировать необязательные аргументы, вы можете использовать «-» (двойное тире) и изменить их значения по умолчанию, используя аргумент «default».

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("--print_string", help="Prints the supplied argument.", default=”A random string.”)



args = parser.parse_args()



print(args.print_string)

 

Теперь, когда вы запускаете скрипт test.py без аргументов, вы должны получить «случайную строку». как выход. Вы также можете дополнительно использовать ключевое слово «–print_string» для печати любой строки по вашему выбору.

$ ./test.py --print_string AndreyEx.ru

AndreyEx.ru

 

Обратите внимание, что вы можете сделать необязательный аргумент обязательным, используя дополнительный аргумент «required = True».

Наконец, вы также можете определить сокращенные версии аргумента, используя «-» (одиночное тире), чтобы уменьшить многословие.

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument(“-p”, "--print_string", help="Prints the supplied argument.", default=”A random string.”)



args = parser.parse_args()



print(args.print_string)

 

Выполнение следующей команды должно дать тот же результат, что и выше:

$ ./test.py -p AndreyEx.ru

Пример 3: Обработка целочисленного аргумента

Чтобы обрабатывать аргументы, которым требуются целочисленные значения, вам необходимо установить ключевое слово «type» на «int», чтобы разрешить проверку и выдавать ошибки в случае, если условие не выполняется.

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", type=int)



args = parser.parse_args()



print(args.print_string)

 

Попробуйте выполнить следующую команду:

$ ./test.py -p AndreyEx.ru

 

Вы должны получить такую ошибку:

usage: test.py [-h] [-p PRINT_STRING]



test.py: error: argument -p/--print_string: invalid int value: 'AndreyEx.ru'




 

Предоставление целочисленного значения даст вам правильный результат:

$ ./test.py -p 1000

1000

Пример 4: Обработка переключателей True и False

Вы можете передавать аргументы без каких-либо значений, чтобы рассматривать их как флаги True и False, используя аргумент «action».

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", action="store_true")



args = parser.parse_args()



print(args.print_string)

 

Выполните команду ниже, чтобы получить на выходе простое «Истина»:

$ ./test.py -p

 

Если вы запустите сценарий без аргумента «-p», вместо него будет присвоено значение «Ложь». Значение «store_true» ключевого слова «action» присваивает значение «True» переменной «print_string» всякий раз, когда аргумент «-p» явно указан, в противном случае переменной присваивается значение «False».

 

Пример 5. Обработка значений аргументов как списка

Если вы хотите получить сразу несколько значений и сохранить их в списке, вам необходимо указать ключевое слово nargs в следующем формате:

import argparse



parser = argparse.ArgumentParser(description='A test program.')



parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", nargs='*')



args = parser.parse_args()



print(args.print_string)

 

Выполните следующую команду, чтобы проверить приведенный выше код:

$ ./test.py -p “a” “b”

 

Вы должны получить примерно такой результат:

['a', 'b']

Вывод

Модуль «argparse» довольно обширен с множеством опций для настройки поведения приложений командной строки и анализа значений, вводимых пользователем. Эти примеры касаются только базового использования модуля «argparse». Для сложных и сложных приложений вам могут потребоваться разные реализации.



2020-12-03T12:55:23
Python

Как перенаправить в PHP

URL-адрес браузера пользователя можно изменить с одного места на другое с помощью перенаправления. Перенаправление требуется для многих целей, таких как переключение с HTTP на HTTPS, изменение домена и т. д. Когда пользователь отправляет запрос на страницу на сервер, который не существует, или на местоположение страницы, которое изменилось, сервер будет отправьте информацию о новом URL с кодом HTTP 301 или 302. Это поможет пользователю узнать о новом URL-адресе путем перенаправления, и пользователь отправит запрос в новое место, чтобы получить желаемый контент. URL-адрес перенаправляется в PHP с помощью функции header(). В этой статьи показано, как функцию header() можно использовать в PHP для перенаправления URL-адреса с одной страницы на другую.

 

Функция header()

Это встроенная функция PHP для отправки клиенту необработанного HTTP-заголовка. Синтаксис этой функции показан ниже.

Синтаксис:

header( $header, [$replace, [$http_response_code]] )

 

Эта функция может принимать три аргумента. Первый аргумент является обязательным, а последние два аргумента — необязательными. $header используется для хранения строки заголовка, который содержит расположение перенаправления. $replace определяет, будет ли заменить предыдущий похожий заголовок и значение этого аргумента Boolean. $http_response_code используется для хранения определенного кода ответа, который будет отправлять пользователь.

 

Пример-1: URL-адрес перенаправления с кодом состояния по умолчанию

Создайте файл PHP со следующим кодом, который будет перенаправлять в новое место после ожидания в течение 2 секунд. Здесь функция die() используется для завершения скрипта. Когда функция header() используется с одним аргументом, 302 используется в качестве кода HTTP по умолчанию.

<?php



//Подождите 2 секунды

sleep(2);

//Перенаправление в конкретное место

header("Location: http://localhost/php/contactForm/index.html");

die();



?>


 

Вывод:

После выполнения кода URL-адрес перенаправляется в адрес http: //localhost/php/contactForm/index.html через 2 секунды. Если вы проверите код и откроете вкладку «Сеть», то в качестве кода состояния по умолчанию будет отображаться 302.

 

Пример-2: URL перенаправления навсегда

Создайте файл PHP со следующим кодом, который будет перенаправлять в новое место после ожидания в течение 2 секунд. Здесь функция die() используется для завершения скрипта. Здесь функция header() используется с тремя аргументами. TRUE, используется для второго аргумента и 301 используется для третьего аргумента. Код состояния 301 используется для постоянного перенаправления.

<?php



//Подождите 2 секунды

sleep(2);

//Перенаправление в конкретное место

header("Location: http://localhost/php/contactForm/index.html",TRUE,301);

die();



?>

 

Вывод:

После выполнения кода URL-адрес перенаправляется в адрес http: //localhost/php/contactForm/index.html через 2 секунды. Если вы проверите код и откроете вкладку «Сеть», то в качестве кода состояния отобразится 301, указывающий, что URL-адрес перемещен навсегда.

 

Пример-3: временный URL перенаправления

Создайте файл PHP со следующим кодом, который будет перенаправлять в новое место после ожидания в течение 2 секунд. Здесь функция die() используется для завершения скрипта. Здесь функция header() используется с тремя аргументами. TRUE, используется для второго аргумента и 307 используется для третьего аргумента. Код состояния 307 используется для временного перенаправления.

<?php



//Подождите 2 секунды

sleep(2);

//Перенаправление в конкретное место

header("Location: http://localhost/php/contactForm/index.html",TRUE,307);

die();



?>


Вывод:

После выполнения кода URL-адрес перенаправляется в адрес http: //localhost/php/contactForm/index.html через 2 секунды. Если вы проверите код и откроете вкладку «Сеть», то в качестве кода состояния отобразится 307, указывающий, что URL-адрес временно перенаправлен.

 

Пример-4: URL-адрес перенаправления на основе условия

Создайте файл PHP со следующим кодом, который будет перенаправлять URL-адрес на основе условного оператора. В сценарии создается HTML-форма для перенаправления URL-адреса на основе выбранного значения раскрывающегося списка. Здесь раскрывающийся список содержит три значения. Если в раскрывающемся списке выбрать Google, сценарий PHP перенаправит URL-адрес в адрес https://google.com с кодом состояния по умолчанию 302. Когда AndreyEx выбран в раскрывающемся списке, сценарий PHP перенаправит URL-адрес в расположение https://andreyex.ru с кодом состояния 301. Когда выбран WordPress из раскрывающегося списка, то скрипт PHP перенаправит URL-адрес в расположение https://andreyex.ru/blog-platforma-wordpress/ с кодом состояния 302.

<html>

<head>

<title>Пример заголовка</title>

</head>

<body>

<form method="post" action=#>

<select name="web">

<option>Google</option>

<option>AndreyEx</option>

<option>Wordpress</option>

</select>



<input type="submit" name="submit" value="Go" />

</html>

<?php



//Проверьте, нажата ли кнопка отправки или нет

if(isset($_POST["submit"]))

{

if($_POST['web'] == 'Google')

{

//Перенаправление в конкретное место

header("Location: https://google.com");

}

elseif($_POST['web'] == 'AndreyEx')

{

//Перенаправление в конкретное место

header("Location: https://andreyex.ru",TRUE,301);

}

else

{

//Перенаправление в конкретное место

header("Location: https://andreyex.ru/blog-platforma-wordpress/");

}

die();

}

?>


 

После выполнения кода в браузере появится следующий вывод, который отобразит раскрывающийся список с тремя значениями и кнопкой «Перейти». Код состояния сейчас 200. После перенаправления код статуса будет изменен.

Если Google выберет вариант из раскрывающегося списка, то после нажатия кнопки «Перейти» он перенаправит вас в адрес https://google.com, и появится следующее изображение. Здесь генерируется код состояния по умолчанию 302.

Если AndreyEx выберет из раскрывающегося списка, то после нажатия кнопки «Go» он будет перенаправлен в адрес https://andreyex.ru, и появится следующее изображение. Здесь генерируется постоянный код статуса 301.

 

Вывод:

Различные варианты использования функции PHP header() объясняются в этой статьи на нескольких примерах. Перенаправление может быть выполнено временно и постоянно на основе кода состояния, используемого в функции header(). Эта статья поможет читателям узнать больше о цели перенаправления и применить ее, используя скрипт PHP в своем веб-приложении, когда это необходимо.



2020-12-02T18:56:48
Python

Контейнер Namedtuple в Python

Python предлагает множество встроенных структур данных, таких как списки, словари и кортежи, для эффективного хранения и управления данными. Namedtuple — это контейнер, подобный словарю, доступный в модуле «collections». Подобно словарям, namedtuple также содержит ключи, сопоставленные значениям. Однако namedtuple позволяет получить доступ к значениям через ключи, а также через индексы. По сравнению со словарями Python доступ к значениям через индексы является дополнительной функциональностью в namedtuple. В этой статье подробно описывается Python namedtuple с примерами.

 

Доступ к значениям из namedtuple

Доступ к значениям внутри namedtuple можно получить следующими способами:

  1. Используя ключи
  2. Используя индексы
  3. Используя функцию getattr()

Поскольку namedtuple преобразует поле в атрибуты, получить доступ к значениям можно с помощью функции getattr().

 

Примеры

Теперь давайте посмотрим на несколько примеров, чтобы понять создание и работу namedtuple. Чтобы создать и использовать namedtuple, сначала нам нужно импортировать модуль коллекций. В приведенном ниже примере создается именованный кортеж для учителя. Ключи именованного кортежа — это имя, возраст и отдел соответственно. Доступ к значениям осуществляется с помощью индексов и ключей.

# импорт модуля коллекций



import collections



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



имя, возраст и отдел - это ключи



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



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



Teacher_AndreyEx = Teacher("AndreyEx", 35, "Computer Science")

# доступ к значениям учителя с помощью indexes print(«Доступ к значениям с помощью индексов:») print(«Имя учителя:», teacher_AndreyEx[0]) print(«Возраст учителя:», teacher_AndreyEx[1]) print(«Отдел учителя:», teacher_AndreyEx[2])

 

 

# доступ к значениям учителя с помощью клавиш print(«Доступ к значениям с помощью ключей:») print(«Имя учителя:», teacher_AndreyEx.name) print(«Возраст учителя:», teacher_AndreyEx.age) print(«Учительский отдел:», teacher_AndreyEx.department)

 

 

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

# импорт модуля коллекций

import collections 

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

 

# имя, возраст и отдел - это ключи



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



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



Teacher_AndreyEx = Teacher("AndreyEx", 35, "Computer Science") #



доступ к значениям учителя с помощью функция getattr()



print(getattr (teacher_AndreyEx, "name"))



print(getattr(teacher_AndreyEx, "age"))



print( getattr( teacher_AndreyEx, "department" ) )

 

Популярные операции namedtuple

Некоторые популярные функции преобразуют другие коллекции, такие как списки, словари и кортежи, в namedtuple и возвращают информацию об namedtuple. Ниже приведены функции, которые преобразуют другие коллекции в namedtuple:

  • _сделать()
  • _asdict()
  • оператор **

Функция _make() преобразует итерируемый объект, такой как список и кортеж, в именованный набор. Функция _asdict() создает orderDict из именованного кортежа и возвращает его. Наконец, оператор ** преобразует словарь в именованный набор. Кроме того, функции, возвращающие информацию namedtuple, следующие:

  • _fields
  • _replace()

Функция _fields() возвращает все поля именованного кортежа, тогда как функция _replace() заменяет конкретное значение другим значением.

Давайте реализуем упомянутые выше функции в нашем скрипте Python для преобразования различных коллекций в namedtuple.

# импорт модуля коллекций



import collections 



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



# имя, возраст и отдел - это ключи 



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



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



Teacher_AndreyEx = Teacher("AndreyEx", 35, "Computer Science") 



# создать список 



Teacher_list =["Alex","Business Administration" ] 



# создание словаря



teacher_dict = { 'name' : 'Maria', 'age' : 25, 'department' : 'Economics' } 



# используя функцию _make() для преобразования списка в namedtuple 



print("List to преобразование namedtuple: ") 



print(Teacher._make(teacher_list)) 



# использование функции _asdict() для создания OrderDict 



print(" Making the OrderedDict: ") 



print(teacher_AndreyEx._asdict()) 



# использование ** для преобразования словаря в именованный кортеж 



print("Преобразование словаря в именованный кортеж:") 



print(Учитель(** teacher_dict))

 

Теперь давайте воспользуемся функциями _fields() и _replace(), чтобы получить информацию о ключах и заменить ключи соответственно.

# импорт модуля коллекций



import collections



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



имя, возраст и отдел - это ключи



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



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



Teacher_AndreyEx = Teacher("AndreyEx", 35, "Computer Science")



# используя функцию _fields, чтобы получить ключи namedtuple



print("Ключи namedtuple:")



print(Teacher._fields)



# использование функции _replace для замены значения



print("Значение замены имени:")



print(teacher_AndreyEx._replace(name = 'Master'))

 

В выходных данных видно, что функция _fields возвращает ключи информации, а функция _replace() успешно заменяет имя.

 

Вывод

Namedtuple — это контейнер, подобный словарю, присутствующий в модуле «коллекции». Он содержит ключ и сопоставляет значения с ключом. В отличие от словаря Python, к значениям namedtuples также можно получить доступ с помощью индексов и функции getattr(). В этой статье на примерах кратко объясняется именованный кортеж.



2020-12-01T16:14:14
Python

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

Благодаря универсальности и доступности обширных встроенных модулей, функций и операторов Python в настоящее время является широко используемым языком программирования общего назначения. Встроенные функции Python помогают программистам очень просто и эффективно выполнять сложные задачи. Zfill() — это встроенная функция Python, которая обнуляет слева от строки, чтобы заполнить заданную ширину и вернуть копию строки. Он создает строку с дополнениями, добавляя нули. В этой статье демонстрируется использование функции Python zfill().

 

Синтаксис

Сначала обсудим синтаксис функции zfill(). Синтаксис функции zfill() следующий:

str_name. zfill (width)

Функция zfill() принимает ширину в качестве аргумента и регулирует ноль в левой части строки в соответствии с указанной шириной. Ширину также можно рассматривать как длину струны.

 

Пример 1: Использование функции zfill()

Например, строка содержит три символа; это означает, что исходная ширина строки равна 3. Когда мы вызываем функцию zfill() и указываем ширину 15, она добавит 12 нулей и добавит левую сторону строки, чтобы заполнить ширину. Пробелы также увеличивают ширину. Давайте посмотрим на пример. Ширина строки hello изначально равна 5.

# определение строки

my_str = ‘hello’

# использование функции zfill()

print(my_str. zfill(10))

 

Слева к строке добавлено пять нулей.

 

Теперь давайте добавим два пробела в нашу строку и сделаем это «он ушел». Теперь исходная ширина строки равна 7.

# определение строки

my_str = ‘he ll o’

# использование функции zfill()

print(my_str. zfill(10))

 

Давайте посмотрим на другой пример функции zfill().

# определение строки

my_str = ’10’

print(«Исходная строка:» , my_str )

# использование функции zfill()

print(«Возвращаемая функцией zfill() строка:» , my_str. zfill(10))

Добавлены 8 нулей.

 

Пример 2: Использование функции zfill()

Если мы передадим в функцию zfill() ширину меньше исходной ширины строки, то ничего не произойдет. Давайте посмотрим на пример.

В приведенном ниже примере исходная длина или ширина строки равна 9. В функции zfill() мы указали ширину 3. В этом случае она не добавляет нулей слева и не отображает ошибку.

# определение строки

my_str = ‘AndreyEx_’

print(«Исходная строка:» , my_str )

# Использование функции zfill()

print(«Функция zfill() возвращает строку:» , my_str. zfill(3))

 

Пример 3: Использование функции zfill() с префиксом знака

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

# определение строки

my_str = ‘+ AndreyEx_’

print(«Исходная строка:» , my_str )

# Использование функции zfill()

print(«Возвращаемая функция zfill() строка:» , my_str. zfill(13))my_str = ‘+10’

print(«Исходная строка:» , my_str )

# Использование функции zfill()

print(«Возвращаемая функция zfill() строка:» , my_str. Zfill(13))my_str = ‘—20’

print(«Исходная строка:» , my_str )

# Использование функции zfill()

print(«Возвращаемая функция zfill() строка:» , my_str. zfill(13))

 

Вывод

Zfill() — встроенная функция Python, которая принимает ширину в качестве аргумента и заполняет нули слева от строки в соответствии с указанной шириной. В этой статье подробно обсуждается функция Python zfill().



2020-12-01T14:56:11
Python