首先要说我是新来的问题'在stackoverflow中,如果我的问题不在正确的类别或已经提出其他类似的问题,我很抱歉。我试图找到一个相关的问题,但我不能。我有点具体,可以作为未来编程的一个例子。
我想要创建的简单程序的流程是:
具有例如0的起始编号
这是我的代码:
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':
我感谢对我的问题的任何回应。 谢谢!
答案 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
(如果它是第一次迭代)。