鱼C论坛

 找回密码
 立即注册
查看: 1752|回复: 10

[已解决]从1到55中抽6个不相同的数字,生成列表game55。运算100个不相的gmame55

[复制链接]
发表于 2020-8-28 01:26:52 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 “心悦” 于 2020-8-28 01:26 编辑

程序如下:
import random
game55 = []

for i in range(100):
    while len(game55) < 6:
        game = random.randrange(1,56)
        game55.append(game)
        game55 = list(set(game55))
        game55.sort()   
    print(i,game55)

结果:
0 [3, 8, 18, 22, 45, 49]
1 [3, 8, 18, 22, 45, 49]
2 [3, 8, 18, 22, 45, 49]
3 [3, 8, 18, 22, 45, 49]
4 [3, 8, 18, 22, 45, 49]
5 [3, 8, 18, 22, 45, 49]
直到
97 [3, 8, 18, 22, 45, 49]
98 [3, 8, 18, 22, 45, 49]
99 [3, 8, 18, 22, 45, 49]
错误在哪?请大神出手!非常感谢!
最佳答案
2020-8-28 01:43:40


循环结束忘记初始化 game55 列表,导致 while 循环只执行了一次, game55 列表就已经定型,也就不会在执行 while 循环语句了,在 print 后面加上 game55 = [] 即可

参考代码:
import random
game55 = []

for i in range(100):
    while len(game55) < 6:
        game = random.randrange(1,56)
        game55.append(game)
        game55 = list(set(game55))
        game55.sort()
    print(i,game55)
    game55 = []
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-28 01:43:40 | 显示全部楼层    本楼为最佳答案   


循环结束忘记初始化 game55 列表,导致 while 循环只执行了一次, game55 列表就已经定型,也就不会在执行 while 循环语句了,在 print 后面加上 game55 = [] 即可

参考代码:
import random
game55 = []

for i in range(100):
    while len(game55) < 6:
        game = random.randrange(1,56)
        game55.append(game)
        game55 = list(set(game55))
        game55.sort()
    print(i,game55)
    game55 = []
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 10:27:31 | 显示全部楼层
game55 = []
放进循环里,否则一直就一个列表,就是第一次生成的那个
for i in range(10):
    game55 = []
    while len(game55) < 6:
        game = random.randrange(1,56)
        game55.append(game)
        game55 = list(set(game55))
        game55.sort()
    print(i,game55)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-29 00:12:14 | 显示全部楼层
本帖最后由 “心悦” 于 2020-8-29 00:20 编辑
疾风怪盗 发表于 2020-8-28 10:27
放进循环里,否则一直就一个列表,就是第一次生成的那个


本来设三楼你的为最佳答案的,但02 for i in range(10):这个不对啊!?而且复制代码运行会出错。因为没有01 import random。最好粘上代码后自己运行一次,支持你再接再厉!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 00:16:01 | 显示全部楼层
“心悦” 发表于 2020-8-29 00:12
本来设三楼你的为最佳答案的,但02.for i in range(10):这个不对啊!?

啥意思?什么不对?没看明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-29 00:22:11 | 显示全部楼层
疾风怪盗 发表于 2020-8-29 00:16
啥意思?什么不对?没看明白

[已解决]从1到55中抽6个不相同的数字,生成列表game55。运算100个不相的gmame55 。看标题啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 00:27:29 | 显示全部楼层
“心悦” 发表于 2020-8-29 00:22
[已解决]从1到55中抽6个不相同的数字,生成列表game55。运算100个不相的gmame55 。看标题啊!

。。。。。。。无语。。。。。。。论坛发帖不是要给你做项目,是你代码有问题,出错了,找错误,改代码,找到问题在哪,其他的自己改改不就好了
测试的时候只需要10个数就行了,难道你说要100000个数,我就写100000个数,一遍一遍测试等着运行么。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-29 00:31:41 | 显示全部楼层
         我没有做项目,只是自己想写程序而已,第一次问问题,不知道这个原则!对不起!最佳答案改不了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 00:34:22 | 显示全部楼层
“心悦” 发表于 2020-8-29 00:31
我没有做项目,只是自己想写程序而已,第一次问问题,不知道这个原则!对不起!最佳答案改不了!


这个不算什么原则,你想给谁最佳是你的权利,我也无所谓,但是你的逻辑就有问题,你完全可以不用说什么就给谁设个最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 07:03:27 | 显示全部楼层
game55 = list(set(game55))  请问这句是什么意思?
还有就是这个代码运行后会出现重复的数据,比如1 [1, 1, 7, 8, 37, 48],里面有两个1。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 22:57:11 | 显示全部楼层
你好,请问你输入的代码是怎么样的?
>>> a = [1,1,2,2,3,3,4,6,7,9]       #列表a
>>> b = set(a)         #b以列表a生成是集合,里面不能包含重复的元素集合去重
>>> c = list(b)          #以b集合,生成新的列表C
>>> print(c)
[1, 2, 3, 4, 6, 7, 9]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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