生成器在Python中,使用了yield的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。列表推导式空间开销大占用内存耗时大,.生成器保存的是算法,而列表保存的计算后的内容,所以同样内容的
系统 2019-09-27 17:56:10 2243
利用上一篇的框架,再写了个翻转棋的程序,为了调试minimax算法,花了两天的时间。几点改进说明:拆分成四个文件:board.py,player.py,ai.py,othello.py。使得整个结构更清晰,更通用,更易于维护。AI的水平跟minimax的递归深度,以及评价函数有关。基于此,我把minimax和评价函数都放到AI类里面AIPlayer使用了多重继承。继承了Player与AI两个类Game类中把原run函数里的生成两个玩家的部分提出来,写成一个
系统 2019-09-27 17:54:46 2243
三种方法:①直接使用dict②使用defaultdict③使用Counterps:`int()`函数默认返回0①dicttext="I'mahandsomeboy!"frequency={}forwordintext.split():ifwordnotinfrequency:frequency[word]=1else:frequency[word]+=1②defaultdictimportcollectionsfrequency=collections.d
系统 2019-09-27 17:54:44 2243
python3无法正常安装PIL,因为PIL只支持python2各个版本,还没有python3的版本。这里是PIL官网http://www.pythonware.com/products/pil/可以看出只支持python2。不过有一个可以替代PIL的包,并且可以在python3上正常安装。Pillow包。Windows下安装方法:step1:windows+Rstep2:cmdstep3:pipinstallPillow截图如下:安装成功,大功告成。以上
系统 2019-09-27 17:54:39 2243
由于电脑上安装了多个版本的pip,以及不同的pip对应不同的python,因此有时候使用pipinstall安装某个包时,可能会没有安装在想要的位置。具体而言,在我电脑上,运行pip--version时,输出如下pip9.0.1from/opt/anaconda3/lib/python3.6/site-packages(python3.6)运行sudopip--version时,输出如下pip18.0from/usr/local/lib/python3.5
系统 2019-09-27 17:53:40 2243
Python中的三角函数位于math模块内。引入模块:importmath输出pi:importmathprint(math.pi)得:3.141592653589793math模块内还有sin、cos、tan之类的函数,与C#的用法一致。下面介绍Python中的三角函数,如下:函数描述acos(x)返回x的反余弦弧度值。asin(x)返回x的反正弦弧度值。atan(x)返回x的反正切弧度值。atan2(y,x)返回给定的X及Y坐标值的反正切值。cos(x
系统 2019-09-27 17:53:27 2243
给你一个有效的IPv4地址address,返回这个IP地址的无效化版本。所谓无效化IP地址,其实就是用"[.]"代替了每个"."。示例1:输入:address="1.1.1.1"输出:"1[.]1[.]1[.]1"示例2:输入:address="255.100.50.0"输出:"255[.]100[.]50[.]0"水题classSolution:defdefangIPaddr(self,address:str)->str:a=""foriinrange(
系统 2019-09-27 17:53:22 2243
程序中,经常用到这种,就是需要固定时间执行的,或者需要每隔一段时间执行的。这里经常用的就是Timer定时器。Thread类有一个Timer子类,该子类可用于控制指定函数在特定时间内执行一次。可以用几个例子来说明Timer的用法,一最简单的用法,Ns后(2s)后执行:1#python3example2fromthreadingimportTimer3importtime456defhello_test():7print("helloworld")89t=Ti
系统 2019-09-27 17:52:47 2243
英文文档classmethod(function)Returnaclassmethodforfunction.Aclassmethodreceivestheclassasimplicitfirstargument,justlikeaninstancemethodreceivestheinstance.Todeclareaclassmethod,usethisidiom:classC:@classmethoddeff(cls,arg1,arg2,...):.
系统 2019-09-27 17:52:28 2243
本文实例讲述了pythonos模块简单应用。分享给大家供大家参考,具体如下:举例中的目录形式如下所示:In[36]:pwdOut[36]:'/home/python/Desktop/code'In[37]:lshello.pyhello.txttest.py文件夹01/文件夹02/文件夹03/1.当前路径及路径下的文件os.getcwd():查看当前所在路径。os.listdir(path):列举目录下的所有文件。返回的是列表类型。In[1]:import
系统 2019-09-27 17:51:54 2243
MSPython插件。这是微软官方的Python插件,已经自带很多功能。下面是插件功能描述,其中部分内容我做了翻译。a)Linting(Prospector,Pylint,pycodestyle,Flake8,pylama,pydocstyle,mypywithconfigfilesandplugins)静态代码扫描(可以理解为代码语法和格式错误提示,支持多种linter)b)Intellisense(autocompletionwithsupportfo
系统 2019-09-27 17:51:41 2243
学了下beautifulsoup后,做个个网络爬虫,爬取读者杂志并用reportlab制作成pdf..crawler.py复制代码代码如下:#!/usr/bin/envpython#coding=utf-8"""Author:AnemoneFilename:getmain.pyLastmodified:2015-02-1916:47E-mail:anemone@82flex.com"""importurllib2frombs4importBeautiful
系统 2019-09-27 17:51:35 2243
最近在弄flask的东西,好久没写博客的,感觉少了点什么,感觉被别人落下好多,可能渐渐的养成了写博客的习惯吧。也是自己想学的东西太多了(说白了就是基础太差了,只是knowhow,不能做到konwwhy)。不说那些毒鸡汤了,我们来说说我们今天的python基础面试题吧。一,Q:python的优缺点有什么?A:优点:1,基础语法简单易学,对于初学者来说,语法还是相对简单的,比较容易学习,网上的学习资料也很多。2,面向对象,在python里继承和封装较多,而py
系统 2019-09-27 17:50:49 2243
Python做后端开发的优势1、Python开发人员的背景丰富多彩,阵营规模很大,这直接导致了Python的各种lib比Ruby多很多很多很多2、和Ruby相反,Python的哲学是“做一件事情有且只有一种方法”(Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.)。Ruby的信徒会觉得这样非常boring,但是我觉得这一点减轻了人们在开发时的认知负担和选择成本,对于提高开发效率是很有帮助的
系统 2019-09-27 17:50:45 2243
首先看一下来自Wolfram的定义马尔可夫链是随机变量{X_t}的集合(t贯穿0,1,...),给定当前的状态,未来与过去条件独立。Wikipedia的定义更清楚一点儿...马尔可夫链是具有马尔可夫性质的随机过程...[这意味着]状态改变是概率性的,未来的状态仅仅依赖当前的状态。马尔可夫链具有多种用途,现在让我看一下如何用它生产看起来像模像样的胡言乱语。算法如下,找一个作为语料库的文本,语料库用于选择接下来的转换。从文本中两个连续的单词开始,最后的两个单词
系统 2019-09-27 17:49:12 2243