我检查是否可以将输入更改为整数,如果它不能从UI()的开头重新开始。我通过pycharm的调试器跟着它,它将通过try,但是当我尝试使用4退出时。它将一直到最后,然后返回到except块。
我认为我评论过的部分是唯一相关的部分。谢谢你的帮助。
def UI():
global exitBool
global newBool
if not TV.tvList:
tv = TurnOnTV()
if TV.tvList:
l = list(TV.tvList.keys())
tv = TV.tvList.get(l[0])
print("1)change channel\n2)change volume\n3)Turn on another TV\n4)Exit\n5)Choose TV") #print accepted answers
choice = input()
try:
choice = int(choice) #try block and exception block
except:
print("\nInvalid Choice\n")
UI()
choice = int(choice)
if choice == 1:
if tv:
tv.changechannel(input("enter channel: "))
else:
print('sorry no tvs are available\n')
elif choice == 2:
if tv:
tv.changevolume(input("Enter in volume: "))
else:
print('Sorry no Tvs available')
elif choice == 3:
TurnOnTV()
elif choice == 4:
exitBool = True # exit bool to exit main loop
elif choice == 5:
tv = ChooseTV(input("Enter in TV name: "))
else:
print("Invalid Choice")
if tv:
tv.display()
def Main():
while exitBool == False: #Main Loop
UI()
答案 0 :(得分:1)
当您发现错误并打印“无效选择”时,您不能再次调用UI()。这样你就可以进行递归调用,当内部UI()终止时,代码继续在外部调用。
使用“while”语句重复一段代码,直到用户做出有效选择。