连续数字递增,直到用户输入 == 'specific input' Python



首先说我是stackoverflow中'问问题'的新手,因此,如果我的问题不在正确的类别或其他类似的问题中,我深表歉意。我试图找到一个相关的问题,但不能。我的有点具体,它将为我作为将来编程的榜样。

我要创建的简单程序的流量是:

  • 有一个启动数量为0

    1. 该数字会增加1,直到数字增加了100个数字。
    2. 程序询问" y/n"如果是,则步骤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':

我感谢对我的问题的任何回应。谢谢!

我至少看到两个问题:

a。正如许多人在评论中所说的那样,为了正常工作,必须以不同的方式编写if语句,例如:

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

或这样:

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

从评论中检查这些链接,例如:此帖子

" y"的布尔值始终是正确的,因此永远不会执行其他语句。


b。第二个问题是您的其他陈述。您必须对old_num进行检查,因为可能还不能创建new_num(如果它是第一次迭代(。

最新更新