Python随机生成器

时间:2017-10-25 18:34:19

标签: python random generator

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

  1. 第一个发电机,每个2-14代表一张卡。数字11,12,13和14表示杰克,女王,国王和王子。分别是Ace。
  2. 产生数字15-18以表示例如15,16,17,18的卡的类型的第二随机发生器将表示心,黑桃,钻石&俱乐部分别。
  3. 生成器的结果应该是第一个生成器生成数字8,第二个生成器生成数字17.然后我希望它将其翻译为:" 8钻石"。

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

    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)
    

2 个答案:

答案 0 :(得分:2)

使用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'混合使用。

答案 1 :(得分:0)

另一种解决方案:

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])