【问题标题】:Python Random GeneratorPython 随机生成器
【发布时间】:2017-10-25 18:34:18
【问题描述】:

基本上我需要一些快速帮助。我正在制作一个程序,我使用两个随机生成器来生成数字。

  1. 第一个生成器,2-14 之间的每个数字代表一张卡片。数字 11、12、13 和 14 分别代表 Jack、Queen、King 和 Ace。
  2. 第二个随机生成器生成数字 15-18 来表示卡片的类型,例如 15、16、17、18 将分别代表红心、黑桃、方块和梅花。

生成器的结果应该是第一个生成器生成数字 8,第二个生成器生成数字 17。然后我希望它将其翻译为:“8 of Diamonds”。

到目前为止,这是我的代码:

import random

Player1 = input("Enter Name Of Player1")
Card = random.randint(2, 14)
Suit = random.randint(15,18)
if Card == 11:
    print("Jack")
elif Card == 12:
    print("Queen")
elif Card == 13:
    print("King")
elif Card == 14:
    print("Ace")
else:
    print(Card)

【问题讨论】:

  • 为什么15-18适合西装?为什么不只是 0-3 以便您可以在列表中查找它们?

标签: python random generator


【解决方案1】:

尝试以下操作,使用random.choice()string formats

import random

suits = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
numbers = [
    '2', '3', '4', '5', '6', '7', '8', '9', '10',
    'Jack', 'Queen', 'King', 'Ace']

print('{number} of {suit}'.format(
    number=random.choice(numbers),
    suit=random.choice(suits)))

>> Ace of Hearts

您可以使用一些 range 函数来生成数字,但在这种特殊情况下,您可能可以通过硬编码来摆脱困境。请注意,字符串也可能是更好的选择,因为您将其与 'Jack', 'Queen', 'King', and 'Ace' 混合使用。

【讨论】:

  • NumPy 是一个非常重量级的依赖,它不需要它:std.库。 random 模块有一个choice 函数。
【解决方案2】:

另一种解决方案:

import random

Player1 = raw_input("Enter Name Of Player1")
suits = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
numbers = {2:'2', 3:'3', 4:'4', 5:'5', 6:'6', 7:'7', 8:'8', 9:'9', 10:'10', 11:'Jack', 12:'Queen', 13:'King', 14:'Ace'}
Card = random.randint(2, 14)
Suit = random.randint(0, 3)
print '{0} of {1}'.format(numbers[Card], suits[Suit])

【讨论】:

    猜你喜欢
    • 2013-09-20
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多