如何让这段代码回到问题状态的开始?

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只是为了输入用户想要做的事情。