所以,我刚刚开始编写Python程序,我想制作一个非常简单的脚本,它会说像#34; Gabe-你好,我的名字是Gabe(只是句子的一个例子&#34) ; +" Jerry-你好Gabe,我是Jerry"或者" Gabe-Goodbye,Jerry" +" Jerry- Goodbye,Gabe"。这里&#39几乎是我写的。
answers1 = [
"James-Hello, my name is James!"
]
answers2 = [
"Jerry-Hello James, my name is Jerry!"
]
answers3 = [
"Gabe-Goodbye, Samuel."
]
answers4 = [
"Samuel-Goodbye, Gabe"
]
Jack1 = (answers1 + answers2)
Jack2 = (answers3 + answers4)
Jacks = ([Jack1,Jack2])
import random
for x in range(2):
a = random.randint(0,2)
print (random.sample([Jacks, a]))
我非常确定这是一个非常简单的解决办法,但是因为我刚开始使用Python(比如,就在2-3天前),我不太清楚问题是什么。这是我的错误消息
Traceback (most recent call last):
File "C:/Users/Owner/Documents/Test Python 3.py", line 19, in <module>
print (random.sample([Jacks, a]))
TypeError: sample() missing 1 required positional argument: 'k'
如果有人能帮助我,我会非常感激!除此之外,我将寻找可能与解决这个问题相关的方法。
答案 0 :(得分:0)
问题是sample
需要一个参数k
来表示您想要拍摄的随机样本数量。但是在这种情况下看起来你不需要sample
,因为你已经有了随机整数。请注意,该整数应在[0,1]
范围内,因为列表Jack
只有两个元素。
a = random.randint(0,1)
print (Jacks[a])
或与sample
相同的行为,请参阅here以获取解释。
print (random.sample(Jacks,1))
希望这有帮助!
答案 1 :(得分:0)
random.sample([Jacks, a])
这个sample方法看起来应该是
random.sample(Jacks, a)
然而,我是一致的你也不知道列表是如何工作的。你能解释一下为什么使用字符串列表然后在其中添加值?我在这里失去你。
如果您要选择一对或多个字符串,请使用Florian描述的方法(按index
值请求数据。)
答案 2 :(得分:-2)
k参数告诉random.sample函数你需要多少个样本,你应该写:
print (random.sample([Jacks, a], 3))
表示您需要列表中的3个样本。输出将类似于:
[1, jacks, 0]