想要随机出5个不同花色和数字的扑克牌该怎么做?
我想要让程序随机发出五张不同花色和数字的牌(就算偶尔有一样的也没关系),可是做出来发现5张永远都是一样的。
import random
suites = ["Hearts", "Diamonds", "Spades", "Clubs"]
cardFaces = ["Ace", 2,3,4,5,6,7,8,9,10,"Jack","Queen","King"]
cardFace = random.choice( cardFaces )
suite = random.choice( suites )
pickACard =[str(cardFace) +" of "+ str(suite)]
hand = []
for i in range(5): # do the body five times
card = pickACard
hand.append(card)
print(hand)
运行结果:
[['Queen of Clubs'], ['Queen of Clubs'], ['Queen of Clubs'], ['Queen of Clubs'], ['Queen of Clubs']]
Process finished with exit code 0
请问我是不是漏掉了什么部分?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
难道原因不是只随机了一次吗?循环5次但只随机了一次,取到的当前是一样的
执行for的之前random.choice已经把结果随机出来了,for循环添加的当然都是相同的。
你可以把random.choice放在for里面。
random.seed(time.time())
加上随机数种子
PS. 某年年会我们公司的抽奖程序没加随机数,写代码的程序员被叫到台上当场code review 。。。
@dodopy 一下就GET到错误点了.