它說N沒有定義。但為什么?它在def szint()有人知道是什么問題嗎?
抱歉不會英文。如果你愿意,我可以翻譯它。
import random
def szint():
N = int(input('Hanyadik emelet színezését kéred? (1.-50. szint) '))
if N > 50 or N < 1:
print('Ez nincs a megadott tartományban, válassz egy másik szintet!')
szint()
def szinezes():
I = int(input('Hanyadik fajtát? (1.-1 000 000 000 000 000. színezés) '))
if I > 1000000000000000 or I < 1:
print('Ez nincs a megadott tartományban, válassz egy másik szintet!')
szinezes()
szint()
szinezes()
def variansok(length):
alap_szinezés = 'FPZ'
varians = ''.join((random.choice(alap_szinezés)) for x in range(length))
variansok(N)
uj5u.com熱心網友回復:
N是不是在您的來電定義variansok。N中定義的區域變數szint。一旦呼叫szint回傳,該變數就消失了。
您可以szint定義一個全域變數(并使用回圈而不是遞回)
def szint():
global N
while True:
N = int(input('Hanyadik emelet színezését kéred? (1.-50. szint) '))
if 1 <= N <= 50:
break
print('Ez nincs a megadott tartományban, válassz egy másik szintet!')
但更好的解決方案是回傳值以定義與呼叫variansok.
def szint():
while True:
N = int(input('Hanyadik emelet színezését kéred? (1.-50. szint) '))
if 1 <= N <= 50:
return N
print('Ez nincs a megadott tartományban, válassz egy másik szintet!')
n = szint()
...
variansok(n)
uj5u.com熱心網友回復:
N 僅在 szint() 函式內部定義。您可以將變數設為全域變數,也可以僅從函式中回傳值,如下所示
import random
def szint():
N = int(input('Hanyadik emelet színezését kéred? (1.-50. szint) '))
if N > 50 or N < 1:
print('Ez nincs a megadott tartományban, válassz egy másik szintet!')
szint()
return N
def szinezes():
I = int(input('Hanyadik fajtát? (1.-1 000 000 000 000 000. színezés) '))
if I > 1000000000000000 or I < 1:
print('Ez nincs a megadott tartományban, válassz egy másik szintet!')
szinezes()
N = szint()
szinezes()
def variansok(length):
alap_szinezés = 'FPZ'
varians = ''.join((random.choice(alap_szinezés)) for x in range(length))
variansok(N)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/339903.html
上一篇:將類的內部命名空間作為字典回傳
