鱼C论坛

 找回密码
 立即注册
查看: 993|回复: 7

python求助,急急急:TypeError: 'NoneType' object is not iterable

[复制链接]
发表于 2020-5-6 22:40:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目是下面这个,我写的代码和 报错都在下边,红色的代码是有问题的,但是我不知道怎么改,希望大佬们能帮下忙

4. 彩票 双色球:
红球:7个,1 -- 33 之间的整数   不能重复
蓝球:1个,1 -- 17 之间的整数
(1) 随机产生一注彩票[7个红球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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 23:04:55 | 显示全部楼层
remove方法没返回值
所以list03就是none对象
不能for循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 23:28:28 | 显示全部楼层
问题就是楼上说的那个,remove没有返回,你这个赋值语句错了,改的话就用pop方法就行,看你写的代码lottery_blue正好在列表尾
修改代码
list03 = list02.pop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-7 07:52:37 | 显示全部楼层
_荟桐_ 发表于 2020-5-6 23:04
remove方法没返回值
所以list03就是none对象
不能for循环

非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-7 07:53:33 | 显示全部楼层
pythonboy123 发表于 2020-5-6 23:28
问题就是楼上说的那个,remove没有返回,你这个赋值语句错了,改的话就用pop方法就行,看你写的代码lottery ...

非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 07:55:09 | 显示全部楼层
list03 = list02.remove(lottery_blue)
list03没有值,list02.remove()后可以直接for循环list02
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 07:55:32 From FishC Mobile | 显示全部楼层
同新手。我认为第一段代码 变量i是没意义的。变量redi不会跟着变化的,除非对它格式化。
第二段用range(1,33)或者是<33。
等一下我上机实验一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 10:13:40 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 00:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表