Python-dagi global instruksiyasi

Faraz qilaylik, bizda tashqi global o'zgaruvchi i mavjud. Shuningdek, ushbu o'zgaruvchiga bittani qo'shadigan func funksiyasi mavjud:

pythoni = 0
def func():
  i += 1 # xatolik chiqaradi
  return i

Kod bajarilgandan so'ng, xatolik qaytadi, chunki tashqi kodda e'lon qilingan global i va 1 qo'shilayotgan, lekin o'zgaruvchi hali e'lon qilinmagan lokal i o'rtasida ziddiyat yuzaga keladi. Ushbu muammoni hal qilish va funksiyani aniq global o'zgaruvchi bilan ishlashini belgilash uchun global instruksiyasidan foydalanish kerak. Ushbu instruksiya belgilangan joriy kod bloki uchun bajariladigan e'lon hisoblanadi.

Keling, oldingi mislni global ni funksiya tanaqismida e'lon qilib, qayta yozamiz:

pythondef func():
  global i
  i += 1
  return i
  
print(func()) # 1 chiqaradi
Задание 1

Quyidagi kodda ma'lum bir dasturchi xatolik qildi:

pythonnum = 4

def func():
  num *= 2
  return num

print(func())

Ushbu kodda nima noto'g'ri? Kod muallifining xatosini toping va tuzating.

Задание 2

Quyidagi kodda ma'lum bir dasturchi xatolik qildi:

pythonnum = 10

def func():
  num -= 3
  return i

print(func())

Ushbu kodda nima noto'g'ri? Kod muallifining xatosini toping va tuzating.