0% нашли этот документ полезным (0 голосов)
5 просмотров22 страницы

Python

Документ описывает основные концепции итерирования и генераторов в Python, включая использование ключевого слова 'yield' для создания генераторов, которые генерируют значения на лету. Приведены примеры создания бесконечного генератора случайных чисел и работы с аргументами командной строки с использованием библиотеки argparse. Также представлены задания на создание скриптов, взаимодействующих с файловой системой и обработкой аргументов.

Загружено:

s1ndly
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
5 просмотров22 страницы

Python

Документ описывает основные концепции итерирования и генераторов в Python, включая использование ключевого слова 'yield' для создания генераторов, которые генерируют значения на лету. Приведены примеры создания бесконечного генератора случайных чисел и работы с аргументами командной строки с использованием библиотеки argparse. Также представлены задания на создание скриптов, взаимодействующих с файловой системой и обработкой аргументов.

Загружено:

s1ndly
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

Python

14

СКАЧАНО С [Link]
Итератор
Считывание элементов один за другим -
mylist1 = [1, 2, 3]
итерирование. Список - итерируемый
for i in mylist1: объект.
print(i)
Всё, к чему можно применить цикл «for… in...», является
итерируемым объектом: списки, строки, файлы

mylist2 = [x*x for x in range(3)]


for i in mylist2 :
print(i)

СКАЧАНО С [Link]
Генератор
mygenerator = (x*x for x in range(3)) Генераторы - итерируемые объекты,
for i in mygenerator :
которые можно прочитать только один
print(i)
раз. Генераторы не хранят значения в
памяти, а генерируют их на лету.

СКАЧАНО С [Link]
yield
Yield - ключевое слово, которое используется вместо return и
def create_generator() : возвращает объект генератора.
mylist = range(3) Генераторы удобно использовать, когда известно что
for i in mylist: функция вернет большой набор значений, который надо
yield i*i прочитать только один раз.
Когда вызывается функция, код внутри тела функции не
исполняется. Функция только возвращает объект-генератор.
mygenerator = create_generator() Код будет вызываться каждый раз, когда for обращается к
print(mygenerator) генератору.
# <generator object createGenerator at 0x000000> В первый запуск функции, она будет исполняться от
for i in mygenerator: начала до того момента, когда она наткнется на yield — тогда
она вернет первое значение из цикла. На каждый следующий
print(i)
вызов будет происходить ещё одна итерация написанного вами
цикла, возвращаться будет следующее значение — и так пока
значения не кончатся.
Генератор считается пустым, как только при исполнении
кода функции не встречается yield. Это может случиться из-за
конца цикла, или же если не выполняется какое-то из условий
«if/else».

СКАЧАНО С [Link]
next
def my_animal_generator(): Для обращения к
yield 'корова'
for animal in ['кот', 'собака', 'медведь']:
следующему элементу
yield animal генератора используется
yield 'кит'
функция next
my_generator = my_animal_generator()
print(next(my_generator))
print('---------')
for animal in my_generator:
print(animal)
# корова кот собака медведь кит

СКАЧАНО С [Link]
Задание 14.01
Создать бесконечный генератор случайных чисел.

Использовать в генераторе временную задержку

from time import sleep

СКАЧАНО С [Link]
Задание 14.02
Модифицировать генератор, чтобы генератор принимал диапазон случайных
чисел и чтобы последующее случайное число лежало в диапазоне
смещенном на n.

Пример: a = 1, b = 10, diff = 10

1. 1- 10
2. 11-20
3. …
4. N +10 - M + 10
СКАЧАНО С [Link]
Создание скриптов
При запуске программ на python из
import sys
терминала с передачей аргументов
print([Link])
python [filename].py arg1 arg2
if 'Alex' in [Link]:
[Link] содержит все переданные
print('Hello, Alex')
аргументы. В качестве первого аргумента
else: выступает путь по которому был запущен
print('Hello, Guest') скрипт

СКАЧАНО С [Link]
Задание 14.03
Создать скрипт, который при запуске принимает
неопределенное количество аргументов и считает сумму
тех из них, что являются цифрами.

Пример:

python [Link] 1 2 3 4 a b 5 6 --> 21

СКАЧАНО С [Link]
argparse
argparse - библиотека упрощающая работу с
import sys
входными аргументами скрипта.
import argparse

print([Link])
parser = [Link]() python [Link] -fn Alex --last-name Varkalov test
или
parser.add_argument('-fn', '--first-name',
python [Link] test -fn=Alex --last-name=Varkalov
required=True)
parser.add_argument('-ln', '--last-name',
required=True)
parser.add_argument('echo')
args = parser.parse_args()
print(args)
print('First name:', args.first_name)
print('Last name:', args.last_name)
print('echo:', [Link])
СКАЧАНО С [Link]
Задание 14.04
Создать скрипт, который принимает имя фамилию и
возраст и дописывает их в csv файл
Использование конфигурации
Использование дебаггера
Взаимодействие с файловой системой
import os os - библиотека для работы с операционной
системой.

file_path = [Link]( __file__)


dir_name = [Link](file_path)
[Link]('path to dir' )
Задание 14.05
Создать скрипт, который принимает имя папки и создает
ее рядом со скриптом
Задание 14.06
Дописать скрипт. Программа принимает имя папки и имя
файла. Создает папку и создает в ней файл.
Задание 14.07
Дописать скрипт. Программа принимает имя папки и имя
файла с расширением. Создает папку и создает в ней
файл. Если расширение файла py - записывает в файл
следующее:
def main():
pass

if __name__ == '__main__' :
main()

Вам также может понравиться