python3.6环境

import collections
from random import choice
Card=collections.namedtuple('Card',['rank','suit'])class FrenchDeck:ranks=[str(n) for n in range(2,11)] +list('JQKA') #扑克的大小范围print(ranks)suits='spades diamods clubs hearts'.split()  # 黑桃,钻石,方块,红心print(suits)def __init__(self):self._cards=[Card(rank,suit) for suit in self.suitsfor rank in self.ranks]def __len__(self):return len(self._cards)def __getitem__(self, position):return self._cards[position]beer_card=Card('7','diamonds')  #实例一个扑克点print(beer_card)deck= FrenchDeck()  #创一个扑克对象deck
print(len(deck))    #打印总共有多少张扑克print(deck[0])     #打印第一张牌 黑桃2
print(deck[-1])    #打印最后一张牌 红心Aprint(choice(deck))  #随机抽取一张牌print(deck[:3])     #查看最上面三张  黑桃 2 ,3, 4print(deck[12::13]) #抽取索引为12的那张牌,然后每隔13张在抽取一张 正好是4个A# 实现了 __getitem__方法,这一摞牌变成了可迭代对象
for card in deck:print(card)
print('===============================下面是反响迭代===============================')
#反向迭代
for card in reversed(deck):print(card)#判断某张牌实例是否存在这副牌中
print(Card('Q','hearts') in deck)  #True
print(Card('7','beasts') in deck)  #False#  比较扑克牌的大小2 最小、A 最大;同时还要加
#  上对花色的判定,黑桃最大、红桃次之、方块再次、梅花最小。
# 下面就是按照这个规则来给扑克牌排序的函数,梅花 2 的大小是 0,黑桃 A 是 51:
suit_values=dict(spades=3,hearts=2,diamods=1,clubs=0)def spades_high(card):  # 获取扑克的点数rank_value = FrenchDeck.ranks.index(card.rank)  # 根据传入的牌的实例返回扑克0-51 之间的一个索引  例 黑桃A:12*4+3=51 return rank_value * len(suit_values) + suit_values[card.suit]# 通过上面定义的函数对这幅牌进行 升序排序
print('===============================自定义排序===============================')
for card in sorted(deck, key=spades_high):print(card)

转载于:https://www.cnblogs.com/benjamin77/p/9107507.html

python3模拟扑克牌相关推荐

  1. 【Jetson Nano】使用python3模拟向阿里云发送数据

    文章目录 使用python3模拟向阿里云发送数据 阿里云准备 1.登入阿里云物联网平台 2.产品创建流程 3.功能自定义 Jetson Nano准备 1.系统准备,首先烧写系统镜像 英伟达官网下载ub ...

  2. 模拟扑克牌大小软件_扑克与软件工程

    模拟扑克牌大小软件 by Jeff Meyerson 杰夫·梅耶森(Jeff Meyerson) 扑克与软件工程 (Poker and Software Engineering) As a poker ...

  3. 如何使用python3模拟icmp发包

    如何使用python3模拟icmp发包 模拟icmp协议快速探测内网机器 ICMP 包原理 简单的创建icmp包信息 创建raw socket 发送数据包 接收数据包,以及解包 完整的一次发包以及解析 ...

  4. 模拟扑克牌,随机抽取五张牌,判断是否为同花顺

    今天去面试,遇到这个面试题,当时想法想通了,我跟面试官说给我半小时,但是超时了没写出来. 回来复盘一下~ 思路步骤: ①创建map容器存储扑克牌key为牌的索引,value为牌的值 ②按照同花顺顺序存 ...

  5. Java实验-02 模拟扑克牌游戏的洗牌

    结合面向对象设计原则,分析和设计模拟扑克牌游戏的洗牌过程. 编程定义一个表示扑克牌的类 Poke,用 suit 来表示扑克牌的花色,用 face 来表示扑克牌的 牌面值,每副牌为 52 张,不考虑包含 ...

  6. 用java制作扑克牌_Java模拟扑克牌洗牌实现生成52张扑克的方法示例

    本文实例讲述了Java模拟扑克牌洗牌实现生成52张扑克的方法.分享给大家供大家参考,具体如下: 要求: 生成52张扑克,模拟扑克牌洗牌,并输出. 实现代码: package com.NCU.ZHANG ...

  7. 模拟扑克牌随机选择(Java)

    题目 模拟从一副扑克牌52张中选择一张.程序中牌的大小应显示为(Ace,1,2,3,4,5,6,7,8,9,10,Jack,Queen,King),牌的花色应该显示为(Diamonds(方块),Hea ...

  8. python3模拟键盘输入_python 模拟键盘输入

    一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUserInput模块即可 Py ...

  9. 模拟扑克牌的洗牌发牌

    在内存中模拟出一副牌,然后模拟洗牌,发牌等动作 流程:构建一副牌保存到一个数组中–>洗牌–>创建玩家–>向玩家发牌–>输出每个玩家的牌 #include <stdio.h ...

  10. Python3模拟登录人人网

    登录人人网urllib2的实现方法早就实现了,但是各种库比较混乱,代码不过pythonic,早就有很多人吐槽.今天咱们用requests库来模拟登录把人人网吧! 第一步 导入模块 #导入需要的模块 i ...

最新文章

  1. Deformable 可变形的DETR
  2. Struts2--DomainModel接收参数---使用广泛!!!
  3. 我在阿里招前端,我该怎么帮你?
  4. REVIT模型之机器人瓦力
  5. all any 或 此运算符后面必须跟_用 ANY、SOME 或 ALL 修改的比较运算符
  6. 网易笔试编程题java_2017年网易校招笔试JAVA研发编程题
  7. Python机器学习--KNN归一化、距离的惩罚
  8. 【Java】BigDecimal
  9. SDN精华问答 | 为什么会出现SDN?
  10. 关于python文件操作
  11. git(11)---Git的基础知识
  12. 如何安装Windows7多语言支持
  13. 不生成Excel文件,将Datatable数据 Response.write 输出生成Excel (转载)
  14. IAR 编译时找不到头文件的解决方法
  15. 6.1.6 日志压缩
  16. 2016,我有些明白了
  17. AMap(高德官方图层)
  18. GO Strings-and-runes
  19. 【机器学习课程-华盛顿大学】:4 聚类和检索 4.4 MoG混合高斯模型和EM估计最大化
  20. 从十亿光年到0.1飞米

热门文章

  1. 2022年考研计算机-数据库原理8-11章
  2. linux 学习笔记 -vim 操作
  3. SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘staff_info.depart_id‘ in ‘where clause‘
  4. oracle gc chain,ORACLE GC 类等待事件汇总分析
  5. hdfs合并小文件测试
  6. MFC调用dos窗口使用printf,cout打印输出
  7. 多线程编程:线程死锁的原因以及解决方法
  8. 按位运算操作符底层实现原理
  9. Vmware 安装 ghost 版 win 7
  10. mac 下设置 sublime text2 的命令行快捷方式 subl