Язык программирования питон самоучитель: Самоучитель Python | Python 3 для начинающих и чайников

Содержание

Инструкция if-elif-else, проверка истинности, трехместное выражение if/else

Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) – основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.

Синтаксис инструкции if

Сначала записывается часть if с условным выражением, далее могут следовать одна или более необязательных частей elif, и, наконец, необязательная часть else. Общая форма записи условной инструкции if выглядит следующим образом:

if test1:
    state1
elif test2:
    state2
else:
    state3

Простой пример (напечатает ‘true’, так как 1 – истина):

>>> if 1:
...     print('true')
... else:
...     print('false')
...
true

Чуть более сложный пример (его результат будет зависеть от того, что ввёл пользователь):

a = int(input())
if a < -5:
    print('Low')
elif -5 <= a <= 5:
    print('Mid')
else:
    print('High')

Конструкция с несколькими elif может также служить отличной заменой конструкции switch – case в других языках программирования.

Проверка истинности в Python

  • Любое число, не равное 0, или непустой объект – истина.
  • Числа, равные 0, пустые объекты и значение None – ложь
  • Операции сравнения применяются к структурам данных рекурсивно
  • Операции сравнения возвращают True или False
  • Логические операторы and и or возвращают истинный или ложный объект-операнд

Логические операторы:

X and Y

Истина, если оба значения X и Y истинны.

X or Y

Истина, если хотя бы одно из значений X или Y истинно.

not X

Истина, если X ложно.

Трехместное выражение if/else

Следующая инструкция:

if X:
    A = Y
else:
    A = Z

довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано выражение if/else:

A = Y if X else Z

В данной инструкции интерпретатор выполнит выражение Y, если X истинно, в противном случае выполнится выражение Z.

>>> A = 't' if 'spam' else 'f'
>>> A
't'

Для вставки кода на Python в комментарий заключайте его в теги <pre><code>Ваш код</code></pre>

Свежее

  • Модуль csv – чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ

Категории

  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов

Полезные материалы

  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Мы в соцсетях

Списки (list). Функции и методы списков

Сегодня я расскажу о таком типе данных, как списки, операциях над ними и методах, о генераторах списков и о применении списков.

Что такое списки?

Списки в Python – упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться).

Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами. Например, можно обработать любой итерируемый объект (например, строку) встроенной функцией list:

>>> list('список')
['с', 'п', 'и', 'с', 'о', 'к']

Список можно создать и при помощи литерала:

>>> s = []  # Пустой список
>>> l = ['s', 'p', ['isok'], 2]
>>> s
[]
>>> l
['s', 'p', ['isok'], 2]

Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего.

И еще один способ создать список – это генераторы списков. Генератор списков – способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for.

>>> c = [c * 3 for c in 'list']
>>> c
['lll', 'iii', 'sss', 'ttt']

Возможна и более сложная конструкция генератора списков:

>>> c = [c * 3 for c in 'list' if c != 'i']
>>> c
['lll', 'sss', 'ttt']
>>> c = [c + d for c in 'list' if c != 'i' for d in 'spam' if d != 'a']
>>> c
['ls', 'lp', 'lm', 'ss', 'sp', 'sm', 'ts', 'tp', 'tm']

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

Функции и методы списков

Создать создали, теперь нужно со списком что-то делать. Для списков доступны основные встроенные функции, а также методы списков.

Таблица “методы списков”

МетодЧто делает
list.append(x)Добавляет элемент в конец списка
list.extend(L)Расширяет список list, добавляя в конец все элементы списка L
list.insert(i, x)Вставляет на i-ый элемент значение x
list.remove(x)Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует
list.pop([i])Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент
list.index(x, [start [, end]])Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end)
list. count(x)Возвращает количество элементов со значением x
list.sort([key=функция])Сортирует список на основе функции
list.reverse()Разворачивает список
list.copy()Поверхностная копия списка
list.clear()Очищает список

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

>>> l = [1, 2, 3, 5, 7]
>>> l.sort()
>>> l
[1, 2, 3, 5, 7]
>>> l = l.sort()
>>> print(l)
None

И, напоследок, примеры работы со списками:

>>> a = [66.25, 333, 333, 1, 1234.5]
>>> print(a.count(333), a.count(66.25), a.count('x'))
2 1 0
>>> a.insert(2, -1)
>>> a.append(333)
>>> a
[66.25, 333, -1, 333, 1, 1234.5, 333]
>>> a.index(333)
1
>>> a.
remove(333) >>> a [66.25, -1, 333, 1, 1234.5, 333] >>> a.reverse() >>> a [333, 1234.5, 1, 333, -1, 66.25] >>> a.sort() >>> a [-1, 1, 66.25, 333, 333, 1234.5]

