คำสั่ง global ใน Python

สมมติว่าเรามีตัวแปรโกลบอลภายนอก i และมีฟังก์ชัน func ที่บวกค่าตัวแปรนี้ ทีละหนึ่ง:

pythoni = 0
def func():
  i += 1 # จะแสดงข้อผิดพลาด
  return i

หลังจากรันโค้ดจะส่งคืนข้อผิดพลาด เนื่องจากเกิดความขัดแย้งระหว่างตัวแปรโกลบอล i ที่ประกาศไว้ในโค้ดภายนอก และ ตัวแปรโลคัล i ที่กำลังถูกบวกด้วย 1 แต่ตัวแปรนั้นเองยังไม่ถูก ประกาศ เพื่อแก้ไขปัญหา นี้และกำหนดให้ฟังก์ชันทำงานกับ ตัวแปรโกลบอลโดยตรง จำเป็นต้องใช้ คำสั่ง 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())

มีอะไรผิดปกติกับโค้ดนี้? หาและแก้ไข ข้อผิดพลาดของผู้เขียนโค้ด