def

Python制作扑克牌发牌程序,另含大量Python代码!

流过昼夜 提交于 2021-01-01 07:40:44
题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌。 提示: 设计出3个类:Card类、Hand类和Poke类。 Card类代表一张牌,其中FaceNum字段指出是牌面数字1~13,Suit字段指出的是花色,值“梅”为梅花,“方”为方块,“红”为红心,“黑”为黑桃。 Hand类代表一手牌,可以认为是一位牌手手里的牌,其中cards列表变量存储牌手手里的牌。可以增加牌、清空手里的牌、把一张牌给别的牌手。 Poke类代表一副牌,可以把一副牌看作是有52张牌的牌手,所以继承Hand类。 1.1 输出样例 This is a module with classes for playing cards. 牌手 1:红桃6 黑桃6 梅花A 方片6 黑桃2 梅花10 红桃3 方片4 方片10 黑桃J 红桃Q 红桃10 红桃8 牌手 2:梅花J 梅花9 红桃7 红桃2 方片K 黑桃K 梅花3 方片7 黑桃Q 黑桃10 梅花Q 梅花8 黑桃7 牌手 3:梅花2 方片A 黑桃3 方片9 黑桃4 红桃K 红桃J 梅花7 红桃4 方片2 梅花4 梅花6 红桃5 牌手 4:黑桃5 红桃9 方片8 梅花5 方片J 黑桃A 梅花K 方片5 黑桃9 方片3 黑桃8 方片Q 红桃A 题解 2.1 代码 # Card类:一张牌 class Card: """A

Python 制作一副扑克牌,有趣的案例!

早过忘川 提交于 2021-01-01 00:00:19
之前在 《流畅的 Python 》中看到一个例子比较有趣,所以整理一下通过本文分享给大家, 该案例是通过 Python 类属性创建一幅除去 **大王、小王**之后的 52 张扑克牌,并实现**随机抽牌、排序、洗牌**等功能; #### 创建一个纸牌类 一副扑克除去大王小王之外,剩下的 52 张纸牌以花色为基准(梅花、方块、黑桃、红心)可分为 4 组,每组有 13 张牌组成;因此可创建两个列表一个来存储花色,一个存储 13 个字符;通过两个列表之间的随机组合来生成 52 张纸牌, >本期推送整理了初学者可能会用到的Python资料,含有书籍/视频/在线文档和编辑器/源 代码,关于`Python`的安装qun:850973621 代码如下: ``` import collections Card = collections.namedtuple("Card",['rank','suit']) class FrenchDeck: ranks = [str(n) for n in range(2,11) ] + list("JQKA") suits = 'spades diamonds clubs hearts'.split() def __init__(self): self._cards = [Card(rank,suit) for suit in self.suits for

django 学习个人总结 之form表单提交

这一生的挚爱 提交于 2020-12-31 14:15:45
from django.shortcuts import render_to_response from django import forms from django.http import HttpResponse class UserForm(forms.Form): name = forms.CharField() def register(req): if req.method == 'POST': form_object = UserForm(req.POST) if form_object.is_valid(): print form_object.cleaned_data return HttpResponse('ok') else: form_object = UserForm() return render_to_response('index.html',{'form':form_object}) templates/index.html <html> <head> </head> <body> <form method='post'> `form` <button type='sumbit'>ok</button> </form> </body> </html> Name:输入内容 ok按钮 说下流程是怎么走的 第一次访问他的时候是get方法

14. Scala使用递归的方式去思考,去编程

我们两清 提交于 2020-12-31 12:17:45
14.1 基本介绍       -Scala饰运行在Java虚拟机(Java Virtual Machine)之上,因此具有如下特点         1) 轻松实现和丰富的Java类库互联互通         2) 它既支持面向对象的编程方式,又支持函数式编程         3) 它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言 14.2 Scala提倡函数式编程(递归思想)       -先说下编程范式:         1) 在所有的编程范式中,面向对象编程(Object-Oriented Programming)无意是最大赢家         2) 但其实面向对象编程并不是一种严格意义上的编程范式,严格意义上的编程范式分为:命令式编程(Imperative Programming)、函数式编程(Functional Programming)和逻辑式编程(Logic Programming)。面向对象编程只是上述几种范式的一个交叉产物,更多的还是继承了命令式编程的基因         3) 在传统的语言设计中,只有命令式编程得到了强调,那就是程序员要告诉计算机应该怎么做。而递归则是通过灵巧的函数定义,告诉计算机做什么。因此在使用命令式编程思维的程序中,是现在多数程序采用的编程方式,递归出镜的几率很少,而在函数式编程中,可以随处见到递归的方式 14.3

python3 生成器和生成器表达式

ⅰ亾dé卋堺 提交于 2020-12-31 12:03:38
''' 普通函数 ''' def func(): print (111 ) return 222 ret = func() # 111 print (ret) # 222 111 222 ''' 函数中含有yield就是生成器 ''' def func(): print (111 ) yield 222 gen = func() print (gen) # <generator object func at 0x0000000006085D00> ret1 = gen. __next__ () # 111 print (ret1) # 222 <generator object func at 0x0000000007A8BB48> 111 222 def func(): print (111 ) yield 22 print (333 ) yield 444 gen = func() ret = gen. __next__ () # 111 print (ret) # 22 ret2 = gen. __next__ () # 333 print (ret2) # 444 ret3 = gen. __next__ () # StopIteration: # 值取空,就报StopIteration print (ret3) 111 22 333 444 ---------------

