Python random.choice()接受2个位置参数,但给出了3个
当我键入此项时:Python random.choice()接受2个位置参数,但给出了3个,python,python-3.x,random,Python,Python 3.x,Random,当我键入此项时: rand_num = random.choice(1, 101) 它表明: TypeError: choice() takes 2 positional arguments but 3 were given 这些都是放在函数中的,我不明白为什么它会这样说。我想你应该做: rand_num = random.choice(range(1,101)) 表示必须将一个序列传递给choice()(在本例中为一个范围)。我认为您需要执行以下操作: rand_num = random
rand_num = random.choice(1, 101)
它表明:
TypeError: choice() takes 2 positional arguments but 3 were given
这些都是放在函数中的,我不明白为什么它会这样说。我想你应该做:
rand_num = random.choice(range(1,101))
表示必须将一个序列传递给
choice()
(在本例中为一个范围)。我认为您需要执行以下操作:
rand_num = random.choice(range(1,101))
表示必须将序列传递给choice()
(在本例中为范围)。的签名为:
向其传递一个序列,例如:
>>> random.choice([1, 2, 6, 8, 9])
2
范围
对象也有效,如这里的另一个答案所示
从逻辑上讲,您可能会问,为什么Python告诉您choice()
接受两个位置参数,而不是一个(seq
)?这是因为choice()
是隐式的,因为它是一个实例方法。但出于函数调用方的意图和目的,您只需传递一个参数,即序列,如列表或元组。的签名是:
向其传递一个序列,例如:
>>> random.choice([1, 2, 6, 8, 9])
2
范围
对象也有效,如这里的另一个答案所示
从逻辑上讲,您可能会问,为什么Python告诉您
choice()
接受两个位置参数,而不是一个(seq
)?这是因为choice()
是隐式的,因为它是一个实例方法。但是,出于作为函数调用方的意图和目的,我们希望您只传递一个参数,这是一个序列,例如列表或元组。可能会有一个奇怪的错误,即当您只输入2时,给出了3个参数,但您可能不知道该方法实际上是一个对象的绑定方法
因此,当错误显示为,但给出了3个,它们包括您没有传入的self
参数。下面是一个更清晰的错误场景演示:
obj = random.Random()
rand_num = random.Random.choice(obj, 1, 101)
输出:
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
random.Random.choice(obj, 1, 101)
TypeError: choice() takes 2 positional arguments but 3 were given
但更实用的方法是使用以下方法:
这可能看起来很奇怪,错误是当你只输入2时,给出了3个参数,但是你可能不知道这个方法实际上是一个对象的绑定方法
因此,当错误显示为,但给出了3个,它们包括您没有传入的self
参数。下面是一个更清晰的错误场景演示:
obj = random.Random()
rand_num = random.Random.choice(obj, 1, 101)
输出:
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
random.Random.choice(obj, 1, 101)
TypeError: choice() takes 2 positional arguments but 3 were given
但更实用的方法是使用以下方法:
选择从给定的直接项中进行随机选择,如[1,2,3,4,5….]
看看你需要什么:
如果您从列表中随机选择了一些内容,则:
rand_num=random.choice([1,2,3,…,101])
如果您需要一个从1到101的随机数,这样一个选择从一个给定的直接中进行随机选择,例如[1,2,3,4,5….]
看看你需要什么:
如果您从列表中随机选择了一些内容,则:
rand_num=random.choice([1,2,3,…,101])
如果你需要一个从1到101的随机数,这样a看起来像你要找的,看起来像你要找的