Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 May 13

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
не понимаю, в чём проблема
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
могу ещё одно замечание сделать.
if i != 1:
   if a % i == 0
можно записать как
if i != 1 and a % i == 0
источник

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Да, это вообще очень некрасиво, спасибо
источник

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Сейчас в юпитере каком-нибудь попробую прогнать, но $python3 file.py ровно тот же результат выдаёт, counter not defined
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
попробуйте внутрь if is_simple(k) == 0 добавить nonlocal counter
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
хотя очень странно, всё должно работать
источник

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
попробуйте внутрь if is_simple(k) == 0 добавить nonlocal counter
Простите, не понял
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
не поможет, даже если бы поняли)
у меня есть только единственная догадка, что где-то затесалась русская с
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
c и c выглядят идентично, но я щас два разных символа написал
источник

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
блин, отличная гипотеза
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ну как минимум дело точно не в контексте
источник

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
c и c выглядят идентично, но я щас два разных символа написал
stupid me

вы совершенно правы
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
бывает)
источник

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
не поможет, даже если бы поняли)
у меня есть только единственная догадка, что где-то затесалась русская с
А всё же, касательно nonlocal: речь идёт о каком-то способе явного определения пространства имён? ) Прошу прощения если дичь пишу
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
да. есть такие операторы как global, nonlocal, они сделаны, чтобы явным образом указать интерпретатору, где искать переменную. если внутри цикла есть переменная с именем "a", и снаружи есть переменная с таким же именем, то по умолчанию все операции с "a" будут восприниматься как операции с локальной переменной. а если мы в начале цикла укажем nonlocal a, то интерпретатор забудет, что существует переменная по имени a внутри цикла, пока не встретит оператор local
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ну а global укажет, что переменную нужно искать в глобальном контексте
источник

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
да. есть такие операторы как global, nonlocal, они сделаны, чтобы явным образом указать интерпретатору, где искать переменную. если внутри цикла есть переменная с именем "a", и снаружи есть переменная с таким же именем, то по умолчанию все операции с "a" будут восприниматься как операции с локальной переменной. а если мы в начале цикла укажем nonlocal a, то интерпретатор забудет, что существует переменная по имени a внутри цикла, пока не встретит оператор local
Кирилл, большое спасибо
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
не за что
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
извиняюсь, про local лишнее сказал, такого оператора нет, то есть внутри цикла отменить действие оператора nonlocal невозможно
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
https://www.google.com/amp/s/www.geeksforgeeks.org/global-local-variables-python/amp/ вот неплохая статья про области видимости
источник