Kevin_HKH 发表于 2023-5-29 00:48:02

为什么random.setstate()会报错

本帖最后由 Kevin_HKH 于 2023-5-29 00:49 编辑

写了以下代码:
x = random.getstate()
print(random.randint(1,100))
print(random.randint(1,100))
print(random.randint(1,100))

random.setstate(x)
print(random.randint(1,100))
print(random.randint(1,100))
print(random.randint(1,100))
在运行random.setstate(x) 时报错:
TypeError                              
Cell In, line 8
      5 print(random.randint(1,100))
      6 print(random.randint(1,100))
----> 8 random.setstate(x)
      9 print(random.randint(1,100))
   10 print(random.randint(1,100))

TypeError: 'tuple' object is not callable

按照教程来写,请问为什么会报错?

歌者文明清理员 发表于 2023-5-29 00:48:29

哪个教程?

Kevin_HKH 发表于 2023-5-29 00:51:10

歌者文明清理员 发表于 2023-5-29 00:48
哪个教程?

零基础入门学习Python》最新版,有个解释random为什么是伪随机数,如何复现随机数的内容,按视频内容尝试但报错

isdkz 发表于 2023-5-29 01:11:06

Kevin_HKH 发表于 2023-5-29 00:51
零基础入门学习Python》最新版,有个解释random为什么是伪随机数,如何复现随机数的内容,按视频内容尝试 ...

最好给课程链接,你这样说别人也不一定能找到

天地丶良心 发表于 2023-5-30 09:37:10

代码中出现了一个错误:random.getstate() 返回的是一个元组,而 random.setstate() 要求参数是一个可调用对象。因此,在调用 random.setstate() 时会出现“'tuple' object is not callable”错误。

解决方法是将获取的随机状态信息存储到一个变量中,然后在调用 random.setstate() 时将这个变量作为参数传入。修改后的代码如下:

import random
state = random.getstate()
print(random.randint(1,100))
print(random.randint(1,100))
print(random.randint(1,100))
random.setstate(state)
print(random.randint(1,100))
print(random.randint(1,100))
print(random.randint(1,100))

运行以上修改后的代码时,不会再出现“'tuple' object is not callable”错误了。

hongshy 发表于 2023-9-29 22:17:03

主要是因为使用random前没有import吧

安野兔 发表于 2024-8-20 21:05:16

import random
页: [1]
查看完整版本: 为什么random.setstate()会报错