Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL
Post #3946
2.44K
ZE @zen_of_python
Showing posts older than #3947 · Back to latest



a = 1b = 2def add(a, b): return a + badd(a, b)add() не изменяет ничего вне своей области.def append_element(lst, element): lst.append(element)my_list = [1, 2, 3]append_element(my_list, 4)print(my_list) # [1, 2, 3, 4]append_element() изменяет глобальную переменную my_list. Каждый раз при вызове функции, состояние программы (то есть списка) изменяется.a и b, равные 1 и 2 соответственно, и отправить аргументами add():a = 1b = 2def add(a, b): a += 1 return a + bprint(add(a, b)) # 4print(a) # 1add() и добавим увеличение a на единицу (a += 1), чтобы вы могли сравнить работу «чистой» и «грязной» функций.add() фактически создаются другие аргументы a и b. Поэтому при вызове a вне функции мы получим исходное ее значение — единицу. add() «грязной», то таким образом:a = 1b = 2def add(): global a # Указываем, что будем использовать глобальную переменную a a += 1 # Изменяем значение глобальной переменной return a + bprint(add()) # Вывод: 4print(a) # Теперь вывод: 2, так как a была измененаadd() при объявлении функции теперь не подаются. Если вызывать из глобальной функции a, то она фактически больше не является константой (становится переменной). 

Forwarded from Python: задачки и вопросы
G = gen()
G, но код внутри функции gen() не начинает выполняться, пока не будет вызван next(G).next(G):
print(next(G)) # 0
next(G) в первый раз, генератор начинает выполнение с начала функции gen(). Внутри функции запускается цикл for и выполняется первая итерация, где i становится равным 0. Затем происходит yield i, что означает, что значение 0 возвращается, и генератор приостанавливается. Значение 0 выводится на экран.next(G):
print(next(G)) # None 1
next(G) во второй раз, генератор продолжает выполнение с той точки, где он был приостановлен (после yield). В этот момент выполнение доходит до X = yield i, и так как вызывается next(G) без передачи аргумента, X будет установлено в значение None. Затем срабатывает print(X), и выводится None.X становится равным 1.Forwarded from Python: задачки и вопросы
Forwarded from Типичный программист




