我对编程有点陌生,我一直在尝试使用 Python,但是当我尝试制作一个随机名称选择器从列表中选择一个随机名称时,我总是最终得到相同的错误。我也尝试删除代码选择的获胜者并将新名称添加到“获胜者”列表中,但似乎不起作用。这是我现在拥有的短代码。

winners = ["Wane", "Trevor", "Franklin", "Martoz"]
winner = random.choice(winners)
winners.pop(winner)
winners.append("Michael")
print(winners)

最佳答案

如果为方法 list.pop 提供参数,则该参数必须是整数类型并表示列表中元素的索引。

因为你的电话看起来像

winners.pop(winner)
winner 是一个字符串,你会得到提到的错误



另外,我不确定您真正想要做什么,但您可能需要有两个列表 participantswinners 。以下示例从列表中抽取两名获胜者:
import random

participants = ["Wane", "Trevor", "Franklin", "Martoz"]
winners = []

print("Participants before:", participants)
print("Winners before:", winners)

winner = random.choice(participants)
winners.append(winner)
participants.remove(winner)

winner = random.choice(participants)
winners.append(winner)
participants.remove(winner)

print("Participants after:", participants)
print("Winners after:", winners)

哪个打印:
Participants before: ['Wane', 'Trevor', 'Franklin', 'Martoz']
Winners before: []
Participants after: ['Wane', 'Trevor']
Winners after: ['Martoz', 'Franklin']

关于python - 错误 : TypeError: 'str' object cannot be interpreted as an integer while trying to pick a random winner (Python),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53951946/

10-11 19:37
查看更多