不能在.format()字符串中直接使用randint()?

时间:2018-11-25 20:30:19

标签: python random

在这里填写初学者。

我正在做一个简短的游戏,随机选择两个玩家之一开始游戏:

from random import randint
player1 = input("First player, enter your name: ")
player2 = input("Second player, enter your name: ")

print("{randint(0,1)} will go first".format(name1, name2))

我希望randint()选择player1或player2,但出现TypeError。如果我将0或1放入{}而不是randint(0,1),它将正常工作。为什么不起作用?除了if / elif语句,还有哪些其他选项?

2 个答案:

答案 0 :(得分:1)

这不是字符串格式方法的工作原理,您传递的数字(如{0}{1}用作传递给.format(0th item here, 1st item here...etc.)的字符串的索引。呼叫。因此,如果要显示随机整数,则应执行以下操作:

print("{0} will go first".format(randint(0,1)))

答案 1 :(得分:0)

使用randint(0,1)作为索引来获取玩家名称

players=[player1,player2]    
print("{} will go first".format(players[randint(0,1)])