三个草莓 发表于 2025-6-3 17:52:12

双色球代码问题出在哪

第七讲作业:
请自学 random 文档(传送门),编写一个双色球的开奖模拟程序。
不知道双色球怎么玩的鱼油可以看下科普:
“双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成。红色球号码从 1~33 中选择(由于每次抽取后不放回,所以不会出现重复数字);蓝色球号码从 1~16 中选择。



我写的代码:
import random

red = random.randint(1,33)
blue = random.randint(1,16)
random.sample(red,k = 6)
random.sample(blue,k = 1)

print(red)
print(blue)

FishC 发表于 2025-6-3 17:52:55

你的代码存在两个主要问题:

1. random.sample() 使用错误:
   random.sample() 需要从序列(如列表、元组)中抽样,而你的 red 和 blue 是整数,会导致报错。

2. 未保存抽奖结果:
   random.sample() 会返回新列表,但你没有用变量接收结果,导致打印的仍是原始随机数。

修正方案:
(1)用 range(1,34) 创建红色球序列
(2)用 random.sample() 直接抽取6个红球
(3)单独生成蓝球

正确代码:

import random

# 生成6个不重复的红球 (1-33)
red_balls = random.sample(range(1, 34), k=6)
# 生成1个蓝球 (1-16)
blue_ball = random.randint(1, 16)

# 红球排序后输出(双色球惯例)
print("红球:", sorted(red_balls))
print("蓝球:", blue_ball)


注意:

[*]红球范围是 range(1,34)(包含1,不包含34)
[*]蓝球用 random.randint(1,16) 更简洁
[*]sorted() 使红球按从小到大排列(符合开奖惯例)


示例输出:
红球:
蓝球: 7

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

player-none 发表于 2025-6-3 20:53:30

import random

red=random.sample(range (1,33),k = 6)
blue=random.sample(range (1,16),k = 1)

print(red)
print(blue)
sample需要一个序列(列表 元祖 range …)告诉他从哪儿取,randint给的是一个数。

非ai求最佳

三个草莓 发表于 2025-6-4 12:08:04

player-none 发表于 2025-6-3 20:53
import random

red=random.sample(range (1,33),k = 6)


支持支持

三个草莓 发表于 2025-6-4 12:08:26

player-none 发表于 2025-6-3 20:53
import random

red=random.sample(range (1,33),k = 6)


感觉哪都有你啊哈哈哈哈,谢谢啦

player-none 发表于 2025-6-4 18:46:49

三个草莓 发表于 2025-6-4 12:08
感觉哪都有你啊哈哈哈哈,谢谢啦

努力抢最佳(

三个草莓 发表于 2025-6-5 21:57:08

player-none 发表于 2025-6-4 18:46
努力抢最佳(

我一直不懂这个最佳有什么好处啊?

player-none 发表于 2025-6-5 22:44:35

三个草莓 发表于 2025-6-5 21:57
我一直不懂这个最佳有什么好处啊?

https://fishc.com.cn/thread-215819-1-1.html
页: [1]
查看完整版本: 双色球代码问题出在哪