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

2024-03-29 09:03:52 发布

您现在位置:Python中文网/ 问答频道 /正文

首先要说的是,我对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。事实上,它甚至没有达到第三步。我不明白这段代码是怎么工作的:

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

我很感激对我的问题的任何回应。 谢谢!你知道吗


Tags: or程序numbernewif步骤diff数字
1条回答
网友
1楼 · 发布于 2024-03-29 09:03:52

我至少看到两个问题:

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

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

或者这样:

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

检查注释中的链接,例如:this post

“y”的布尔值始终为True,因此永远不会执行else语句。你知道吗


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

相关问题 更多 >