Python学习笔记之洗牌顺牌

一、系列缘由

  作为一名运维工程师,也一直有一个学习开发的想法,值此之际,不知道博客的下一期目标在哪里,在这思考和犹豫的间隙想着学习和充实一下自己,学习一下python语言,python随着大数据和人工智能的兴起而日益火爆。边学习边实践的原则学习python,希望自己更上一层楼。

二、学习笔记

  此笔记主要记录列表的学习笔记,学习内容为列表的各方法。列表的主要方法如下:

函数 含义
len(list) 列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表
方法 含义
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素
list.sort( key=None, reverse=False) 对原列表进行排序
list.clear() 清空列表
list.copy() 复制列表

三、实践练习

1、洗牌代码

(base) [root@s186 python]# cat xp.py 
#!/root/anaconda3/bin/python
# This is a python program.
'''
这是一断扑克洗牌代码,默认新牌是按照花色和顺序排列
经过洗牌后顺序被打乱,执行可见效果。
'''
import random
#初始顺序
poke = ["红桃A","红桃2","红桃3","红桃4","红桃5","红桃6","红桃7","红桃8","红桃9","红桃10","红桃J","红桃Q","红桃K","黑桃A","黑桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K","方块A","方块2","方块3","方块4","方块5","方块6","方块7","方块8","方块9","方块10","方块J","方块Q","方块K","梅花A","梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K","大王","小王"]
print("\n洗牌前的扑克牌顺序:\n",poke)
#洗牌1遍
for i in range(len(poke)):
        poke.append(poke.pop(random.randint(0,len(poke)-1)))
print("\n洗牌一遍的扑克牌顺序:\n",poke)
#洗牌2遍
for i in range(len(poke)*2):
        poke.append(poke.pop(random.randint(0,len(poke)-1)))
print("\n洗牌俩遍的扑克牌顺序:\n",poke)
#顺牌
poke.sort()
print("\n顺牌后的扑克牌顺序:\n",poke)

2、设计说明

  • 定义一个54张牌的列表
  • 使用len函数获取列表长度,此参数作为洗牌次数,一次抽插一张牌
  • 使用pop方法弹出抽中的牌
  • 使用append方法将抽中的牌放置到最后
  • 使用sort函数排序列表达到顺牌效果

3、执行测试

在这里插入图片描述

おすすめ

転載: blog.csdn.net/carefree2005/article/details/121123278