我正在嘗試創建一個函式來驗證游戲中的移動是否合法。在我的代碼頂部,我宣告了變數 Valid。
p1 = [1,1]
p2 = [1,1]
turn = 1
move = 0
Valid = False
稍后,我呼叫該函式check_swap(),現在,我只是回傳它True(稍后我將實作檢查):
if move == 2:
print("Swaping selected")
print("you have " str(p1[0] p1[1]) " in total.")
want_p1_hand_1 = input("How many do you want hand 1 to have?")
want_p1_hand_2 = input("How many do you want hand 2 to have?")
check_swap(p1, p2, turn, want_p1_hand_1, want_p1_hand_2)
if Valid == True:
p1[0] = want_p1_hand_1
p1[1] = want_p1_hand_2
print_game(p1, p2)
else:
print("That didn't work")
def check_swap(p1, p2, turn, want_p1_hand_1, want_p1_hand_2):
Valid = True
return Valid
然后,它默認為else陳述句并列印"That didn't work". 起初我只是有Valid = True,它說它Valid被呼叫但從未使用過,即使它是。我搜索了 Stackoverflow 并添加了return Valid似乎是正確的做法,但它沒有用。
uj5u.com熱心網友回復:
Valid = Trueincheck_swap實際上只是創建了一個新的區域變數,與全域變數分開Valid。
現在,您可以使用 global 陳述句,但撰寫代碼的更好方法是分配 to 的回傳check_swap值Valid。
Valid = check_swap(p1, p2, turn, want_p1_hand_1, want_p1_hand_2)
uj5u.com熱心網友回復:
要分配給全域變數,您需要global關鍵字。這是在 Python REPL 中運行的示例:
>>> valid = False
>>>
>>> def not_using_global():
... valid = True
... print(valid)
...
>>> def using_global():
... global valid
... valid = True
... print(valid)
...
>>>
>>> not_using_global()
True
>>> print (valid)
False
>>>
>>> using_global()
True
>>> print(valid)
True
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/495863.html
