【问题标题】:continuous number increment until user input == 'specific input' Python [duplicate]连续数字递增,直到用户输入=='特定输入'Python [重复]
【发布时间】:2018-09-13 22:11:45
【问题描述】:

首先要说我是在 stackoverflow 中“提问”的新手,所以如果我的问题不在正确的类别中或已经问过其他类似问题,我深表歉意。我试图找到一个相关的问题,但我找不到。我的有点具体,可以作为我未来编程的一个例子。

我试图创建的简单程序的流程是:

  • 具有例如 0 的起始编号

    1. 数字加 1,直到数字增加 100 个数字为止..
    2. 如果是,程序询问“是/否”,然后重复第 1 步和第 2 步(每次重复此过程时,数字都应在其上再添加 100。例如,第二次重复将从 100 开始,而不是从 0 开始)如果没有第 3 步
    3. 程序打印达到的最大数字

这是我的代码:

def creeper (number, growth):
    while number <= growth:
        print (number)
        number += 1
    return (number)

diff = 100 #represents the limit of each incrementation 
print('lets start')
old_num = creeper(0, diff)
while True:
    inp = str(input('Yy/Nn: '))
    print(inp)
    if inp == 'Y' or 'y':
        new_num = creeper(old_num, diff)
        old_num = new_num
    else:
        print(new_num)
        break
input("Did we get to here? Press enter to exit then: ") 

我特别问的是这个部分:

if inp == 'Y' or 'y':
    new_num = creeper(old_num, diff)
    old_num = new_num
else:
    print(new_num)
    break

似乎 python 正确读取了输入内容,但它没有返回到第 1 步。实际上它甚至没有进入第 3 步。我无法理解这段特定的代码是如何工作的:

if inp == 'Y' or 'y':

感谢您对我的问题的任何答复。 谢谢!

【问题讨论】:

  • @everyone 由于or 'y' 的事情而投票决定将其作为骗子关闭 - 这只是此代码中的一个问题。
  • 如果 inp == 'Y' 或 inp == 'y' 应该是:
  • 如果代码有多个问题,全部修复超出本站范围。我没有问题关闭作为副本来解决最明显的问题。
  • 谢谢!我的问题现在得到了回答 - idk 如何结束这个问题,因为我确信它不再相关。是 if inp == something 或 inp == something 有帮助!

标签: python input iteration break


【解决方案1】:

我发现至少有两个问题:

A.很多人在cmets里说过,为了正常工作,if语句必须写不同,例如:

if inp == 'y' or inp == 'Y'

或者这样:

if inp in ('y', 'Y')

检查来自 cmets 的链接,例如:this post

'y' 的布尔值始终为 True,因此永远不会执行 else 语句。


B.第二个问题在你的 else 语句中。您必须检查old_num,因为new_num 可能尚未创建(如果它是第一次迭代)。

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 2011-12-28
    • 2019-09-26
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多