[英]How to repeat program after running the whole program in Python?
我寫了一個簡短的程序,比較兩個整數並在最后提供一個合適的答案。 我希望程序重復自己,以防整數沒有寫在'userint'中。
核心計划:
from random import randint
rn = randint(0,5)
print("The randomly generated integer is:",rn)
userint= input("Enter an integer:")
try:
if userint == rn:
print("Numbers are equal!")
elif userint > rn:
print(userint)
else:
print(rn)
except:
print("You have not entered an integer!")
if input("Do you want to repeat(y/n)").lower()== " N":
break
這是我嘗試過的:
while True:
from random import randint
rn = randint(0,5)
print("The randomly generated integer is:",rn)
userint= input("Enter an integer:")
try:
if userint == rn:
print("Numbers are equal!")
elif userint > rn:
print(userint)
else:
print(rn)
except:
print("You have not entered an integer!")
if input("Do you want to repeat(y/n)").lower()== " N":
break
我還嘗試了另一種重復程序的方法:
def main():
from random import randint
rn = randint(0,5)
print("The randomly generated integer is:",rn)
userint= input("Enter an integer:")
try:
if userint == rn:
print("Numbers are equal!")
elif userint > rn:
print(userint)
else:
print(rn)
except:
print("You have not entered an integer!")
restart = input("Do you want to start again?").lower()
if restart == "yes":
main()
else:
exit()
main()
在這兩種情況下,程序都會要求用戶輸入值。 然而,盡管它運行了程序的重啟部分,但沒有傳導實際比較值。
有人可以指導我如何修復程序並允許它比較值,如果用戶輸入不是整數打印(“你還沒有輸入整數!”),請問“你想重新開始嗎?”,然后運行程序又來了?
您可以使用isnumeric來檢查輸入是否為整數。
def main():
from random import randint
rn = randint(0,5)
print("The randomly generated integer is:",rn)
userint= input("Enter an integer:")
if userint.isnumeric():
userint=int(userint)
try:
if userint == rn:
print("Numbers are equal!")
elif userint > rn:
print(userint)
else:
print(rn)
except:
print("You have not entered an integer!")
restart = input("Do you want to start again?").lower()
if restart == "yes":
main()
else:
exit()
main()
問題出在你的try / except塊中。 如果任何這些行失敗,try塊將不會運行該塊中包含的任何代碼行。 在您的情況下,由於您的userint變量是字符串而rn是int,因此您有一個失敗的行。 在您的示例的上下文中,可以修復此問題,只需將以下行添加到try塊的頂部:
try:
userint = int( userint )
...
except:
...
如果無法將userint轉換為字符串,則try塊將失敗,您將打印錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.