从键盘输入一个整数作为随机种子
,随机生成一副扑克牌(去掉大小王),循环分给4位牌手,每人5张牌(第1、5、9、13、17张牌给第一个玩家,第2、6、10、14、18给第二个玩家…以此类推)并输出。
4
♦Q ♠10 ♣A ♠9 ♠4 ♣K ♦3 ♣Q ♣4 ♣5 ♥8 ♠A ♦J
♦K ♣2 ♥K ♥J ♥3 ♦7 ♦2 ♣7 ♣6 ♦4 ♠Q ♣10 ♣3
♠8 ♦A ♥A ♦6 ♥9 ♣J ♥Q ♠5 ♠J ♦9 ♦8 ♠2 ♥4
♠6 ♦10 ♣9 ♥2 ♥5 ♥6 ♥10 ♦5 ♠K ♣8 ♥7 ♠7 ♠3
第1个玩家的牌是:♦Q, ♠4, ♣4, ♦J, ♥J
第2个玩家的牌是:♠10, ♣K, ♣5, ♦K, ♥3
第3个玩家的牌是:♣A, ♦3, ♥8, ♣2, ♦7
第4个玩家的牌是:♠9, ♣Q, ♠A, ♥K, ♦2
random.seed()
:获取某种特定生成的随机数seed()
无参数时,每次生成的随机数不同,seed()
有参数时,若参数相同,则每次生成的随机数相同;若参数不同,则生成的随机数也不同import random
ls = [1, 2, 3, 4, 5, 6, 7, 8]
for i in range(8):
random.seed(4) # 试着改变seed()中的数或者注释掉这一行,看看输出的变化
print(random.randint(1, 10)) # randint(a, b)随机生成[a, b]间的整数
# 注意⚠️:randint与range取值范围的区别。前者能取右侧的值,后者不能
random.shuffle()
:将一个序列(列表、字符串或元组)的顺序打乱# 示例
import random
mylist = ["apple", "banana", "cherry"]
random.shuffle(mylist)
print(mylist)
import random
# 生成一副不含大小王的扑克牌序列
def create(suit, d):
ls = []
for i in range(4):
for j in range(13):
temp = suit[i] + d[j]
ls.append(temp)
return ls
# 随机洗牌
def shufflecard(pokers):
random.shuffle(pokers)
return pokers
# 发5张牌给一个玩家并将发给该玩家的牌输出
def deal(pokers, n):
ls = []
for i in range(n - 1, n + 16, 4):
ls.append(pokers[i])
print('第{}个玩家的牌是:{}'.format(n, ', '.join(ls)))
n = int(input())
suit = ['♥', '♠', '♦', '♣']
d = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
random.seed(n)
poker = create(suit, d)
poker = shufflecard(poker)
for i in range(52):
print('{:4}'.format(poker[i]), end=' ') # 格式化输出洗牌后的牌
if i % 13 == 12:
print() # 换行
for i in range(1, 5):
deal(poker, i)
相关内容
Python扑克牌发牌(用类实现)
Python期末考试总复习资料