python - 在嵌套 while 循环之间切换

标签 python loops while-loop

我是 Python 新手,我想知道是否可以获得一些帮助。我认为一切正常,除了输出 Guess upper/lower 提示,然后打印出 Enter a number: 而不是要求第二个 Guess upper/lower 提示。我希望它说出第二个猜测提示,而不是输入数字:我希望这已经解释得足够好了。如果没有,我会更新它。

from random import randint
N=randint(0,100)
i=1000
a=0
n=int(N)
while i!=n:
  I=int(input('Enter a number: '))
  i=int(I)
  a=a+1
  while i>n:
    i=int(input('Guess lower: '))
    a=a+1
  while i<n:
    i=int(input('Guess Higher: '))
    a=a+1
  while i==n:
    print('Correct')
    print('You took',a,'attempts.')
    break

最佳答案

您想要的行为不是 while 循环的工作。 While 循环用于迭代执行一段代码,直到满足条件。虽然严格来说,这对于您的代码来说是正确的,但您实现的嵌套和代码的整体结构是不正确的。

如果使用 ifelse 语句会更好。它们用于决定某件事,并根据它是真是假来执行一段代码。如果你仔细想想,这正是你试图解决的问题的本质。代码看起来像这样:

from random import randint
N=randint(0,100)
i=1000
a=0
n=int(N)

#Ask for initial input
i=int(input('Enter a number: '))
a=a+1

#Start loop that loops until i == n
while i!=n:
  if i>n:
    i=int(input('Guess lower: '))
    a=a+1
  elif i<n:
    i=int(input('Guess Higher: '))
    a=a+1
  else:
    print('Correct')
    print('You took',a,'attempts.')

如果您对 elif 感到困惑,它是一个在 if 语句不为 true 并且 elif 后面的条件为 true 时执行的语句。你可以有多个 elif。查看任何初学者教程以了解更多信息。

关于python - 在嵌套 while 循环之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43579077/

相关文章:

python - numpy 数组的列连续清零

Java 双重相等

python - 如何显示直接从Figure类创建的matplotlib图形?

python sqlite3 不会执行连接,但单独的 sqlite3 会

c - 在 C 中迭代多维 Lua 表

c - 单词搜索字符串操作

c++ - C++ 的其他循环选项

java - 带有嵌套 if/else 语句的 While 循环

python - 如何在不阻止python执行的情况下在python中启动可执行文件

vb.net - asp.net vb 网站循环遍历数据库行