如果“this”是答案,请返回上一行

时间:2012-12-09 19:23:11

标签: python loops input

我正在学习Python,并且想知道一些事情。我正在写一个小文字冒险游戏,需要帮助: 如果我写,例如,

example = input("Blah blah blah: ")
if example <= 20 and > 10:
    decision = raw_input("Are you sure this is your answer?: ")

我可以编写哪些函数会导致“example = input(”Blah blah blah:“)”再次运行?如果用户拒绝“decision = raw_input(”你确定这是你的答案吗?:“)”。

很抱歉,如果我把你们搞糊涂了。我有点像Python的新手,还有编程。

2 个答案:

答案 0 :(得分:4)

您正在寻找while循环:

decision = "no"
while decision.lower() == "no":
    example = input("Blah blah blah: ")
    if 10 < example <= 20:
        decision = raw_input("Are you sure this is your answer?: ")

循环重复运行代码块,直到条件不再成立。

我们在开始时设定决策以确保它至少运行一次。显然,您可能希望比decision.lower() == "no"做更好的检查。

另请注意编辑条件,因为if example <= 20 and > 10:在语法上没有意义(超过10个?)。您可能想要if example <= 20 and example > 10:,可以将其浓缩为10 < example <= 20

答案 1 :(得分:-1)

您可以使用一个调用自身的函数,直到输入有效:

def test():
   example = input("Blah blah blah: ")
   if example in range(10, 21): # if it is between 10 and 20; second argument is exclusive
      decision = raw_input("Are you sure this is your answer?: ")
      if decision == 'yes' or desicion == 'Yes':
         # code on what to do
      else: test()
   else: # it will keep calling this until the input becomes valid
      print "Invalid input. Try again."
      test()