我正在創建一個計算器,并且我使用了一個 while 回圈,以便用戶可以一次又一次地進行計算。但是while回圈中存在一些問題。
這是代碼:
print("CALCULATOR")
def addint(n1,n2):
sum = n1 n2
return sum
def minusint(n1,n2):
minus = n1 - n2
return minus
def mult(n1,n2):
multsum = n1 * n2
return multsum
def div(n1,n2):
divsum = n1 / n2
return divsum
n1 = int(input("Enter First Number:\n"))
n2 = int(input("Enter Second Number:\n"))
n3 = str(input("Which Operator?\n"))
while n1 <= 0:
if n3 == ' ':
print(f"The answer is {addint(n1,n2)}")
elif n3 == '-':
print(f"The answer is {minusint(n1,n2)}")
elif n3 == '*':
print(f"The answer is {mult(n1,n2)}")
elif n3 == '/':
print(f"The answer is {div(n1,n2)}")
else:
print("INVALID OPERATOR")
break
這是輸出視窗:
CALCULATOR
Enter First Number:
20
Enter Second Number:
10
Which Operator?
-
發生的問題是,當我在輸出視窗中使用 while 回圈之后,計算并沒有像預期的那樣發生。輸入數字和運算子后,輸出視窗就會關閉。第二個問題是用戶不能一次又一次地進行計算。
uj5u.com熱心網友回復:
- 只要條件為真,while 回圈就會運行里面的代碼。在這種情況下,條件是 n1 <= 0。因此,如果 n1 = 20,則回圈甚至不會運行一次。如果您想要無限回圈,請使用while True。
- 最后有一個break關鍵字,所以回圈只會運行一次。
- 您的程式將永遠列印相同的結果,因為輸入指令在回圈之外。
作業示例:
def addint(n1, n2):
sum = n1 n2
return sum
def minusint(n1, n2):
minus = n1 - n2
return minus
def mult(n1, n2):
multsum = n1 * n2
return multsum
def div(n1, n2):
divsum = n1 / n2
return divsum
while True:
n1 = int(input("Enter First Number:\n"))
n2 = int(input("Enter Second Number:\n"))
n3 = input("Which Operator?\n")
if n3 == ' ':
print(f"The answer is {addint(n1,n2)}")
elif n3 == '-':
print(f"The answer is {minusint(n1,n2)}")
elif n3 == '*':
print(f"The answer is {mult(n1,n2)}")
elif n3 == '/':
print(f"The answer is {div(n1,n2)}")
else:
print("INVALID OPERATOR")
請注意,將input("Which Operator?\n")轉換為 str 是不必要的,因為 input 函式回傳字串。
uj5u.com熱心網友回復:
為什么 while 條件是 "while n1 <= 0" ?馬上,您輸入了 n1 = 20,它不是 <=0。因此,它根本不會進入 while 回圈。
uj5u.com熱心網友回復:
你可以這樣做
while True:
n1 = int(input("Enter First Number:\n"))
n2 = int(input("Enter Second Number:\n"))
n3 = str(input("Which Operator?\n"))
if n3 == ' ':
print(f"The answer is {addint(n1,n2)}")
elif n3 == '-':
print(f"The answer is {minusint(n1,n2)}")
elif n3 == '*':
print(f"The answer is {mult(n1,n2)}")
elif n3 == '/':
print(f"The answer is {div(n1,n2)}")
else:
print("INVALID OPERATOR")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/449139.html
上一篇:測驗整個資料框的顯著性
下一篇:計算不確定性的函式
