Darbības jomu nianses Python

Apskatīsim svarīgās nianses, strādājot ar lokālajām un globālajām mainīgajiem.

Pieņemsim, ka mums ir globāls mainīgais num. Izveidosim funkciju func, kas izvadīs globālo num konsole:

pythonnum = 1

def func():
  print(num)

func() # izvadīs 1

Tagad deklarēsim lokālo num rindā zem funkcijas print. Pēc koda izpildes konsolē tiks izvadīta kļūda. Tas notiek tāpēc, ka Python funkcijas iekšpusē uztver num tikai kā lokālo mainīgo, kas vēl nav deklarēts:

pythonnum = 1

def func():
  print(num) # izvadīs kļūdu
  num = 2

Tagad pārrakstīsim kodu funkcijas iekšpusē tā, lai mainīgā num vērtība palielinātos par 2:

pythonnum = 1

def func():
  num += 2 # izvadīs kļūdu

Kļūda izraisīta ar to, ka izteiksme num += 2 ir šāds apzīmējums:

pythonnum = num + 2

Tomēr pats lokālais mainīgais, kuram tiek pievienots vēl nav deklarēts. Un attiecīgi Python izvada kļūdu, jo nevar pievienot skaitli neesošai vērtībai.

Задание 1

Kāds būs šāda koda izpildes rezultāts:

pythontst = '12'

def func():
  tst = 12
  return tst
  
print(tst)
Задание 2

Kāds būs šāda koda izpildes rezultāts:

pythontst = 'abc'

def func():
  tst = tst.upper()
  return tst

func()
print(tst)
Задание 3

Kāds būs šāda koda izpildes rezultāts:

pythontst = 'abc'

def func():
txt = tst.upper()
return txt
    
print(func())
print(tst)