首先说我是stackoverflow中'问问题'的新手,因此,如果我的问题不在正确的类别或其他类似的问题中,我深表歉意。我试图找到一个相关的问题,但不能。我的有点具体,它将为我作为将来编程的榜样。
我要创建的简单程序的流量是:
-
有一个启动数量为0
- 该数字会增加1,直到数字增加了100个数字。
- 程序询问" y/n"如果是,则步骤1和2重复(每次此过程重复时,数字都应在其上添加100个。因此,例如,第二个重复将从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':
我感谢对我的问题的任何回应。谢谢!
我至少看到两个问题:
a。正如许多人在评论中所说的那样,为了正常工作,必须以不同的方式编写if语句,例如:
if inp == 'y' or inp == 'Y'
或这样:
if inp in ('y', 'Y')
从评论中检查这些链接,例如:此帖子
" y"的布尔值始终是正确的,因此永远不会执行其他语句。
b。第二个问题是您的其他陈述。您必须对old_num
进行检查,因为可能还不能创建new_num
(如果它是第一次迭代(。