Arahan global dalam Python

Katakan kita mempunyai pembolehubah global luaran i. Juga terdapat fungsi func yang menambah satu kepada pembolehubah ini:

pythoni = 0
def func():
  i += 1 # akan memaparkan ralat
  return i

Selepas kod dilaksanakan, ralat akan dipulangkan, kerana berlakunya konflik antara i global yang diisytiharkan dalam kod luaran, dan i tempatan, yang mana 1 ditambah, tetapi pembolehubah itu sendiri belum diisytiharkan. Untuk menyelesaikan masalah ini dan menetapkan fungsi untuk bekerja dengan pembolehubah global, kita perlu menggunakan arahan global. Arahan ini merupakan pengisytiharan yang dilaksanakan untuk seluruh blok kod semasa di mana ia ditetapkan.

Mari kita tulis semula contoh sebelumnya, dengan mengisytiharkan global dalam badan fungsi:

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

Dalam kod berikut, seorang pengaturcara telah melakukan kesilapan:

pythonnum = 4

def func():
  num *= 2
  return num

print(func())

Apakah yang tidak kena dengan kod ini? Cari dan betulkan kesilapan pengarang kod.

Задание 2

Dalam kod berikut, seorang pengaturcara telah melakukan kesilapan:

pythonnum = 10

def func():
  num -= 3
  return i

print(func())

Apakah yang tidak kena dengan kod ini? Cari dan betulkan kesilapan pengarang kod.