最近我用Python做了一个国际象棋程序并把代码发布在Github上了。这个代码不到1000行,大概20%用来实现AI。在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来。你可以直接通读本文,或者去下载代码,边读边看代码。虽然去看看其他文件中有什么AI依赖的类也可能有帮助,但是AI部分全都在AI.py文件中。AI部分总述AI在做出决策前经过三个不同的步骤。首先,他找到所有规则允许的棋步(通常在开局时会有20-30种,随后会降低到
系统 2019-09-27 17:53:42 2339
Python在读取文件内容时的路径问题,值得深究一下.我想讨论的重点还是在绝对路径上面.在这之前我们先看一下1:相对路径这张图演示了在相对路径下寻找查找指定文件.open('相对路径演示'\'相对路径示例'.txt)打开的是相对当前运行的程序所在目录。而我当前运行的程序相对位置在桌面.所以直接print(lines)可以看到这个结果2:绝对路径.绝对路径的查找方法就不演示了,相信每个人都会找到。但是我想讨论的是几个关于路径中的编码问题,相信这对初学者们有很
系统 2019-09-27 17:52:11 2339
一、定义见百度百科链表链表由表头和节点组成,节点分为数据域和指针域,数据域中存贮数据元素,指针域存储下个结点的地址二、单链表实现逻辑创建节点类Node和链表类Linklist,Linklist类中包含head属性,head的值为0或Node对象,Node类中包含value属性存储数据,next属性存储下个节点的地址(Node对象)循环节点从head开始取next属性,直到next=0为止,返回当前对象添加节点时调用循环方法返回最后一个节点对象,把返回节点的
系统 2019-09-27 17:51:27 2339
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。python一般内部赋值变量的话,都是传个引用
系统 2019-09-27 17:51:23 2339
让我们描绘一下本文的情节:假设您要在本地机器上运行一个进程,而部分程序逻辑却在另一处。让我们特别假设这个程序逻辑会不时更新,而您运行进程时,希望使用最新的程序逻辑。有许多方法可以满足刚提到的要求;本文将向您说明其中几种方法。随着“可爱的Python”专栏不断进行,已经讨论了我的公共域实用程序Txt2Html的正在进行的增强。该实用程序将“智能ASCII”文本文件转换成HTML。以前的文章讨论了实用程序的Web代理版本和实用程序的curses界面。同样,我偶
系统 2019-09-27 17:50:16 2339
[文件]DakeleSign.py~4KB#!/usr/bin/envpython#-*-coding:utf-8-*-__author__='poppy''''dakelebbssigin'''importsysimporturllib2importurllibimportrequestsimportcookielibimportjsonfrompyqueryimportPyQueryaspqimportlogginglogging.basicConfi
系统 2019-09-27 17:50:06 2339
========坚持30天刷leetcode=====题目链接:https://leetcode-cn.com/problems/3sum-closest/先上结果:分析:关键在于特殊情况的判断,减少遍历。classSolution:defthreeSumClosest(self,nums,target):k=len(nums)ifk<3:returnNone#特殊情况:数组小于3ifk==3:returnsum(nums)#特殊情况:数组等于3nums.
系统 2019-09-27 17:49:00 2339
启动python从IDLE启动PythonIDLE是一个PythonShell。Shell的意思是“外壳”,是一个通过键入文本与程序交互的途径(类似windows中的cmd。VisualStudio也是一种Shell)>>>是指Python准备好了,可以输入Python指令alt+N快速回到上一条语句(复制粘贴);alt+P下一条字符串print("hello,world")#"内是字符串"计算print(5+3)括号内没有""+print("ilove"
系统 2019-09-27 17:48:40 2339
目录一、python线程模块的选择二、threading模块三、通过threading.Thread类创建线程3.1创建线程的方式一3.2创建线程的方式二四、多线程与多进程4.1pid的比较4.2开启效率的较量4.3内存数据的共享问题五、Thread类的其他方法5.1代码示例5.2join方法六、多线程实现socket6.1服务端6.2客户端一、python线程模块的选择Python提供了几个用于多线程编程的模块,包括thread、threading和Qu
系统 2019-09-27 17:47:04 2339
index()方法确定字符串str,如果起始索引beg和结束索引end在末尾给出了找到字符串或字符串的一个子串。这个方法与find()方法一样,只是如果没有找到子符趾会抛出一个异常。语法以下是index()方法的语法:str.index(str,beg=0end=len(string))参数str--此选项指定要搜索的字符串。beg--这是开始索引,默认情况下是0。end--这是结束索引,默认情况下它等于该字符串的长度。返回值方法返回索引,如果找到这个st
系统 2019-09-27 17:38:06 2339