answer = int(input("What is {number1} * {number2} ?"))在沒有函式的情況下使用時,該行作業正常,但是當我將其放入函式中時,它會引發錯誤Traceback (most recent call last): File "C:\Users\hjg\Downloads\test4.py", line 17, in <module> answer = eval(input("What is", number1, "*", number2, "?")) NameError: name 'number1' is not defined >>>。
import random, math
def quiz(answer):
number1 = random.randint(0,9)
number2 = random.randint(0,9)
if answer == correctanswer:
return print("Correct")
else:
return print("Incorrect.")
answer = int(input("What is {number1} * {number2} ?"))
correctanswer = number1 * number2
quiz(number1, number2)
uj5u.com熱心網友回復:
你對你的代碼有點困惑。number1 和 number2 應該在函式之外并且函式只需要獲取 1 個引數。嘗試這個:
import random
def quiz(answer: int):
correctanswer = number1 * number2
if answer == correctanswer:
return print("Correct")
else:
return print("Incorrect.")
number1 = random.randint(0,9)
number2 = random.randint(0,9)
answer = int(input(f"What is {number1} * {number2} ?"))
quiz(answer)
uj5u.com熱心網友回復:
如果在函式內部宣告number1and number2,則只能在函式內部訪問它們。您可以修改測驗函式,以便在其中獲取輸入,也可以在函式外部初始化變數。
你的函式也只接受一個引數,但你傳遞了兩個。您也不需要匯入math. 基本算術(加、減、乘、除等)內置于 Python 的核心中,你只需要這個math包來做更復雜的事情,比如三角學或搞亂 Pi。
例如:
import random
def quiz(question, correctanswer):
answer = int(input(question))
if answer == correctanswer:
return print("Correct")
else:
return print("Incorrect.")
number1 = random.randint(0, 9)
number2 = random.randint(0, 9)
quiz(f"What is {number1} * {number2} ?", number1 * number2)
我建議你閱讀scoping。
uj5u.com熱心網友回復:
您必須將變數放在頂部以使其成為全域變數。
import random, math
number1 = random.randint(0,9)
number2 = random.randint(0,9)
def quiz(answer):
correctanswer = number1 * number2
if answer == correctanswer:
return print("Correct")
else:
return print("Incorrect.")
answer = int(input(f"What is {number1} * {number2} ?"))
quiz(answer)
uj5u.com熱心網友回復:
因為你的范圍。number1 和 number2 在您參考它們的地方不存在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342941.html
