拥有Python标签的文章
Python

用Python编写一个国际象棋AI程序

最近我用Python做了一个国际象棋程序并把代码发布在Github上了。这个代码不到1000行,大概20%用来实现AI。在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来。你可以直接通读本文,或者去下载代码,边读边看代码。虽然去看看其他文件中有什么AI依赖的类也可能有帮助,但是AI部分全都在AI.py文件中。AI部分总述AI在做出决策前经过三个不同的步骤。首先,他找到所有规则允许的棋步(通常在开局时会有20-30种,随后会降低到

系统 2019-09-27 17:53:42 2296

Python

详解python eval函数的妙用

pythoneval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。函数定义:eval(expression,globals=None,locals=None)将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。python的全局名字空间存储在一个叫globals()的dict

系统 2019-09-27 17:53:18 2296

Python

python爬虫 urllib模块反爬虫机制UA详解

方法:使用urlencode函数urllib.request.urlopen()importurllib.requestimporturllib.parseurl='https://www.sogou.com/web?'#将get请求中url携带的参数封装至字典中param={'query':'周杰伦'}#对url中的非ascii进行编码param=urllib.parse.urlencode(param)#将编码后的数据值拼接回url中url+=para

系统 2019-09-27 17:53:16 2296

Python

python 并发编程 阻塞IO模型原理解析

阻塞IO(blockingIO)在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样:当用户进程调用了recvfrom这个系统调用,kernel内核就开始了IO的第一个阶段:准备数据。对于networkio(网络io)来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时候kernel(内核)就要等待足够的数据到来。等着对方把数据放到自己操作系统内存而在用户进程这边,整个进程会被阻塞。

系统 2019-09-27 17:53:03 2296

Python

排序算法总结(Python实现)——(一)

整个排序算法分两部分来总结,这篇总结第一部分一些相对简单和常用的排序算法,包括冒泡排序、选择排序、插入排序和希尔排序。冒泡排序冒泡排序应该是大家接触的最早的排序方法了,理解起来也十分简单。冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述比较相邻的

系统 2019-09-27 17:52:15 2296

Python

分析Python读取文件时的路径问题

Python在读取文件内容时的路径问题,值得深究一下.我想讨论的重点还是在绝对路径上面.在这之前我们先看一下1:相对路径这张图演示了在相对路径下寻找查找指定文件.open('相对路径演示'\'相对路径示例'.txt)打开的是相对当前运行的程序所在目录。而我当前运行的程序相对位置在桌面.所以直接print(lines)可以看到这个结果2:绝对路径.绝对路径的查找方法就不演示了,相信每个人都会找到。但是我想讨论的是几个关于路径中的编码问题,相信这对初学者们有很

系统 2019-09-27 17:52:11 2296

Python

Linux下使用python调用top命令获得CPU利用率

本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下:复制代码代码如下:top-bi>cpuHistory.log或复制代码代码如下:top-bi|teecpuHistory.log这个就不解释了,不懂的朋友查询下top的帮助文档。这里要实现的是通过python调用top命令,并获得cpu的利用率信息。用过popen的朋友很快就能想到类似如下的代码(这个是

系统 2019-09-27 17:51:42 2296

Python

链表详解(python实现)

一、定义见百度百科链表链表由表头和节点组成,节点分为数据域和指针域,数据域中存贮数据元素,指针域存储下个结点的地址二、单链表实现逻辑创建节点类Node和链表类Linklist,Linklist类中包含head属性,head的值为0或Node对象,Node类中包含value属性存储数据,next属性存储下个节点的地址(Node对象)循环节点从head开始取next属性,直到next=0为止,返回当前对象添加节点时调用循环方法返回最后一个节点对象,把返回节点的

系统 2019-09-27 17:51:27 2296

Python

python实现在函数中修改变量值的方法

和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。python一般内部赋值变量的话,都是传个引用

系统 2019-09-27 17:51:23 2296

Python

为什么很多人喜欢用python语言?

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。2005年中期,用了几天学完了Python,随后两天用了十几个小时写了编译原理的课程设计,这是我大学阶段所有课程设计里唯一没有延期的。后来逐渐发现Python的简单可以把我的思想从编程语言的细节里解放出来,更关注实际要解决的问题。就喜欢上了。既然有人点赞,就再补充点。很多人关注起Python就是因为简单易懂,做Web很方便。但在深入CS学科的很多高级主题时,Python能发挥出更加强大无比

系统 2019-09-27 17:51:11 2296

Python

解决python3 requests headers参数不能有中文的问题

1需求,heeaders参数需要拼接中文参数param解决如下url='https://....search?keyword='+param+'&templateId=&page=1&pageSize=10'headers={"Accept":"application/json,text/javascript,*/*;q=0.01","Accept-Encoding":"gzip,deflate,br","Accept-Language":"zh-CN,z

系统 2019-09-27 17:51:00 2296

Python

Python BeautifulSoup [解决方法] TypeError

在python的BeautifulSoup4扩展库的使用过程中出现了TypeError:listindicesmustbeintegersorslices,notstr这个错误,这里就分析一下为什么会报错以及如何解决。这个错误的意思是'类型错误:list的索引必须是'integers'或者'slices'不能是'str'我出现错误的代码:#引入库frombs4importBeautifulSoup#读取页面soup=BeautifulSoup(open('

系统 2019-09-27 17:49:33 2296

Python

Appium+python自动化(八)- 初识琵琶女Appium(千呼万唤始

​简介通过上一篇宏哥给各位小伙伴们的引荐,大家移动对这位美女有了深刻的认识,而且她那高超的技艺和婀娜的身姿久久地浮现在你的脑海里,是不是这样呢???不要害羞直接告诉宏哥:是,就对了。宏哥要的就是这个效果。达到这个效果,就说明你学的差不多了,可以出师了。今天继续由宏哥给你引荐这位琵琶美女。说明:Appium--奴家的大号,提起奴家的大号在江湖上也是无人不知,无人不晓。奴家==Appium;1、界面认识(奴家外表)在之前安装appium的时候说过我们有两种方法

系统 2019-09-27 17:47:15 2296

Python

Python使用Scrapy爬取妹子图

PythonScrapy爬虫,听说妹子图挺火,我整站爬取了,上周一共搞了大概8000多张图片。和大家分享一下。核心爬虫代码#-*-coding:utf-8-*-fromscrapy.selectorimportSelectorimportscrapyfromscrapy.contrib.loaderimportItemLoader,Identityfromfun.itemsimportMeizituItemclassMeizituSpider(scrapy

系统 2019-09-27 17:46:19 2296

Python

Python使用MD5加密字符串示例

Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符串加密。先导入md5加密所需模块:复制代码代码如下:importhashlib创建md5对象复制代码代码如下:m=hashlib.md5()生成加密串,其中password是要加密的字符串复制代码代码如下:m.update('password')获取加密串复制代码代码如下:psw=m.hexdigest()输出复制代码代码如下:printpsw执行:复制代码代码

系统 2019-09-27 17:46:16 2296