我认为while循环的逻辑是合理的,但是在第一个循环之后它突然停止了。
choice=int(input("Enter choice:"))
if (choice=="" or (choice!=0 and choice!=1 and choice!=2)):
valid = False
while valid == False:
print("Invalid choice, please enter again")
choice=int(input("Enter choice:"))
return choice
if choice ==1:
valid=True
display_modules_average_scores()
menu()
elif choice ==2:
valid=True
display_modules_top_scorer()
menu()
elif choice==0:
exist=True
print("===============================================")
print("Thank you for using Students' Result System")
print("===============================================")
如果我输入5,它会:
print("Invalid choice, please enter again")
choice=int(input("Enter choice:"))
但是,如果我再次输入5,它将停止程序。我在做什么错了?
答案 0 :(得分:0)
如果我再次输入5,它将停止程序
因为您有一个return语句,该语句立即结束您正在其中运行的函数。
您似乎正在尝试创建无限循环。您可以以此测试退出和无效条件。注意:选择永远不会等于空字符串
MaxDegreeOfParallelism
要退出循环,可以使用while True:
choice=int(input("Enter choice (0 to exit):"))
if choice == 1:
pass # do something
elif choice == 2:
pass # do something else
elif choice == 0:
break
else:
print("Invalid choice, please enter again")
print("Thanks")
,它在循环后执行代码。如上所述,使用break
结束功能。有所不同
如果您正在return
函数内部运行此循环,则无需再次实际调用菜单函数。这就是while循环的重点
答案 1 :(得分:0)
通过定义功能,我们可以轻松执行此任务,而无需重复代码。 下面的代码调用函数inputchoice(),然后inputchoice()将检查用户输入的值,如果该值无效,则inputchoice将自行调用,然后过程继续进行,直到用户输入正确的输入为止。
def inputchoice():
choice=int(input("Enter choice: "))
if (choice=="" or (choice!=0 and choice!=1 and choice!=2)):
print("Invalid choice!")
choice = inputchoice()
return choice
def menu():
choice = inputchoice()
print(choice)
if choice ==1:
valid=True
print("Do something if Valid = True")
elif choice ==2:
valid=True
print("Do something if Valid = True")
elif choice==0:
valid=True
print("Do something if Valid = True")
menu() #implementing menu function
答案 2 :(得分:0)
我更喜欢用您的函数编写字典,以使代码保持干净。
在此处考虑此代码:
def choice1():
return 'choice1'
def choice2():
return 'choice2'
def defaultchoice():
return 'default'
choicedict = {
'1': choice1,
'2': choice2
}
while True:
choice = input("Enter choice (0 to exit):") # maintain as str to avoid error!
if choice == '0':
break
value = choicedict.get(choice, defaultchoice)()
print(value)
答案 3 :(得分:0)
单个功能代码
def menu():
choice=int(input("Enter choice:"))
if (choice=="" or (choice!=0 and choice!=1 and choice!=2)):
print("Invalid choice, please enter again")
menu()
elif choice ==1:
print("Oh, its working")
menu()
elif choice ==2:
print("Oh, its working")
menu()
elif choice==0:
print("===============================================")
print("Thank you for using Students' Result System")
print("===============================================")
menu()
答案 4 :(得分:0)
嗨,我会使用while循环。从这项任务看来,我们来自同一机构。这就是我使用的代码,希望对您有所帮助。
while True:
user_input = input("Enter choice: ")
if (user_input == "0"):
print("=====================================================")
print("Thank You for using Students' Result System")
print("=====================================================")
break
elif(user_input == "1"):
display_modules_average_scores()
elif(user_input == "2"):
display_modules_top_scorer()
else:
print("Invalid choice, please enter again")