Изредка, для увеличения производительности, списки заменяют гораздо менее гибкими массивами (хотя в таких случаях обычно используют сторонние библиотеки, например NumPy).

Для вставки кода на Python в комментарий заключайте его в теги <pre><code>Ваш код</code></pre>

Функции Python

❮ Предыдущая Далее ❯


Функция — это блок кода, который запускается только при вызове.

Вы можете передавать данные, известные как параметры, в функцию.

В результате функция может возвращать данные.


Создание функции

В Python функция определяется с помощью определения ключевое слово:

Пример

def my_function():
  print(“Привет от функции”)


Вызов функции

Чтобы вызвать функцию, используйте имя функции, за которым следуют круглые скобки:

Пример

def my_function():
  print(“Привет от функции”)

my_function()

Попробуйте сами »


Аргументы

Информация может передаваться в функции как аргументы.

Аргументы указываются после имени функции в круглых скобках. Вы можете добавить столько аргументов, сколько хотите, просто разделите их запятой.

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

Пример

def my_function( fname ):
 print(fname + “Refsnes”)

my_function( “Эмиль” )
my_function( “Tobias” )
my_function( “Linus3 90 itself” 900 »

Аргументы часто сокращаются до args в документации Python.



Параметры или аргументы?

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

С точки зрения функции:

Параметр — это переменная, указанная в скобках в определении функции.

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


Количество аргументов

По умолчанию функция должна вызываться с правильным количеством аргументов. Это означает, что если ваша функция ожидает 2 аргумента, вы должны вызвать функцию с 2-мя аргументами, не больше и не меньше.

Пример

Эта функция ожидает 2 аргумента и получает 2 аргумента:

def my_function(fname, lname):
  print(fname + ” ” + lname)

my_function(“Emil”, “Refsnes”)

Попробуйте сами »

Если вы попытаетесь вызвать функцию с 1 или 3 аргументами, вы получите ошибку:

Пример

Эта функция ожидает 2 аргумента, но получает только 1:

def my_function(fname, lname):

  print(fname + ” ” + lname)

my_function(“Эмиль”)

Попробуйте сами »


Произвольные аргументы, *args

Если вы не знаете, сколько аргументов который будет передан в вашу функцию, добавьте * перед именем параметра в определении функции.

Таким образом функция получит кортеж аргументов и может получить доступ к соответствующим элементам:

Пример

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

def my_function(*kids):

  print(“Самый младший ребенок is ” + kids[2])

my_function(“Эмиль”, “Тобиас”, “Линус”)

Попробуйте сами »

Произвольные аргументы часто сокращаются до *args в документации Python.


Аргументы ключевого слова

Вы также можете отправлять аргументы с помощью ключа = значения синтаксиса.

Таким образом, порядок аргументов не имеет значения.

Пример

def my_function(child3, child2, child1):
  print(“Самый младший ребенок is ” + child3)

my_function(child1 = “Emil”, child2 = “Tobias”, child3 = “Linus”)

Попробуйте сами »

Фраза Keyword Arguments часто сокращается до kwargs в Python документации


Произвольные аргументы ключевого слова, **kwargs

Если вы не знаете, сколько аргументов ключевого слова будет передано в вашу функцию, добавить две звездочки: ** перед именем параметра в определении функции.

Таким образом, функция получит словарь аргументов и сможет получить доступ к соответствующим элементам:

Пример

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

def my_function(**kid):
  print(“Его фамилия ” + kid[“lname”])

my_function(fname = “Tobias”, lname = “Refsnes”)

Попробуйте сами »

Произвольные аргументы Kword часто сокращаются до **kwargs в документации Python.


Значение параметра по умолчанию

В следующем примере показано, как использовать значение параметра по умолчанию.

Если мы вызываем функцию без аргумента, она использует значение по умолчанию:

Пример

def my_function( country = “Норвегия” ):
  print(“Я из ” + страна)

my_function(“Швеция”)
my_function(“Индия”)
my_function()
my_function(“Бразилия”)

Попробуйте сами »


Передача списка в качестве аргумента

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

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

Пример

def my_function(food):
 для x в еде:
print(x)

fruit = [“яблоко”, “банан”, “вишня”]

my_function(fruits)

Попробуйте сами »


Возвращаемые значения

Чтобы функция возвращала значение, используйте вернуть оператор:

Пример

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

Попробуйте сами »


Определение прохода не может быть пустым, но если у вас по какой-то причине есть определение функции

без содержимого, поместите в оператор pass , чтобы избежать ошибки.

Пример

def myfunction():
  pass

Попробуйте сами »


Рекурсия

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

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

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

В этом примере tri_recursion() — это функция, которую мы определили для вызова самой себя (“recurse”). Мы используем переменную k в качестве данных, которые уменьшаются (-1) каждый раз, когда мы рекурсивно. Рекурсия заканчивается, когда условие не больше 0 (т. е. когда оно равно 0).

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

Пример

Пример рекурсии

защита tri_recursion(k):
если (к > 0):
результат = k + tri_recursion (k – 1)
печать (результат)
еще:
результат = 0
return result

print(“\n\nРезультаты примера рекурсии”)
tri_recursion(6)

Попробуйте сами »


Проверьте себя с помощью упражнений

Упражнение:

Создайте функцию с именем my_function .

:
  print("Привет из функции")
 

Начать упражнение


❮ Предыдущий Следующая ❯


Словари Python

❮ Предыдущая Далее ❯


thisdict = {
  “марка”: “Ford”,
  “model”: “Mustang”,
  “year”: 1964
}


Значения словаря

Словари используются для хранения данных в ключе: пары значений.

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

Начиная с Python версии 3.7, словари упорядочены по . В Python 3.6 и более ранних словарях неупорядоченный .

Словари записываются в фигурных скобках и имеют ключи и значения:

Пример

Создание и печать словаря:

thisdict = {
  “бренд”: “Ford”,
  “model”: “Mustang”,
“year”: 1964
}
print(thisdict)

Попробуйте сами »


Элементы словаря

Элементы словаря упорядочены, изменяемы и не допускают дублирования.

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

Пример

Вывести значение “бренд” из словаря:

thisdict = {
  “бренд”: “Ford”,
  “модель”: “Mustang”,
  “год”: 1964
}
print(thisdict [“бренд”])

Попробуйте сами »


Заказали или нет?

Начиная с Python версии 3. 7, словари упорядочены по . В Python 3.6 и более ранних версиях словари неупорядочены .

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

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


Изменяемый

Словари изменяемы, что означает, что мы можем изменять, добавлять или удалять элементы после словарь создан.


Дубликаты не допускаются

В словарях не может быть двух элементов с одним и тем же ключом:

Пример

Повторяющиеся значения перезаписывают существующие значения:

thisdict = {
  “brand”: “Ford”,
  “model”: “Mustang”,
  “year”: 1964,
  “year”: 2020
}
print(thisdict)

Try it Yourself »



Длина словаря 90

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

Пример

Вывести количество элементов в словаре:

print(len(thisdict))

Попробуйте сами »


Элементы словаря — типы данных

Значения в элементах словаря могут иметь любой тип данных:

Пример

Типы данных String, int, boolean и list:

thisdict = {
 “brand”: “Ford”,
  “electric”: False,
  “год”: 1964,
 “цвета”: [“красный”, “белый”, “синий”]
}

Попробуйте сами »


type()

С точки зрения Python, словари определяются как объекты с типом данных ‘dict’:

Пример

Вывести тип данных словаря:

thisdict = {
  “марка”: “Ford”,
  “model”: “Mustang”,
  “year”: 1964
}
print(type(thisdict))

Попробуйте сами »


Конструктор dict()

Также можно использовать конструктор dict() для создания словаря.

Пример

Использование метода dict() для создания словаря:

thisdict = dict(имя = “Джон”, возраст = 36, страна = “Норвегия”)
print(thisdict)

Попробуйте сами »


Коллекции (массивы) Python

В языке программирования Python существует четыре типа данных коллекций:

  • Список — это упорядоченная и изменяемая коллекция. Позволяет дублировать участников.
  • Кортеж представляет собой упорядоченную и неизменяемую коллекцию. Позволяет дублировать участников.
  • Набор представляет собой неупорядоченную коллекцию, неизменяемый* и неиндексируемый. Нет повторяющихся членов.
  • Словарь – это коллекция, которая заказывается** и может быть изменена. Нет повторяющихся членов.

*Set элементы неизменны, но вы можете удалять и/или добавлять элементы всякий раз, когда вам нравится.

Оставить комментарий