连续数字增量,直到用户输入=='特定输入'蟒蛇

时间:2018-04-04 11:08:51

标签: python input iteration break

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

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

  • 具有例如0的起始编号

    1. 数字增加1,直到数字增加了100个数字,此时..
    2. 节目要求" Y / N"如果是,则重复步骤1和2(每次重复此过程时,应自行添加另外100个。例如,如果没有步骤3,则第二次重复将从100开始而不是从0开始
    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':

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

1 个答案:

答案 0 :(得分:0)

我至少看到两个问题:

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

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

或者这样:

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

从评论中检查这些链接,例如:this post

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

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

相关问题