pygame部分知识
pygame安装1234# 安装sudo pip3 install pygame# 验证安装是否成功spython3 -m pygame.examples.aliens
pygame使用12345# 先init初始化,然后编写pygame代码,之后quit释放内存import pygamepygame.init()# 功能代码区域pygame.quit()
pygame.Rect:绘制矩形123456789# (x,y)是绘制矩形的起始点,(width,heigh)是绘制矩形的大小# Rect提供多种参数:x,y,top,right,bottom,left,center,centerx,centery,size,width,heightob = pygame.Rect(x, y, width, height)# 打印矩形的尺寸print(ob.size)# 打印矩形的详细尺寸print(ob.x)# bottom = y + height,设置bottom为0相当于将图像置于屏幕的外边ob.bottom = 0
pygame.display:绘制游戏主窗口pygame.displ ...
多种方式实现服务器通信
Web服务器的实现知识点多进程实现并发服务器1234567891011121314151617181920212223242526272829303132333435363738394041424344# 利用多进程实现服务器并发,只是将客户端处理时的语句修改为多进程的即可,其它部分无变化import multiprocessingimport reimport socketdef client_socket(new_tcp_socket): request = new_tcp_socket.recv(2048).decode("utf-8").splitlines() request_page = re.match(r'.* /(.*) .*', request[0]).group(1) print(request_page) try: with open('./_book/' + request_page, 'rb') as f: page_c ...
pygame之小飞机
常量123# python中理论上没有常量,常量的定义来源于彼此的约定# 常量的命名规则:所有字母全部大写,单词与单词之间用_连接SCREEN_RECT = pygame.Rect(0,0480,700)
模块导入顺序123# 1. 先导入官方模块# 2. 再导入第三方模块# 3. 最后导入项目中开发的模块
主程序方法类:为主程序提供各类方法12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697import randomfrom pygame.sprite import Spriteimport pygame# 定义常量在方法类中定义SCREEN = pygame.Rect(0, 0, 400, 600)FRAME_SPD_SEC = 60ENEMY_SHOW ...
python元类
元类知识点背景
元类的是一个特殊的类,主要目的就是为了当创建类时能够自动地改变类
对比装饰器可以在不改变方法内容的情况下丰富方法的功能,通过元类也可以在不修改类对象内容的情况下,丰富类对象中的属性和方法。
Python中type是内建元类,通过它可以直接创建一个类对象,创建的格式如下:
1type(类名, 由父类名称组成的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))
案例
利用type创建带属性和方法的类
123456789101112131415161718192021# type赋值的对象,建议最好和type定义的第一个类名一致,(当然也可不一致)# type的第三个参数中参数,如果添加了属性,则其是类属性,不是实例属性# type的第三个参数中可以添加函数的键值关系def test(self): print("test")@classmethoddef test_cls(cls): print("test")@staticmethoddef test_static(): print(" ...
元组相关知识
元组知识点定义123# 列表用()包裹,数据之间用,进行分割,元素中的数据无法修改# 列表的索引值从0开始, 元素中只包含一个元素的时候,则需要在元素之后添加一个逗号tuple_name = (值1, 值2, 值3, ...)
取值和索引1234# 打印出指定指定索引值的数据tuple_name[索引值]# index:打印出指定数据对应的索引值tuple_name.index("定位的元素值")
统计123len(元组名称)# 统计元组中出现元素值得个数tuple_name.count("统计的元素值")
元组和列表互换1234# list: 元组转列表list_name = list(tuple_name)# tuple:列表转元组tuple_name = tuple(list_name)
Tip(实际开发)12# 元组中保存的各个数据类型往往不一样# 实际开发中,除非能够确认元组中数据的类型,否则针对元组的循环遍历需求并不是很多
1234# 元组的应用场景如下:# 函数的参数和返回值:一个函数可以接受任意多个参数,或者一次返回多个 ...
查找相关
其它命令查找命令find:在特定的目录下搜索符合条件的文件123# 路径:省略路径则在当前路径下查找# 文件名称:默认支持通配符find [路径] -name "文件名称"
软连接ln:建立数据的软连接,也就是创建其快捷方式123# -s:建立的链接是一个软连接,不带-s建立的是硬链接,工作中不会使用# 被链接的文件一定要是一个绝对路径ln -s 被链接的源文件 创建的软连接
123# linux中文件名和文件数据是分开保存的,只有文件的硬链接数为0时,才会将文件数据给删除# 硬链接:是文件数据的别名,可直接访问到存储在盘中的文件数据,而不用通过文件名# 删除软链接,只是删除了访问文件名的方式
打包和解包tar:将一系列文件打包到一个大文件中,也可将打包的大文件回复成一系列文件12345678# c:创建打包文件# v:列出打包、解压的详细过程,显示进度# f:指定档案名称,f后面一定是.tar文件,所以必须放在选项最后tar -cvf 文件名.tar 被打包的文件# x:解开打包文件tar -xvf 文件名.tar
12345678# tar命令只负责打包 ...
函数的参数和返回值
函数进阶知识点函数返回多个值123456789# 利用元组可以使一个函数返回多个值,若返回的是元组,则可以省略元组左右两边的小括号def measure(): temp = 2 test = 3 return temp, test # 调用此函数获得的结果乃是一个元组# 如果函数返回的类型是元组,同时希望单独的处理元组中的数据# 此时可以使用多个变量,一次接受函数的返回结果temp, test = measure()
变量互换12# 利用元组可以直接互换变量的两个数据, 注意=右侧的表示的是一个元组a, b = b, a
参数变更12345678910111213# 在函数内部仅仅针对传递的变量进行赋值语句,其本质只是修改局部变量的引用,不会影响外部变量的引用def demo(num, list_test): # 内部重新赋值,只是修改了变量名的引用方式,并没有修改数据的内容 num = 2 list_test = [1,2,3] # 此处输出的是2,[1,2,3] print(num, list_test)num = 1list_ ...
列表
列表知识点Tip:列表中存储的一般是相同的数据,在迭代遍历时,一般执行的都是相同的逻辑操作
定义123# 列表用[]包裹,数据之间用,进行分割# 列表的索引值从0开始list_name = [值1, 值2, 值3, ...]
取值和取索引1234# 取对应索引值的数据list_name[索引值]# 取数据值在列表中第一次出现的位置,若值不在列表中,则会报错list_name.index("值")
去重12# set方法虽然可以去除列表中重复的数据,但是其返回值的对象是set类型,需要将其重新设置回list类型list(set(list_name))
修改1list_name[索引值] = "值"
增加数据123456# append可以向列表的末尾追加数据list_name.append("追加的数据")# insert可以向列表的指定位置插入数据list_name.insert(插入位置, "插入的数据")# extend可以将另外一个列表的所有值追加到当前列表的末尾list_name.exen ...