我试图制作一个简单的脚本,说两个不同的两个短语行(Python)

时间:2018-01-27 08:33:52

标签: python random

所以,我刚刚开始编写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'

如果有人能帮助我,我会非常感激!除此之外,我将寻找可能与解决这个问题相关的方法。

3 个答案:

答案 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]