首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python随机生成器

Python随机生成器
EN

Stack Overflow用户
提问于 2017-10-25 18:34:18
回答 2查看 731关注 0票数 1

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

  1. 第一个发生器,在2-14之间,每个数字代表一张卡片.第11、12、13和14号分别代表杰克、王后、国王和艾斯。
  2. 第二个随机发生器产生的数字15-18来代表卡片的类型,例如15,16,17,18分别代表红心,黑桃,钻石和俱乐部。

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

到目前为止,我的代码如下:

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2017-10-25 18:46:59

使用random.choice()字符串格式尝试以下操作

代码语言:javascript
复制
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'混合。

票数 2
EN

Stack Overflow用户

发布于 2017-10-25 19:00:32

另一种解决办法是:

代码语言:javascript
复制
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])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46939742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档