[英]Python, While Loop Not Functioning Properly
當首先為“您想繼續”問題輸入“否”時,while循環正確停止。 當在“是”之后或在多個“是”條目之后輸入“否”時,則用戶必須回答“否”,因為在此之前有許多“是”條目:例如,“是”,“是”,“否”在第一個“否”答案之后產生兩個“您想繼續”問題。
我剛剛開始學習Python,因此任何建議都會有所幫助。
謝謝。
def testing3():
def Grade(score):
if score >= 90:
letter = "A"
elif score >= 80:
letter = "B"
elif score >= 70:
letter = "C"
elif score >= 60:
letter = "D"
else:
letter = "F"
print(letter)
def main():
x = input("Enter Numerical Grade: ")
numGrade = int(x)
Grade(numGrade)
main()
def main2():
while True:
test = input("Would you like to continue?: ")
if test == 'Yes':
testing3()
else:
print("Done")
break
main2()
testing3()
您的testing3調用會調用內部的main2 def,但是main2會調用testing3 def,因此您在兩者之間進行了ping-poning。
為了了解這一點,您應該查看堆棧框架,並看到一個用於test3的框架,然后是testing2,然后是testing3,依次類推,以了解您輸入了yes的次數。
無論您是否打算(我認為您沒有這樣做),您都創建了一個遞歸函數。 因此,您不必多次輸入的原因是在展開時(將幀彈出堆棧)
while循環的正確使用應如下所示:
finish = False
while not finish:
# do your stuff here
finish = evaluateLoopFinish()
在此,終點是一個信號標志,您必須在每個回合結束時對其進行評估。 第一次設置為False,因此不設置False == True,因此進入循環。
另一個提示:只能使用一個這樣的主體
def main(args):
# do your stuff here
if __name__=="__main__":
main()
每個Python腳本都有一個名稱特殊變量,該變量保存模塊的名稱, 但要執行的Python腳本收到的特殊值main 除外 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.