如何让这段代码回到问题状态的开始?
How to make this code go back the start of the problemstate?
我正在尝试创建一个程序,您可以在其中选择 3 个选项。复习、作弊 sheet 和数学方程式,但不要担心这些。有什么方法可以在保存用户在“inputr”中写入的内容时将“def r()”循环到“problemstate()”以开始。
本质上,我试图在输入器中输入内容,保存用户在其中输入的任何内容,然后输入一个字母或其他内容以返回开头。并一遍又一遍地重复这个过程。无需终止。这是代码的link,谢谢。
https://trinket.io/python3/6e76fbb2f1
Code image incase you can't see the trinket.
你已经很接近了,只是 def 正在做的事情有点偏差。您想要的是首先定义 4 个函数(problemstate()
、r()
、c()
和 m()
)。然后有一个看起来像这样的循环:
while (some_condition):
ps = problemstate()
if ps== 'R':
r()
# etc...
所以让你的problemstate()
函数return输入。或者甚至更好,您根本不需要 problemstate()
:
while (some_condition):
print("What would you like to use this program for?")
print("(R)eviewing, (C)heat sheet, or (M)ath?")
ps = input("Please select the letter appropriately? ")
if ps == 'R':
r()
# etc...
你只需要添加一个无限循环,有很多不同的方法可以做到这一点(在我的例子中我使用 while True
)和使用 continue
重复这个过程。
def problemstate():
while True:
# HERE: It is possible add a function to clean the console if you want
print("What would you like to use this program for?")
print("(R)eviewing, (C)heat sheet, or (M)ath?")
ps = input("Please select the letter appropriately? ")
if ps not in ["R", "C", "M"]:
# Perhaps show an error message and not continue
continue
elif ps == "R":
# function of r
elif ps == "C":
# ...
# End of loop
input_learning = input("Type all of the learning and knowledge you would like to use: ")
inputr = input("\nType 'p' if you want to refer back to the start and pick a different sheet or any other letter to exit: ")
if inputr == 'p':
continue
else:
raise SystemExit # break
我添加了一些条件来查看所选选项,即使您在 ps
无效时也会显示消息错误。
此外,我添加了一个新变量来保存学到的知识(例如,您可以将其写在文件中)并且inputr
只是为了输入用户想要做的事情。
我正在尝试创建一个程序,您可以在其中选择 3 个选项。复习、作弊 sheet 和数学方程式,但不要担心这些。有什么方法可以在保存用户在“inputr”中写入的内容时将“def r()”循环到“problemstate()”以开始。 本质上,我试图在输入器中输入内容,保存用户在其中输入的任何内容,然后输入一个字母或其他内容以返回开头。并一遍又一遍地重复这个过程。无需终止。这是代码的link,谢谢。 https://trinket.io/python3/6e76fbb2f1 Code image incase you can't see the trinket.
你已经很接近了,只是 def 正在做的事情有点偏差。您想要的是首先定义 4 个函数(problemstate()
、r()
、c()
和 m()
)。然后有一个看起来像这样的循环:
while (some_condition):
ps = problemstate()
if ps== 'R':
r()
# etc...
所以让你的problemstate()
函数return输入。或者甚至更好,您根本不需要 problemstate()
:
while (some_condition):
print("What would you like to use this program for?")
print("(R)eviewing, (C)heat sheet, or (M)ath?")
ps = input("Please select the letter appropriately? ")
if ps == 'R':
r()
# etc...
你只需要添加一个无限循环,有很多不同的方法可以做到这一点(在我的例子中我使用 while True
)和使用 continue
重复这个过程。
def problemstate():
while True:
# HERE: It is possible add a function to clean the console if you want
print("What would you like to use this program for?")
print("(R)eviewing, (C)heat sheet, or (M)ath?")
ps = input("Please select the letter appropriately? ")
if ps not in ["R", "C", "M"]:
# Perhaps show an error message and not continue
continue
elif ps == "R":
# function of r
elif ps == "C":
# ...
# End of loop
input_learning = input("Type all of the learning and knowledge you would like to use: ")
inputr = input("\nType 'p' if you want to refer back to the start and pick a different sheet or any other letter to exit: ")
if inputr == 'p':
continue
else:
raise SystemExit # break
我添加了一些条件来查看所选选项,即使您在 ps
无效时也会显示消息错误。
此外,我添加了一个新变量来保存学到的知识(例如,您可以将其写在文件中)并且inputr
只是为了输入用户想要做的事情。