11tadpole 发表于 2020-4-3 21:42:04

python008讲用random.seed为什么会报错

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函数转换为整数,为什么会报错呢?

Hello. 发表于 2020-4-3 21:46:47

可能是版本不兼容

或者输入的文件夹里只有一个{:10_277:}文档吧...

txxcat 发表于 2020-4-3 21:50:41

本帖最后由 txxcat 于 2020-4-3 22:01 编辑

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

xiangjianshinan 发表于 2020-4-3 23:11:40

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

学习啦,很经典!!!

zltzlt 发表于 2020-4-4 12:52:52

random.seed() 没有返回值,你应该要用 random.randint() 生成 0 ~ 1 的整数:

import random

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

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

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

    i = i + 1

11tadpole 发表于 2020-4-6 15:00:43

谢谢大家,我明白了

qunimade8 发表于 2020-4-6 15:17:20

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

写的有问题
页: [1]
查看完整版本: python008讲用random.seed为什么会报错