【问题标题】:Can't use randint() directly in the .format() string?不能在 .format() 字符串中直接使用 randint() 吗?
【发布时间】:2019-04-27 12:55:57
【问题描述】:

这里是初学者。

我正在制作一个短游戏,随机选择两名玩家之一开始游戏:

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 语句还有哪些其他选项?

【问题讨论】:

    标签: python random


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢您的帮助。有什么理由不能在花括号内使用 randint?
    • 你不能通过将代码放在这样的字符串中来执行python中的代码。
    【解决方案2】:

    字符串格式方法的工作原理并不完全如此,您传入的数字(如{0}{1})充当您在.format(0th item here, 1st item here...etc.) 调用中传入字符串的内容的索引。因此,如果您希望显示随机整数,您应该执行以下操作:

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

    【讨论】:

      猜你喜欢
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 2022-10-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多