鱼C论坛

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

[已解决]007讲课后作业

[复制链接]
发表于 2022-1-25 18:37:47 | 显示全部楼层 |阅读模式

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

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

x
请问一下动动手的第二题:
请自学 random 文档(传送门),编写一个双色球的开奖模拟程序。“双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成。红色球号码从 1~33 中选择(由于每次抽取后不放回,所以不会出现重复数字);蓝色球号码从 1~16 中选择。

我敲的:
import random
num1=random.sample(range(1, 34), k=6)
num2=random.sample(range(1, 17), k=1)
print("开奖结果是:",num1)
print("特别号码是:",num2)
为什么就运行不了啊?
答案:
import random

red = random.sample(range(1, 34), 6)
blue = random.randint(1, 16)

print("开奖结果是:", *red)
print("特别号码是:", blue)

和答案不是就是变量命名不太一样的感觉么?
最佳答案
2022-2-6 10:56:59

可以看看下面这篇文章 有助于你的理解:

https://fishc.com.cn/forum.php?m ... 864&pid=5078775

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-25 18:44:51 | 显示全部楼层
  1. red = random.sample(range(1, 34), 6)
  2. blue = random.randint(1, 16)
复制代码
  1. num1=random.sample(range(1, 34), k=6)
  2. num2=random.sample(range(1, 17), k=1)
复制代码

emmm,你用的是两个sample函数,而答案是一个sample一个randint
sample 返回的是一个序列,答案中对序列进行解包操作,即 *red,而你是直接num1
randint返回的是一个整型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-25 22:24:17 | 显示全部楼层
大马强 发表于 2022-1-25 18:44
emmm,你用的是两个sample函数,而答案是一个sample一个randint
sample 返回的是一个序列,答案中对序 ...

你好,所以用rand.sample的话print的话必须要在变量前加*么,就是说解包?这个操作没有听过呢...
像我写的random.sample(range(1, 17), k=1)这种只返回一个随机数的也要加*号么?它只有一个不是一串啊,和random.randint(1, 16)不一样么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 22:32:11 | 显示全部楼层
random.sample(range(1, 17), k=1) 应该返回的是一个序列,也就是元组或列表
random.randint(1, 16)返回的是个整型
解包 * 小甲鱼后面应该又讲,你就先记着*能将列表的 []和元组的()去掉就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2022-2-6 10:56:59 | 显示全部楼层    本楼为最佳答案   

可以看看下面这篇文章 有助于你的理解:

https://fishc.com.cn/forum.php?m ... 864&pid=5078775

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

使用道具 举报

 楼主| 发表于 2022-2-25 14:02:37 | 显示全部楼层
Twilight6 发表于 2022-2-6 10:56
可以看看下面这篇文章 有助于你的理解:

https://fishc.com.cn/forum.php?mod=redirect&goto=findpost ...

不好意思回复晚了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-25 14:05:43 | 显示全部楼层
大马强 发表于 2022-1-25 22:32
random.sample(range(1, 17), k=1) 应该返回的是一个序列,也就是元组或列表
random.randint(1, 16)返回的 ...

不好意思回复晚了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-25 14:18:18 | 显示全部楼层
我看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 07:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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