鱼C论坛

 找回密码
 立即注册
查看: 1945|回复: 6

[已解决]python008讲用random.seed为什么会报错

[复制链接]
发表于 2020-4-3 21:42:04 | 显示全部楼层 |阅读模式

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

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

x
import random

i = 0
counts = int(input("请输入抛硬币的次数:"))

print("开始抛硬币实验:")

while i < counts:
    num = random.seed()
    num = int(num)
    if num % 2:
        print("正面", end = " ")
    else:
        print("反面", end = " ")

    i = i + 1


这个代码无法运行会报错,但我不明白为什么会报错
random.seed()如果里面是空值,就默认是系统时间,然后我再用int函数转换为整数,为什么会报错呢?
最佳答案
2020-4-3 21:50:41
本帖最后由 txxcat 于 2020-4-3 22:01 编辑

random.seed()不是这样用的,这个是方法改变随机数生成器的种子,直接运行就可以了,不能赋值,赋值结果是None,int()当然就报错了。
你需要用的是randint():
  1. import random
  2. i = 0
  3. counts = int(input("请输入抛硬币的次数:"))
  4. print("开始抛硬币实验:")
  5. while i < counts:
  6.     num = random.randint(0,100)
  7.     if num % 2:
  8.         print("正面", end = " ")
  9.     else:
  10.         print("反面", end = " ")
  11.     i += 1
复制代码

再来个精简的:
  1. import random
  2. counts = int(input("请输入抛硬币的次数:"))
  3. print("开始抛硬币实验:")
  4. for i in range(counts):
  5.     print("正面" if random.randint(0,1) else "反面",end=" ")
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-3 21:46:47 | 显示全部楼层
可能是版本不兼容

或者输入的文件夹里只有一个文档吧...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 21:50:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 txxcat 于 2020-4-3 22:01 编辑

random.seed()不是这样用的,这个是方法改变随机数生成器的种子,直接运行就可以了,不能赋值,赋值结果是None,int()当然就报错了。
你需要用的是randint():
  1. import random
  2. i = 0
  3. counts = int(input("请输入抛硬币的次数:"))
  4. print("开始抛硬币实验:")
  5. while i < counts:
  6.     num = random.randint(0,100)
  7.     if num % 2:
  8.         print("正面", end = " ")
  9.     else:
  10.         print("反面", end = " ")
  11.     i += 1
复制代码

再来个精简的:
  1. import random
  2. counts = int(input("请输入抛硬币的次数:"))
  3. print("开始抛硬币实验:")
  4. for i in range(counts):
  5.     print("正面" if random.randint(0,1) else "反面",end=" ")
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 23:11:40 | 显示全部楼层
txxcat 发表于 2020-4-3 21:50
random.seed()不是这样用的,这个是方法改变随机数生成器的种子,直接运行就可以了,不能赋值,赋值结果是N ...

学习啦,很经典!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 12:52:52 | 显示全部楼层
random.seed() 没有返回值,你应该要用 random.randint() 生成 0 ~ 1 的整数:

  1. import random

  2. i = 0
  3. counts = int(input("请输入抛硬币的次数:"))

  4. print("开始抛硬币实验:")

  5. while i < counts:
  6.     num = random.randint(0, 1)
  7.     if num % 2:
  8.         print("正面", end=" ")
  9.     else:
  10.         print("反面", end=" ")

  11.     i = i + 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-6 15:00:43 | 显示全部楼层
谢谢大家,我明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-6 15:17:20 | 显示全部楼层
txxcat 发表于 2020-4-3 21:50
random.seed()不是这样用的,这个是方法改变随机数生成器的种子,直接运行就可以了,不能赋值,赋值结果是N ...

写的有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 08:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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