Pythonのglobal文

外部でグローバル変数 i があるとします。 また、この変数に1を加算する関数 func があります:

pythoni = 0
def func():
  i += 1 # エラーが発生します
  return i

このコードを実行するとエラーが返されます。 なぜなら、外部で宣言されたグローバルな i と、 1 が加算されるローカル変数 i が衝突するためです。 このローカル変数はまだ宣言されていません。 この問題を解決し、関数がグローバル変数を確実に操作するようにするには、 global 文を使用する必要があります。 この文は、それが記述された現在のコードブロック全体に対して有効な宣言です。

前の例を、関数本体で global を宣言して書き直してみましょう:

pythondef func():
  global i
  i += 1
  return i
  
print(func()) # 1を出力します
Задание 1

次のコードで、とあるプログラマーは間違いを犯しています:

pythonnum = 4

def func():
  num *= 2
  return num

print(func())

このコードの何が問題でしょうか?コード作者のエラーを見つけて修正してください。

Задание 2

次のコードで、とあるプログラマーは間違いを犯しています:

pythonnum = 10

def func():
  num -= 3
  return i

print(func())

このコードの何が問題でしょうか?コード作者のエラーを見つけて修正してください。