python求助,急急急:TypeError: 'NoneType' object is not iterable
题目是下面这个,我写的代码和 报错都在下边,红色的代码是有问题的,但是我不知道怎么改,希望大佬们能帮下忙4. 彩票 双色球:
红球:7个,1 -- 33 之间的整数 不能重复
蓝球:1个,1 -- 17 之间的整数
(1) 随机产生一注彩票.
(2) 在控制台中购买一注彩票
提示:
"请输入第1个红球号码:"
"请输入第2个红球号码:"
"号码不在范围内"
"号码已经重复"
"请输入蓝球号码:"
import random
i = 1
list01 = []
while len(list01) < 7 :
redi = random.randint(1,33)
if redi not in list01:
list01.append(redi)
i += 1
blue = random.randint(1,17)
list01.append(blue)
print(list01)
j = 1
list02 = []
while len(list02) <7:
lottery_red0j = int(input("请输入第%d个红球号码:"%(j)))
if 1<=lottery_red0j<=33:
if lottery_red0j not in list02:
list02.append(lottery_red0j)
else:
print("号码已经重复")
j -= 1
else:
print("号码不在范围内")
j += 1
lottery_blue = int(input("请输入蓝球号码:"))
list02.append(lottery_blue)
k = 0
list03 = list02.remove(lottery_blue)
for idex in list03:
if idex in list01:
k += 1
if k == 7 and lottery_blue in list01:
print("中奖了")
else:
print("很遗憾,没中奖")
返回的错误:
Traceback (most recent call last):
File "D:/PycharmProjects/untitled/day01/code01", line 38, in <module>
for idex in list03:
TypeError: 'NoneType' object is not iterable
Process finished with exit code 1 remove方法没返回值
所以list03就是none对象
不能for循环 问题就是楼上说的那个,remove没有返回,你这个赋值语句错了,改的话就用pop方法就行,看你写的代码lottery_blue正好在列表尾
修改代码
list03 = list02.pop() _荟桐_ 发表于 2020-5-6 23:04
remove方法没返回值
所以list03就是none对象
不能for循环
非常感谢 pythonboy123 发表于 2020-5-6 23:28
问题就是楼上说的那个,remove没有返回,你这个赋值语句错了,改的话就用pop方法就行,看你写的代码lottery ...
非常感谢 list03 = list02.remove(lottery_blue)
list03没有值,list02.remove()后可以直接for循环list02 同新手。我认为第一段代码 变量i是没意义的。变量redi不会跟着变化的,除非对它格式化。
第二段用range(1,33)或者是<33。
等一下我上机实验一下 {:7_139:}
页:
[1]