Наоми Седер - Python. Экспресс-курс
- Название:Python. Экспресс-курс
- Автор:
- Жанр:
- Издательство:Питер
- Год:2019
- ISBN:978-5-4461-0908-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Наоми Седер - Python. Экспресс-курс краткое содержание
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.
Python. Экспресс-курс - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Множество (set) в Python представляет собой неупорядоченный набор объектов, используемый в ситуациях, когда вас интересует лишь сам факт принадлежности объекта к множеству и уникальность в множестве. Множество ведет себя как кол-лекция ключей словаря без ассоциированных значений:
>>> x = set([1, 2, 3, 1, 3, 5])
>>> x
{1, 2, 3, 5}
>>> 1 in x
True
>>> 4 in x
False
>>>
Множество создается вызовом set для последовательности — например, для спи-ска . При преобразовании последовательности в множество дубликаты удаляют-ся . Ключевое слово in используется для проверки принадлежности объекта к множеству.
3.2.7. Объекты файлов
Для работы с файлами в Python используются объекты файлов: >>> f = open("myfile", "w")
>>> f.write("First line with necessary newline character\n") 44
>>> f.write("Second line to write to the file\n")
33
>>> f.close()
>>> f = open("myfile", "r")
>>> line1 = f.readline()
>>> line2 = f.readline()
>>> f.close()
>>> print(line1, line2)
First line with necessary newline character
Second line to write to the file
>>> import os
>>> print(os.getcwd())
c:\My Documents\test
>>> os.chdir(os.path.join("c:\\", "My Documents", "images")) >>> filename = os.path.join("c:\\", "My Documents",
"test", "myfile")
>>> print(filename)
c:\My Documents\test\myfile
>>> f = open(filename, "r")
>>> print(f.readline())
First line with necessary newline character
>>> f.close()
Команда open создает объект файла. В данном случае файл myfile в текущем ра-бочем каталоге открывается в режиме записи ( "w" ). После записи двух строк в файл и его закрытия файл открывается снова, на этот раз в режиме для чтения ( "r" ). Модуль os предоставляет несколько функций для перемещения по файловой системе и работы с именами файлов и каталогов. В данном примере происходит перемещение в другой каталог . Тем не менее к файлу все равно можно обратиться по абсолютному имени .
Также в Python доступны другие средства ввода/вывода. Например, встроенная функция input запрашивает и вводит строку. Библиотечный модуль sys открывает доступ к потокам stdin , stdout и stderr . Библиотечный модуль struct предостав-ляет поддержку чтения и записи файлов, которые генерируются (или должны использоваться) программами на C. Библиотечный модуль Pickle обеспечивает возможность долгосрочного хранения данных посредством простой записи и чтения из файлов типов данных Python.
3.3. Управляющие конструкции
Python поддерживает обширный набор конструкций для управления выполне-нием кода, к числу которых относятся стандартные структуры условного выбора и циклов.
3.3.1. Логические значения и выраженияВ Python предусмотрено несколько возможных способов выражения логических значений; логическая константа False , 0 , неопределенное значение Python None и пустые значения (например, пустой список [] или пустая строка "" ) — все эти значения интерпретируются как False . Логическая константа True и все остальные значения интерпретируются как True .
Для создания логических условий используются операторы сравнения ( < , <= , == , > , >= , != , is , is not , in , not in ) и логические операторы ( and , not , or ); все они воз-вращают либо True , либо False .
3.3.2. Команда if-elif-else
Выполняется блок кода после первого истинного условия (в if или elif ). Если ни одно условие не равно True , то выполняется блок кода после else : x = 5
if x < 5:
y = -1
z = 5
elif x > 5:
y = 1
z = 11
else:
y = 0
z = 10
print(x, y, z)
Присутствие секций elif и else не обязательно , а количество секций elif не ограничено. Для ограничения блоков используются отступы . Включение явных ограничителей (таких, как квадратные или фигурные скобки) не обязательно. Каждый блок состоит из одной или нескольких команд, разделенных символами
новой строки. Все эти команды должны снабжаться отступами одного уровня. В приведенном примере будет выведен результат 5 0 10 .
3.3.3. Цикл while
Цикл while продолжает выполняться, пока условие (в следующем примере x > y ) остается истинным ( True ):
u, v, x, y = 0, 0, 100, 30
while x > y:
u = u + y
x = x — y
if x < y + 2:
v = v + x
x = 0
else:
v = v + y + 2
x = x - y — 2
print(u, v)
В первой строке используется сокращенный синтаксис присваивания. Здесь u и v присваивается значение 0, x присваивается 100, а y присваивается значение 30 . Затем идет блок цикла . Цикл может содержать команды break (прерывание цикла) и continue (отмена текущей итерации цикла). Пример выводит результат 60 40 .
3.3.4. Цикл for
Цикл for — простая, но мощная конструкция для перебора любого итерируемо-го типа (например, списка или кортежа). В отличие от многих языков, цикл for в Python перебирает элементы последовательности (например, списка или кор-тежа), так что он больше напоминает циклы foreach . Следующий цикл находит в списке первое вхождение целого числа, кратного 7: item_list = [3, "string1", 23, 14.0, "string2", 49, 64, 70] for x in item_list:
if not isinstance(x, int):
continue
if not x % 7:
print("found an integer divisible by seven: %d" % x)
break
Переменной x последовательно присваивается каждое значение из списка . Если x не является целым числом, то оставшаяся часть итерации отменяется командой continue . Выполнение цикла продолжается присваиванием x следующего элемен-та списка. После того как будет найдено подходящее целое число, цикл завершается командой break . Программа выводит
целое число, кратное 7: 49
3.3.5. Определение функции
Python поддерживает гибкий механизм передачи аргументов функциям: >>> def funct1(x, y, z):
... value = x + 2*y + z**2
... if value > 0:
... return x + 2*y + z**2
... else:
... return 0
...
>>> u, v = 3, 4
>>> funct1(u, v, 2)
15
>>> funct1(u, z=v, y=2)
23
>>> def funct2(x, y=1, z=1):
... return x + 2 * y + z ** 2
...
>>> funct2(3, z=4)
21
>>> def funct3(x, y=1, z=1, *tup):
... print((x, y, z) + tup)
...
>>> funct3(2)
(2, 1, 1)
>>> funct3(1, 2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> def funct4(x, y=1, z=1, **kwargs):
... print(x, y, z, kwargs)
>>> funct4(1, 2, m=5, n=9, z=3)
1 2 3 {'n': 9, 'm': 5}
Функции определяются командой def . Команда return определяет значение, возвращаемое функцией. Это значение может относиться к любому типу. Если команда return не была обнаружена в ходе выполнения функции, возвращается значение Python None . Аргументы функции могут передаваться по позиции или по имени (ключевому слову). В данном примере аргументы z и y передаются по имени . Для параметров функции могут определяться значения по умолчанию, которые будет использованы в том случае, если значение не указано при вызове функции . Также можно определить специальный параметр, который объ-единяет все лишние позиционные аргументы при вызове функции в кортеж . Аналогичным образом возможно определить специальный параметр, который объединяет все лишние именованные аргументы, указанные при вызове функции, в словарь .
Читать дальшеИнтервал:
Закладка: