用前文提到的基础知识,和网上流行的2048源码,用python实现该游戏. 先将用户操作和游戏逻辑绑定. WASD分别对应移动方向上.左.下.右 然后实现矩阵的转置和逆置,这样只要实现一个方向的移动,通过转置和逆置就可以得到其他方向 的移动. 基本的函数声明完成了,下面定义GameField类,主要实现游戏逻辑和状态转换. GameField类和其中包含的一些函数.先看构造函数. 构造棋盘并且刷新棋盘,作为初次游戏的布局. spawn函数为随机某个位置设置随机值. 移动函数,这个函数比较复杂,代…
模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 模块分为三种: 自定义模块 内置标准模块(又称标准库) 开源模块 自定义模块: #hello.py def hello(): print("hello world") if __name__…
一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和回溯 递归练习 二. 二分法 列表从小到大的数字列表,采用二分法. 三. 匿名函数 lambda n:n**2 自带return,适用于只有一行代码的函数体. 匿名函数调用:匿名函数就是个值.直接使用就行.不用为匿名函数绑定名称,匿名函数只能用一次,就会被回收. 匿名函数的应用场景:某个功能只用一次. 四. …
#Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本,与大家共同学习. import os import re def get_filelist(dir): os.getcwd() #get current work direction. os.chdir(path) #change direction Filelist = [] for home, dirs, files in os.walk(path): for filename in fil…
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb") >>> s['x'] = ['a','b','c'] >>> s['x'].append('d') >>> s['x'] ['a', 'b', 'c'] 解析:当你在shelve对象中查找元素的时候,这个对象都会根据已经存储的版本进行重新构建,当你将…
任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用文件: 1. 每行的写入要加终止符号,否则后期的写入会追加到该行 2. 一行行读,用for循环: 3. 在文件里存储并解析各个数据类型: 3.1 按字符串模式存入,取出,并作数据类型的转换 考虑如何把F里的字符串转换为各个数据类型存在变量里调用 提示:字符串截取处理,split分割,按位提取,已经强…
不知不觉已经快毕业一年了,想想2018年过的可真舒适!!!社会就像一锅水,不同地方温度不同,2018年的我就身处温水中,没有一丝想要进取之心. 1 抽象 抽象在程序中可谓是神来之笔,辣么什么是抽象呢?抽象就是对一种事物或现象等,移除一些不相关的信息,只保留最终需要的信息.例如,一个篮球,说复杂点儿,它是由各种材料等组成,抽象就是不去管这些具体且不相关的信息,说简单点儿就是一个球,这样类似的球还有很多,比如乒乓球等(这样可以谈到继承,后面一张会详谈). 2 自定义函数 函数就是对某个具体操作进行抽…
4 . python的数据结构 数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码.python提供的几种内置数据结构——元组.列表.字典和序列.内置数据结构是Python语言的精华,也是使用python进行开发的基础. 4.1 元组结构 元组是Python中常用的一种数据结构.元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串.数字甚至元组.元组是“写保护”的,即元组创建后不能再做任何修改操作,元组通常代表一行数据,而元组中的元素代表不同的数据项. 4.1.1…
一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类StopIteration 迭代器没有更多的值GeneratorExit 生成器(generator)发生异常来通知退出StandardError 所有的内建标准异常的基类ArithmeticError 所有数值计算错误的基类FloatingPointError 浮点计算错误OverflowError…
一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面每个函数都加一个功能,用来统计每个函数的运行时间是多少,找出来运行比较慢的函数,来优化代码,就需要添加一个新的功能,来统计程序的运行时间,那这样的话,就得修改每个函数了,需要改代码,但是代码特别多,改完了公司倒闭了,这时候装饰器就能排上用场了,它可以不改变原有的函数,原来的函数和原来一模一样,什么…