参数缺省错误情况
#传参后仍出现缺省参数的提示
##提示:TypeError: add() missing 1 required positional argument: 'name' 的问题解决
在实例化后调用函数传参总出现TypeError: add() missing 1 required positional argument:”xxxx” 的问题,如:
他提示我们缺省参数那就添加参数不久行了吗? 哈哈!不行
add()函数中传参初始化后不建议将里面的参数删除,因为这时无用的。那么将add(self)中的self删除呢,答案是肯定的,不行。
继续修改,那么在调用时指定参数传递呢?也不行!
其实这种写法是存在问题的,首先Classmate.add(“xxx”),其实这个类 并没有实例化,在用的时候应改写成Classmate().add(“xxx”)
所以总结:在我们定义函数和类的时候,在第一个参数的位置默认应该添加self,例如add(self,str,str1),然后我们在调用的时候应该首先实例化这个类,如Classmate().add(“xxx”),而非直接调用C ...
协程
##03.协程
**说明:**
协程是利用其他任务在运行的时间做其他任务
###3.1迭代器
说明:迭代是访问集合元素的一种方式,迭代器是一个可以记住遍历的位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束,迭代器只能往前不会后退
**优点:占用内存空间小**
可迭代对象可以对 list,tuple,str等类型的数据使用for…in…的循环语法从中一次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代
在开发的过程中,会出现一种场景,创建一个对象,对象里面有属性,列表里放了很多东西用for取里面的东西,第一步:在创建的这个类里边必须实现__ iter__ (self)方法第二步:__ iter__ (self)方法必须返回一个迭代器的对象,只要这个迭代器里面有__ iter__ (self),__ next__(self)方法,可以去取里面的值
代码演示:
import time
class Classmate(object):
def __init__(self):
self.names = list()
...
进程
#多任务-进程
##02.什么是进程
程序运行后就叫进程
程序是没有运行的,运行起来后就叫进程
**区别:**程序在没有运行之前没有资源,运行后就能分配资源 如:内存、显卡……
###2.1进程1.程序:如xxxx.xx这是程序,是一个静态的2.进程:一个程序运行起来后,代码+用到的资源称为进程,它是操作系统分配资源的基本单元·不仅可以通过线程完成多任务·进程也是可以的
###2.2进程的状态工作中,任务数往往大于CPU的核数,即有一些任务正在执行,而另一些任务在等待CPU进行执行,因此导致了有不同的状态●就绪态:运行的条件都已经过去,正在等待CPU执行●执行态:CPU正在执行其功能●等待态:等待(堵塞)某些条件满足。如一个程序的sleep了,就处于等待态
####2.2.1进程数●进程之间相互独立●在一定范围内“越多越好”——增加进程浪费了内存,但提高了效率●子进程在运行时,先复制主进程的东西,然后分配内存进行运作,在运行过程中,代码不变,数据改变,且代码只有一份,代码不复制,代码为共享(写时拷贝)
###2.3进线程的对比功能●进程:能够完成多任务,如:手机应用多开或在一 ...
线程
线程1.多任务(多个东西同时进行)1.1说明
单核CPU看着的“一起”执行为但执行——时间片轮转,更新、切换足够快看上去就为同时在运行
并行:真的多任务 任务数 <= CPU核数
并发:假的多任务 任务数 >= CPU核数 (优先级调动)一般为并发事件、假的多任务
线程是实现多任务的一种方式
1.2线程——python的threading模块
python的threading模块是对thead做了一些包装,让使用更加方便
使用threading模块单线程执行:一个程序运行后一定有一个主线程,子线程由主线程创建函数名()——调用函数 函数名————告诉这个函数 = :为创建对象
如果主线程没有代码,主线程等着子线程先结束。等子线程都结束,主线程就结束,当主线程结束,程序运行结束
查看线程数threading模块的enumerate想知道当前程序运行起来后有多少线程,每个线程是什么信息,调用enumerat(),返回值是一个列表,列表有几个元素就有几个线程
线程没有先后运行顺序,操作系统先调动谁谁就执行
如果创建的th ...
网络通信
#网络通信使用网络的目的:为了联通多方然后进行通信用的,即把数据从一方传递给另一方,为了让不同的电脑上运行的软件之间能够互相传递数据小结:使用网络能够把多方链接在一起,然后进行数据传递所谓的网络编程就是让不同的电脑上的软件能够进行数据传递,即进程之间的通信特点:数据之间的共享
###1.IP地址:相当于收件的地址(不允许重复)1).目的:用来标记网络中的一台电脑,在本地局域网上是唯一的2).组成:由四组数组成由.隔开3).分类:每一个IP地址包括两部分:网络地址和主机地址(前面相同为同一网络) ipv4:xxx.xxx.xxx.xxx当今有256的四次方种 ipv6:(未来流行的趋势) dest_ip:目标地址(目的ip) src ip:源ip4).查看本机IP地址:Mac、Linux——ifconfig window——ipconfig5).私有ip在这么多网络IP中,国际规定有一部分|P地址是用于我们的局域网使用,也就是属于私网IP ,不在公网中使用的,它们的范围是:
10.0.0.0~10.255.255.255
172.16.0. 0~172.31.255 ...
2048总结
2048 总结pygame模块pygame是一个设计用来开发游戏的python模块
01游戏的初始化和退出●要使用pygame提供的功能需要先调用init方法● 游戏结束前调用一下quit方法方法 说明pygame.init() 导入并初始化所有pygame模块,使用其他模块之前,必须先调用init方法pygame.quit() 卸载所有pygame模块,在游戏结束之前调用
理解游戏中的坐标系● 坐标系。原点在左上角(0,0)。x轴水平向右,逐渐增加。y轴垂直向下,逐渐增加● 在游戏中,所有课件的元素都是以矩形来描述位置的●要描述一个矩形有四要素(x,y) (width,height)pygame专门提供了一个类pygame.Rect用于描述矩形区域rect(x, y, width, height)提示●pygame.Rect 是一个比较特殊的类,内部只是封装了一些数字计算●不执行pygane, init()方法同样能够直接使用
创建游戏主窗口●Pygane 专门提供了一个模块pygane,display 用于创建、管 ...
游戏背景图像
1.1游戏中实现背景的滚动1)创建两张背景图像精灵
第一张完全与屏幕重合
第二张在屏幕的正上方2)两张图像一起向下方运动
self.rect.y += self.speed3)当任意背景精灵的self.rect.y >= 屏幕的高度说明已经移动到屏幕的下方4)将移动到屏幕下方的这张图像设置到屏幕上方
rect.y = -rect.height
1.2背景设计
初始化方法 。直接指定背景图片 。is_alt判断是否是另一张图像
False表示第一张图像,需要与屏幕重合
True表示另一张图像,在屏幕的正上方
update()方法 。 判断是否移出屏幕,如果是,将图像设置到屏幕的正上方,从而实现交替滚动 继承如果父类提供的方法不能满足子类的需求:
派生一个子类
在子类中针对特有的需求,重写父类方法,并进行扩展
02.显示游戏背景2.1背景精灵的基本实现
在plane_sprites 新建 Background 继承自 GameSprite
class Background(GameSprite):
...
pygame创建窗口
使用pygame创建窗口1.1游戏的初始化和退出●要使用pygame提供的功能需要先调用init方法● 游戏结束前调用一下quit方法方法 说明pygame.init() 导入并初始化所有pygame模块,使用其他模块之前,必须先调用init方法pygame.quit() 卸载所有pygame模块,在游戏结束之前调用
1.2理解游戏中的坐标系● 坐标系。原点在左上角(0,0)。x轴水平向右,逐渐增加。y轴垂直向下,逐渐增加● 在游戏中,所有课件的元素都是以矩形来描述位置的●要描述一个矩形有四要素(x,y) (width,height)pygame专门提供了一个类pygame.Rect用于描述矩形区域rect(x, y, width, height)提示●pygame.Rect 是一个比较特殊的类,内部只是封装了一些数字计算●不执行pygane, init()方法同样能够直接使用
1.3创建游戏主窗口●Pygane 专门提供了一个模块pygane,display 用于创建、管理游戏窗口| 方法 | 说明 ...
python 总结
### python
变量定义*变量名=值
变量核函数名由字母下划线、数字组成,
不能以数字开头
规则:以小写命名用下划线连接或采驼峰命名法
定义变量时要做到见名知意
使用Ctrl+Q可查看函数说明信息
数据类型可分为:数字型和非数字型1.数字型:整型(int)、 浮点型(float)、布尔型(bool、 非零即真)、复数型(complex)2.主要用于科学计算3.非数字型:字符串、列表、元祖、字典可使用type()查看数据类型4.input()输入的为字符型,若想输入数字进行运算则需要将其进行类型转换
元祖(Tuple) 列表(List )1.列表:列表名+[]、列表是有序对象的集合。列表中用列表名+. tindex (“数据”) 确定据在列表中的位置一、列表插入: 1.append (末位插入) 2.insert (指定位置插入) 3.extend (合并列表)二、列表数据删除: 1.知道元素名用remove (“指定数据删除”) 2.知道元素位置用pop (“默认删除列表最后一个数据/也可指定” ) 3. ...
Mardown 的使用
Markdown的使用引用
当你需要引用别的地方的句子时,需要用到引用:只需要在要引用的文档前添加 >后接要引用的句子或段落
块注释或者说是引用,或者说是引言部分,使用 >,即大于符号表示,引用之间也可以嵌套使用哦。
> 这个是引用层级1>> 这个是第二个引用层级如果使用嵌套的话,应该这样使用:
> block quote>>> second block quote>> end block quote图片与连接的插入区别:区别在于图片前需加一个 !格式:【图片为:![显示名字] (连接地址)】 【超链接为:[显示名字] (连接地址) 】
字体设置粗体:字符串前后均加上 **
斜体:字符串前后均加上 *删除线:字符串前后各加 ~~++ 下划线 ++字符串前后各加 ++== 字体背景色 ==
背景色文本内容
字体内容
颜色图标[https://blog.csdn.net/Payshent/article/details/70473953](htt ...


