Size: a a a

2020 December 16

YT

Yerzhaisang Tasqali in Python KZ
Да
источник

S

Saigulik in Python KZ
Бзр жок
источник

RJ

Rus Jr in Python KZ
источник

D

Dokazhi in Python KZ
нет мы не будем никого взрывать
источник

MM

Marat Mustafin in Python KZ
Dokazhi
нет мы не будем никого взрывать
😂😂
источник

YT

Yerzhaisang Tasqali in Python KZ
знатоки Питона!
внутри функции почему переменное вне функции не может сразу опредлиться без объявления global?
это думаю усложняет многим работу.
что за идея хранится за этим?
источник

R

Ramil' in Python KZ
Yerzhaisang Tasqali
знатоки Питона!
внутри функции почему переменное вне функции не может сразу опредлиться без объявления global?
это думаю усложняет многим работу.
что за идея хранится за этим?
Global local namespace
источник
2020 December 17

SA

Sultan Abilda in Python KZ
Ramil'
Global local namespace
Namespace scope
источник

SA

Sultan Abilda in Python KZ
Yerzhaisang Tasqali
a=0
def foo(a):
   a+=1
foo(a)
print(a)
Идея такова что обычно в глобал скоупе должны храниться не изменяемые переменные, классы, функции, константы. И обычно их наименования не конфликтуют с локальным скоупом.
Конкретно в твоём примере проблема в том что глобальный "а" конфликтует с локальным "а" - название аргумента.
Почитай как питон ищет переменные. Точнее в каком порядке ищет.
источник

SA

Sultan Abilda in Python KZ
Но если в кратце. Есть 3 скоупа(контекста). Local, global и built-in.
Когда ты внутри функции объявляешь переменную она храниться внутри local конкретно этой функции, то есть из вне функции ты к переменной не имеешь доступа.
Когда переменная объявлена в корне модуля (то что ты объявил "а"). Она сохраняется в global (глобально для модуля). К нему доступ имеют все функции и классы этого модуля.
Builtins - встроенные объекты питона (переменные которые не нужно импортировать по дефолту, str, list, print, и тд). По сути все что ты используешь без импорта. Можно найти в модуле builtins (import builtins).
Так вот. Когда ты обращаешься к переменной, питон ищет её в этих 3-х скоупах. В порядке local, global, built-in.
В твоем случаи твой локальный "а" - название первого аргумента функции, перекрыл глобальный "а" - который ты объявил в начале скрипта. И чтобы дать понять питону что ты хочешь обратиться к глобальному "а", а не локальному, ты добавляешь global.
источник

н

ны in Python KZ
Sultan Abilda
Но если в кратце. Есть 3 скоупа(контекста). Local, global и built-in.
Когда ты внутри функции объявляешь переменную она храниться внутри local конкретно этой функции, то есть из вне функции ты к переменной не имеешь доступа.
Когда переменная объявлена в корне модуля (то что ты объявил "а"). Она сохраняется в global (глобально для модуля). К нему доступ имеют все функции и классы этого модуля.
Builtins - встроенные объекты питона (переменные которые не нужно импортировать по дефолту, str, list, print, и тд). По сути все что ты используешь без импорта. Можно найти в модуле builtins (import builtins).
Так вот. Когда ты обращаешься к переменной, питон ищет её в этих 3-х скоупах. В порядке local, global, built-in.
В твоем случаи твой локальный "а" - название первого аргумента функции, перекрыл глобальный "а" - который ты объявил в начале скрипта. И чтобы дать понять питону что ты хочешь обратиться к глобальному "а", а не локальному, ты добавляешь global.
да, но тут еще надо добавить int передается в питоне по значению а не по ссылке
источник

н

ны in Python KZ
и по сути ты работаешь с переменным у которого значение как у аргумента
источник

н

ны in Python KZ
передал бы по ссылке был бы норм и как ожидалось
источник

SA

Sultan Abilda in Python KZ
Все верное
источник

DL

Daniyar Lyakhov in Python KZ
Есть тут еще обучающиеся в школах или только-только их закончившие? Все еще учат Паскалю или система образования уже наконец доросла до Питона?
источник

R

Reffi_4 in Python KZ
Daniyar Lyakhov
Есть тут еще обучающиеся в школах или только-только их закончившие? Все еще учат Паскалю или система образования уже наконец доросла до Питона?
У меня в школе питон, но учитель его явно не знает..
источник

SA

Sultan Abilda in Python KZ
Сейчас что в школах программированию учат? До чего техника дошла
источник

R

Reffi_4 in Python KZ
"учат" кхехе, единственно что было более-менее нормально, так это участие в олимпиадах
источник

MR

Maksat Ramazanov in Python KZ
Sultan Abilda
Но если в кратце. Есть 3 скоупа(контекста). Local, global и built-in.
Когда ты внутри функции объявляешь переменную она храниться внутри local конкретно этой функции, то есть из вне функции ты к переменной не имеешь доступа.
Когда переменная объявлена в корне модуля (то что ты объявил "а"). Она сохраняется в global (глобально для модуля). К нему доступ имеют все функции и классы этого модуля.
Builtins - встроенные объекты питона (переменные которые не нужно импортировать по дефолту, str, list, print, и тд). По сути все что ты используешь без импорта. Можно найти в модуле builtins (import builtins).
Так вот. Когда ты обращаешься к переменной, питон ищет её в этих 3-х скоупах. В порядке local, global, built-in.
В твоем случаи твой локальный "а" - название первого аргумента функции, перекрыл глобальный "а" - который ты объявил в начале скрипта. И чтобы дать понять питону что ты хочешь обратиться к глобальному "а", а не локальному, ты добавляешь global.
А nonlocal не входит в список скоупов? Или это уже другое?
источник

B

Bekbolat in Python KZ
Видел что в билингвальном учебнике Informatics 8-класса от издателя "Астана кітап" учат python3, там основные  алгоритмические конструкции рассматривают
источник