def odd(max):
n=1
count=0
while True:
yield n
n+=2
count=count+1
if count == max:
break
raise StopIteration
add=input('请输入你要输入得奇数得个数')
print(add)
oddnum = odd(add)
for num in oddnum:
print(num)
我通过定义一个输入来获得我想要的奇数的个数,但是在输出的过程中,终端打印了很多的数据,随后我把迭代器的部分注释掉,直接显示输入数据add,显示的仍然是我输入的数。比如我输入一个数5.根据odd方法应该生成1 3 5 7 9 5个奇数,但是终端打印却不停生成新的奇数。这又不符合我的输入,想稳一下为什么
因为你的while循环中的等式不成立,无法退出,input输入是字符串型的,所以无法成立等式,将其改为如下即可
def odd(max):
n = 1
count = 0
while True:
yield n
n += 2
count = count + 1
if count == int(max):
break
add = input('请输入你要输入得奇数得个数')
print(add)
oddnum = odd(add)
for num in oddnum:
print(num)