python 生成器的理解和总结

て烟熏妆下的殇ゞ 提交于 2020-12-31 11:37:33
1. 生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即生成器(generator)。 生成器是一类特殊的迭代器。 2. 创建生成器方法1 要创建一个生成器,有很多种方法。第一种方法很简单,只要把一个列表生成式的 [ ] 改成 ( ) 3. 创建生成器方法2 generator非常强大。如果推算的算法比较复杂,用类似列表生成式的 for 循环无法实现的时候,还可以用函数来实现。 在使用生成器实现的方式中,我们将原本在迭代器__next__方法中实现的基本逻辑放到一个函数中来实现,但是将每次迭代返回数值的return换成了yield,此时新定义的函数便不再是函数,而是一个生成器了。 简单来说:只要在def中有yield关键字的 就称为 生成器 此时按照调用函数的方式使用生成器就不再是执行函数体了,而是会返回一个生成器对象,然后就可以按照使用迭代器的方式来使用生成器了 总结 使用了yield关键字的函数不再是函数,而是生成器。(使用了yield的函数就是生成器) yield关键字有两点作用: 保存当前运行状态(断点),然后暂停执行,即将生成器(函数)挂起

用PYTHON爬虫简单爬取网络小说

余生长醉 提交于 2020-12-31 10:11:52
用PYTHON爬虫简单爬取网络小说。 这里是17K小说网上,随便找了一本小说,名字是《千万大奖》。 里面主要是三个函数: 1、get_download_url() 用于获取该小说的所有章节的URL。 分析了该小说的目录页http://www.17k.com/list/2819620.html的HTML源码,发现其目录是包含在Volume里的A标签合集。所以就提取出了URLS列表。 2、get_contents(target) 用于获取小说指定章节的正文内容 分析了小说中第一章节的页面http://www.17k.com/chapter/2819620/34988369.html,发现其正文内容包含在P标签中,正文标题包含在H1标签中,经过对换行等处理,得到正文内容。传入参数是上一函数得到的URL。 3、writer(name, path, text) 用于将得到的正文内容和章节标题写入到千万大奖.txt 理论上,该简单爬虫可以爬取该网站的任意小说。 from bs4 import BeautifulSoup import requests, sys target='http://www.17k.com/list/2819620.html' server='http://www.17k.com' urls=[] def get_download_url(): req =

SDN实验---Mininet实验(模拟多数据中心带宽实验)

风流意气都作罢 提交于 2020-12-31 10:04:57
补充:NameError: name 'buffer' is not defined >>> import sys >>> if sys.version_info > ( 3 ,): ... buffer = memoryview >>> b = buffer( ' yay! ' .encode()) >>> len(b) 4 因为在Python3中buffer已经被memoryview取代了,buffer在Python2中使用,所以我们可以在文件中加入 import sys if sys.version_info > ( 3 ,): buffer = memoryview 一:Mininet模拟多数据中心流量带宽实验 (一)案例目的 (二)为什么使用Mininet模拟数据中心--应用价值 Mininet最常用的场景就是数据中心。因为Mininet可以模拟出很复杂的网络拓扑,而不需要硬件的支持,就可以搭建出不同的数据中心的拓扑。 可以为真正的数据中心网络的搭建起到模拟预测实验作用,为真实的数据中心的成本带来一定的节省。 二:数据中心网络拓扑 (一)数据中心网络拓扑结构 存在线路冗余(多条链路可达),容错能力强-----胖树拓扑 (二)实现网络拓扑---按照结构实现,代码不唯一 from mininet.topo import Topo from mininet.net import

python web开发-flask中读取txt文件内容

佐手、 提交于 2020-12-31 09:35:50
某些情况下,需要读取flask网站要目录下的txt文件。但是直接在flask网站的目录下创建一个文件是无法访问的。从网站找了一些资料,最终发现通过写一个方法返回txt内容比较简单方便,不过此方法适用于简单的文件读取以及读取量比较小的时候。详细代码如下: @app.route( '/<path>' ) def today(path): base_dir = os.path.dirname(__file__) resp = make_response(open(os.path.join(base_dir, path)).read()) resp.headers[ "Content-type" ]= "text/plan;charset=UTF-8" return resp 测试方法,在要目录创建一个readm.txt文件。 运行程序,访问/readme.txt,返回结果如下: 延伸知识点: 因为在之前的代码中做过一个简单的url实例,url的定义和本文的定义一样,只是参数名不一样,如下: 这时候就遇到一个问题,当我把今天的url定义放到最后面的时候,其实访问的是/<name>这个url,会一直返回hello xxx, 然后把本文例子的代码放到/<name>这个接口的上面,再次运行,得到正确的结果。 更多文章,关注微信公众号”挨踢学霸” 来源: oschina 链接: https:/

python17-Django基础(一)

百般思念 提交于 2020-12-31 06:00:54
知识预览 一 Django基本命令 二 路由配置系统(URLconf) 三 编写视图 四 Template 五 数据库与ORM admin的配置 一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 import socket def handle_request(client): buf = client.recv(1024 ) client.send( " HTTP/1.1 200 OK\r\n\r\n " .encode( " utf8 " )) client.send( " <h1 style='color:red'>Hello, yuan</h1> " .encode( " utf8 " )) def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(( ' localhost ' ,8001 )) sock.listen( 5 ) while True: connection, address = sock.accept()