0

我无法让它真正重复while循环。我试过让它注册一个真值,或者让它继续或跳出循环。但没有任何效果。

xvalue = int(input("Enter a test value to test if it works: "))

while xvalue >= Limit:
    print("\a\a\a")
else:
    continue
    xvalue = int(input("Updating Value: "))

有人可以提出一些建议吗?

我也写了它,所以它说:

else:
     return True 

但这不起作用。(我得到一个错误)我只需要它不断重复while循环,直到它在第一个条件下变为真。然后响起。

4

3 回答 3

3

我并不完全遵循您的代码的意图。我认为您想要以下内容:

while True:
   xvalue = int(input("Enter a value: "))
   if xvalue < Limit:
      break
   print("\a\a\a")
于 2012-12-06T18:27:56.233 回答
1

您的代码存在很多问题,但这里有一些大问题。

首先,elseinwhile...else并不意味着你认为它做了什么。这不像在if...else. 在中,如果您的语句变为-- 请注意,如果您退出循环或出现错误,则执行while...elseelse块。在您的代码中,该块将在何时执行,因为这与您的布尔表达式相反。whileFalsebreakelsexvalue < Limitwhile

其次,因为else块是在循环之后continue执行的,所以放在那里没有任何意义,因为不再有任何循环可以迭代。不仅如此,即使有一个continue循环继续,你之前卡住的事实xvalue = int(input...意味着循环将在用户有机会输入更新的值之前重新启动。 您需要在重新分配continue 之后放置,到那时,根本没有必要放置continue

所以基本上,你要找的是:

xvalue = int(input("Enter a test value to see if it works: "))

while xvalue >= Limit:
    print ("\a\a\a")
    xvalue = int(input("Please try another value: "))

OP评论后更新:

xvalue = int(input("Enter a test value to see if it works: "))

while xvalue < Limit:                                     # Repeats until user gives a value above limit
    xvalue = int(input("Please try another value: "))
else:
    while True:                                           # Causes bell to ring infinitely
        print ("\a\a\a")
于 2012-12-06T18:39:00.453 回答
0

有人可以建议我写的东西,让它说: else: return True 但这不起作用。我只需要它不断重复while循环,直到它在第一个条件下变为真。然后响起。

您可以执行以下操作:

Value = False

while Value == False:
    #code to do while looping

#code to do after looping

或者:

Value = False

While 1:
   #code for inside the loop
   if Value == True
       break

此外,您的问题描述得不够充分,所以如果我不明白,请不要怪我

于 2012-12-06T18:34:06.417 回答