python
菜鸟本菜
这个作者很懒,什么都没留下…
展开
-
python 迭代器
python 迭代器迭代时python访问集合元素的一种形式迭代器是一个可以记住遍历的位置的对象迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束。迭代器只能往前不会后退。迭代器又两个基本的方法:next(),iter()字符串,列表或元组对象都可用于创建迭代器list1 = [1, 2, 3, 4]# 创建迭代器对象it = iter(list1)for i in range(len(list1)): print(next(it))``![在这里插入图片描述原创 2022-02-19 16:41:20 · 570 阅读 · 0 评论 -
python nonlocal关键字
python nonlocal 关键字non - local 非局部变量如果两个嵌套函数,一个函数A里面又包含了一个函数B,那么对于B中的名称来说A中的作用域就为nonlocal作用域:enclosing作用域 —外层非全局作用域如果要在内层函数中修改外层变量,则需要用到 nonlocal 关键字def outer(): num = 10 print(num) def inner(): nonlocal num # 内层函数未定义此变量n转载 2022-01-11 23:46:20 · 1699 阅读 · 0 评论 -
python enumerate()函数
enumerate()函数python内置函数enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。names = ['aa', 'bb', 'cc']for temp in names: print(temp)for temp in enumerate(names): print(temp)for i, names in enumerate(names): print(i,原创 2022-01-09 21:09:02 · 413 阅读 · 0 评论 -
python_多值参数
—黑马程序员课程笔记多值参数:定义支持多指参数的函数有时可能需要一个函数能够处理的参数的个数是不确定的,这个时候,就可以使用多值参数。在python中有两种多值参数:参数名前增加一个可以接收元组;参数名前增加两个可以接收字典;一般在给多值参数命名时。习惯使用以下两个名字:args:存放元组参数;前面有一个;*kwargs存放字典参数,前面有两个;Args是变量arguments的缩写,有变量的含义;Kw是keywad的所需,kwargs可以记忆键值对参数; def demo(num,*args原创 2020-06-05 10:44:52 · 1594 阅读 · 0 评论 -
名片管理系统-python
黑马程序员课程中的综合应用-名片管理系统笔记系统要求:1.程序启动,展示名片管理系统欢迎界面,并显示功能菜单2.用户用数字选择不同的功能;3.根据功能选择,执行不同的功能;4.用户名片需要记录用户的姓名、电话、QQ、邮件;5.如果查询到执行的名片,用户可以选择修改或者删除名片步骤1、框架搭建2、新增名片3、显示所有名片4、查询名片5、查询成功后修改、删除名片6、让python程序能够直接运行TODO注释在#后面添加todo注释,提示需要做的事情,醒目提示...原创 2020-06-01 16:53:37 · 2793 阅读 · 0 评论 -
python 装饰器
转自:https://www.runoob.com/w3cnote/python-func-decorators.html装饰器:python的一个重要部分,简单的说是:修改其它函数的功能的函数,有助于让我们的代码更短。详情:https://eastlakeside.gitbook.io/interpy-zh/decorators# 装饰器# 一切皆对象,函数也是def add(a...转载 2020-01-08 14:50:43 · 180 阅读 · 0 评论 -
python作用域
python 官方文档-入门教程–201912119.2 python的作用域和命名空间namespace 命名空间:是一个从名字到对象的映射。不同命名空间中的名称之间没有绝对关系。在不同时刻创建的命名空间拥有不同的生存期。包含内置名称的命名空间是在python解释器启动时创建的,永远不会删除。模块的全局命名空间在模块定义被读入时创建。通常,模块命名空间也会持续到解释器退出。一个作用域...原创 2019-12-11 14:54:10 · 255 阅读 · 0 评论 -
python元组、序列、字典、集合
python 官方文档-入门教程–201912095 数据结构5.3 元组和序列列表和字符串有很多的共同特性,例如索引和切片,是序列数据类型元组也是元组和列表看起来很像,但它们通常是在不同的场景被使用,有着不同的用途,元组是不可变的,其序列通常包含不同种类的元素,并且通过解包或者索引来访问,列表是可变的,并且列表中的元素一般是同种类型的,并且通过迭代访问。一个特殊的问题是构造包含0...原创 2019-12-09 19:22:28 · 189 阅读 · 0 评论 -
python列表
python 官方文档入门教程201912095 数据结构5.1列表list.append(x)在列表的末尾添加一个元素。相当于 a[len(a):] = [x] 。list.extend(iterable)使用可迭代对象中的所有元素来扩展列表。相当于 a[len(a):] = iterable 。list.insert(i, x)在给定的位置插入一个元素。第一个参数是要插入的...原创 2019-12-09 16:42:18 · 219 阅读 · 0 评论 -
python lambda 表达式
python 官方文档入门教程201912094.7.6 lambda 表达式可以用 lambda 关键字来创建一个小的匿名函数。这个函数返回两个参数的和: lambda a, b: a+b 。Lambda函数可以在需要函数对象的任何地方使用。它们在语法上限于单个表达式。从语义上来说,它们只是正常函数定义的语法糖。与嵌套函数定义一样,lambda函数可以引用包含范围的变量:lamda a...原创 2019-12-09 15:54:06 · 272 阅读 · 0 评论 -
python解包参数列表
3.8.0 Documentation https://docs.python.org/zh-cn/3/python 官方文档入门教程201912094.7.5 解包参数列表当参数已经在列表或元组中,但要为需要独立位置参数的函数调用解包时,会发生相反的情况,例如,内置的range()函数需要单独的start和stop参数。如果它们不能单独使用,可以使用“*”操作符来编写函数调用以便从列...原创 2019-12-09 15:45:14 · 927 阅读 · 0 评论 -
python迭代器
《 Learning python》 chap19 函数的高级话题-迭代器20191208函数设计理念耦合性:1)对于输入使用参数并且对于输出使用return语句。力求让函数独立于它外部的东西2)只有在真正必要的情况下使用全部变量3)不要改变可变类型的参数,除非调用者希望这样做聚合性:每一个函数都应该有一个单一的,统一的目标;大小:每一个函数应该相对较小耦合:避免直接改变在...原创 2019-12-08 22:01:33 · 166 阅读 · 0 评论 -
python元组-不可变性
《 Learning python》 chap9 元组20191208元组是不可变数据类型# 元组的不可变性只适用于元素本身顶层而并非其内容t = (1,[2,3],4)t [1][0] = 'spam'print(t)运行结果 :(1, [‘spam’, 3], 4)列表和元组的区别:元组的不可变性,确保了在程序中不会被另一个引用修改,类似于常数...原创 2019-12-08 14:47:47 · 292 阅读 · 0 评论 -
python字符串
《 Learning python》 chap7 字符串索引和分片20191208字符串格式化表达式%s :字符串%c :字符%d : 十进制%i :整数%u:无符号整数%o: 八进制整数%x :十六进制整数%X:x,打印大写%e :浮点数%E :e ,打印大写%f : 浮点十进制%g : 浮点e 或f主要类型分类;数字(整数,浮点数,二进制,分数)支持加法和乘法...原创 2019-12-08 13:20:55 · 267 阅读 · 0 评论 -
python共享引用
《 Learning python》 chap6 变量、对象和引用20191208变量类型:变量永远不会有任何的和它先关联的类型信息或约束。类型的概念是存在于对象中而不是变量名中。变量原本的通用的,它只是在一个特定的时间点,简单地引用了一个特定的对象而已。变量使用:当变量出现在表达式中时,它会马上被当前引用的对象所替代,无论这个对象时什么类型。此外,所有的变量必须在其使用前明确地赋值,...原创 2019-12-08 11:05:15 · 237 阅读 · 0 评论 -
《数据结构与算法Python语言描述》学习笔记chap9排序
《数据结构与算法Python语言描述》学习笔记chap9排序20191207内排序和外排序在一个排序工作的执行过程中,如果待排序的记录全部保存在内存,这种工作就称为内排序,针对外存(磁盘、磁带等)数据的排序工作称为外排序。稳定性:对于待排序的序列里任意对排序码相同的记录,在排序之后的序列里,前后顺序不变,即稳定的算法能偶维持序列中所有排列码相同记录的相对位置。反之是不稳定的。适应性:如果...原创 2019-12-07 18:55:34 · 142 阅读 · 0 评论 -
《数据结构与算法Python语言描述》学习笔记chap8字典和集合
《数据结构与算法Python语言描述》学习笔记chap8字典和集合-----20191207数据检索:一是已存储的数据集合,另一方面是用户检索时提供的信息。具体检索 可以是确定特定数据是否存在于数据集中,相当于集合成员判断;也可以是希望找到与所提供信息相关的数据,类似于在字典里查词语的解释。后一种方式,检索时提供的信息被看作是检索码或关键码(key)。这种关键码也常作为数据的一部分,存储在...原创 2019-12-07 15:51:48 · 197 阅读 · 0 评论 -
《数据结构与算法Python语言描述》学习笔记chap6(5)二叉树
《数据结构与算法Python语言描述》学习笔记chap6(5)二叉树20191207# 二叉树类class BinTNode: def __init__(self,dat,left=None,right=None): self.data = dat self.left = left self.right = rightdef ...原创 2019-12-07 14:21:54 · 182 阅读 · 0 评论 -
《数据结构与算法Python语言描述》学习笔记chap6(3)优先队列
《数据结构与算法Python语言描述》学习笔记chap6(3)优先队列20191201优先队列作为缓存结构,优先队列与栈和队列类似,可以将数据元素保存其中,可以访问和弹出。优先队列的特点是存入其中的每项数据都另外附有一个数值,表示这个项的优先程度,称为其优先级。优先队列应该保证,在任何时候访问或弹出的,总是当时在这个结构里保存的所有元素中优先级最高的。如果该元素不弹出,再次访问还将得到他。...原创 2019-12-06 19:26:54 · 185 阅读 · 0 评论 -
python飞机大战笔记(8)--敌机设置
敌机设置1.定时器2.定义并且监听创建敌机的定时器事件;3.设计并准备敌机类4.定时创建并显示敌机精灵5.随机位置及随即速度6.销毁飞出屏幕的敌机1)使用定时器添加敌机敌机的出现规律:1.游戏启动后,每隔1秒会出现一架敌机;2.每架敌机向屏幕下方飞行,飞行速度各不相同;3.每架敌机出现的水平位置也不尽相同4.当敌机从屏幕下方飞出,不会再飞回到屏幕中定时器:每隔一段时间,去...原创 2019-11-19 17:09:56 · 1143 阅读 · 0 评论 -
python飞机大战笔记(12)---简易版代码实现
plane.main.py#主游戏类import randomimport pygameimport plane_spriteclass PlaneGame(object): """飞机大战主游戏""" def __init__(self): #1.创建游戏窗口--矩形对象的size属性就是元组 self.screen = pygam...原创 2019-11-20 09:54:34 · 550 阅读 · 0 评论 -
python飞机大战笔记(11)--碰撞检测
pygame提供了两个非常方便的方法可以实现碰撞检测:pygam.sprite.grupcollide():实现子弹撞毁敌机,两个都销毁两个精灵组中所有的精灵的碰撞检测def groupcollide(groupa: Any,groupb: Any,dokilla: Any,dokillb: Any,collided: Any = None) -> Dict[Any, list...原创 2019-11-20 09:51:51 · 711 阅读 · 0 评论 -
python飞机大战笔记(10)--发射子弹
英雄需求:1)游戏启动后,英雄出现在屏幕的水平中间位置,距离屏幕底部120像素;2)英雄每个0.5s发射一次子弹,每次连发三枚子弹;3)英雄默认不会移动,需要通过左/右方向键,控制英雄在水平方向移动;添加发射子弹事件pygame的定时器的套路非常固定:1)定义定时器常量–eventid2)在初始化方法中,调用set_timer方法 设置定时器事件;3)在游戏循环中,监听定时器事件...原创 2019-11-19 21:51:34 · 1208 阅读 · 0 评论 -
python飞机大战笔记(9)英雄飞机设置
设置英雄类和子弹类新建hero类,重写初始化方法,直接指定图片名称,并且将初始速度设置为0,设置英雄的初始位置;class Hero(GameSprite): """英雄精灵""" def __init__(self): # 1.调用父类方法,设置image和speed super().__init__("./images/me1.png",0...原创 2019-11-19 21:27:57 · 338 阅读 · 0 评论 -
python飞机大战笔记(7)--游戏背景滚动显示
背景交替滚动:游戏启动后,背景图像会连续不断地向下方移动;在视觉上产生英雄的飞机不断向上方飞行的错觉;即:游戏的背景不断变化;游戏的主角未知保持不变;在屏幕上,竖直叠放两张背景图像;将第一个图像一处屏幕后,将第一张图像凭借到第二个图像的上方;当第二张图像移出屏幕后 ,第一张接到上方,以此循环。1)创建两张背景图像;第一张完全和屏幕重合;第二张在屏幕的正上方;2)两张图像一起向下运动...原创 2019-11-19 16:30:34 · 1107 阅读 · 1 评论 -
python飞机大战笔记(6)--框架搭建
游戏初始化:设置游戏窗口;创建游戏时钟;创建精灵,精灵组游戏循环:设置刷新帧率;事件监听;碰撞检测;更新/绘制精灵组;更新屏幕显示使用面向对象设计飞机大战游戏类明确主程序职责:1)游戏初始化;2)游戏循环主程序类:plane_main:游戏主程序1)风转著游戏类;2)创建游戏对象;3)启动游戏plane_sprites:屏幕尺寸常量,游戏精灵子类1)封装游戏中所有需要使用的精灵子类;...原创 2019-11-18 22:00:18 · 183 阅读 · 0 评论 -
python飞机大战笔记(5)--精灵和精灵组
精灵和精灵组在之前的案例中,图像加载,位置变化,绘制图像都需要程序员编写代码分别处理;为了简化开发步骤,pygame提供了两个类pygame.sprite.Sprite----存储图像数据image 和位置rect的对象;pygame.sprite.Group派生精灵子类:1)新建plane_sprite.py文件;2)定义GameSprite继承字pygame.sprite.Spr...原创 2019-11-18 20:56:06 · 822 阅读 · 0 评论 -
python飞机大战笔记(4)--监听事件
在游戏循环中监听事件事件event就是游戏启动后,用户针对游戏所作的操作;例如:点击i关闭按钮,点击鼠标,按下键盘…监听在游戏循环中,判断用户 具体的操作;只有捕获到用户具体的操作,才能有针对性的做出响应。代码实现:pygame中通过pygame.event.get()可以获得用户当前所做动作的事件列表:用户可以同一时间做很多事情;这段代码非常的固定,几乎所有的pygame游戏都大...原创 2019-11-18 11:51:59 · 575 阅读 · 0 评论 -
python飞机大战笔记(3)--游戏循环和游戏时钟
如何移动飞机?游戏中的动画实现原理跟 电影的原理类似,游戏中的动画效果,本质上是快速的在屏幕上绘制 图像(电影是将多张静止的电影胶片、连续的播放,产生连贯的视觉效果)一般在电脑上每秒描绘60次。就能够达到非常连续高品质的动画效果;每次绘制的结果被称为帧Frame游戏循环意味着游戏的正式开始游戏初始化–>设置游戏窗口–>绘制图像初始位置–>设置游戏时钟游戏循环:设...原创 2019-11-17 19:54:14 · 840 阅读 · 0 评论 -
python飞机大战笔记(2)--图像绘制
在游戏中,能看到的游戏元素大多都是图像图像文件初始是保存在磁盘上的,如果需要使用,第一步就需要被加载到内存要做屏幕上看到某一个图像的内容,需要三个步骤1)使用pygame.image.load()加载图像的数据;2)使用 游戏屏幕 对象, 调用blit方法 将图像绘制到指定位置;3)调用pygame.display.update()方法更新整个屏幕的显示要想在屏幕上看到绘制的结果,一定...原创 2019-11-17 17:44:00 · 455 阅读 · 0 评论 -
python飞机大战笔记(1)--创建主窗口
–源于黑马程序员python课程1.Pygame 安装2.导入素材图片把一些精致的图像绘制到游戏窗口,根据用户的交互,或其它情况,移动这些图像,产生动画的效果;1.1游戏的初始化和退出Pygame.init():导入并初始化所有pygame模块,在使用其他模块之前,必须先调用init方法;Pygame.quit() 卸载所有pygame模块,在游戏结束之前调用1.2游戏中的坐标系远...原创 2019-11-17 17:10:15 · 484 阅读 · 0 评论 -
python飞机大战笔记(0)--安装pygame
pygame 安装在pycham中安装pygamefile—>setting—>project–>Project Interpreter—>+号—>搜索pygame–>install右侧显示已经安装过的文件,点击右上角加号,安装python包搜索pygame,左下方选择install...原创 2019-11-16 20:01:41 · 204 阅读 · 0 评论 -
《数据结构与算法Python语言描述》学习笔记(1)--单链表
《数据结构与算法》Python语言描述–裘宗燕–学习笔记(1)20191124chap1 绪论1.程序开发过程程序开发就是根据面对的问题,最终得到一个可以解决问题的程序的工作过程。分析阶段;设计阶段;编码阶段;检查测试阶段;测试/调试阶段;2.数据结构及其分类数据结构:研究数据之间的关联和组合的形式。典型的数据结构:1)集合结构:数据元素之间没有需要关注的明确关系;2)序...原创 2019-11-24 15:08:13 · 339 阅读 · 0 评论 -
《python编程从入门到实践》笔记(5) --chap11 测试代码
《python编程从入门到实践》笔记(5) ------20191123chap12 测试代码使用python中的unittest中的工具来测试代码。python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个问题没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含对所有这...原创 2019-11-23 17:48:30 · 165 阅读 · 0 评论 -
《python编程从入门到实践》笔记(4)--chap10 文件和异常
《python编程从入门到实践》笔记(4) ------20191123chap 10 文件和异常学习处理文件。让程序能够快速地分析大量的数据;学习错误处理,避免程序在面对意外情形时崩溃,学习异常:它时python创建的特殊对象,用于管理运行时出现的错误;学习模块json,能能够保存用户数据,以免在程序停止运行后丢失。新建txt文件README 存储内容:3.1415926535...原创 2019-11-23 16:31:12 · 188 阅读 · 0 评论 -
《python编程从入门到实践》笔记(3)
《python编程从入门到实践》笔记(3)–20191122chap 8 函数8.1 传递实参1.位置实参调用函数时,python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的饿关联方式是基于实参的顺序,这种关联方式被称之为位置实参。2.关键字实参关键字实参是传给函数的名称----值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字...原创 2019-11-22 22:01:44 · 108 阅读 · 0 评论 -
《python编程从入门到实践》笔记(2)
《python编程从入门到实践》笔记(2) ----20191122chap5 if语句1.检查多个条件 and or2.检查特定值是否包含在列表中: in not in#1.检查特定值是否包含在列表中:requesed_toppings = ['mushrooms','onions','pineapple']print('mushrooms' in requesed_topping...原创 2019-11-22 10:56:41 · 160 阅读 · 0 评论 -
《python编程从入门到实践》笔记(1)
《python编程从入门到实践》笔记(1)第一部分 基础知识chap1 搭建编程环境chap2 变量和简单数据类型1.变量的命名和使用1)变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。2) 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_mes...原创 2019-11-21 19:09:08 · 209 阅读 · 0 评论 -
《数据结构与算法Python语言描述》学习笔记chap6(1)二叉树
《数据结构与算法Python语言描述》学习笔记chap6(1)二叉树20191201出现502的原因是:连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错。解决办法:刷新树形结构由结点和结点之间的连接关系构成,最重要的特征包括:1)如果一个结构不空,其中就存在着唯一的起始结点,称为树根。2)按结构的连接关系,树根外的其余节点都且...原创 2019-12-01 14:43:50 · 193 阅读 · 0 评论 -
《数据结构与算法Python语言描述》学习笔记chap6(2)表达式树
《数据结构与算法Python语言描述》学习笔记chap6(2)表达式树二叉树的简单应用:表达式树20191201数学表达式具有分层次的递归结构,一个运算符作用域相应运算对象,其运算对象又可以是任意复杂的表达式。二元表达式:可以映射的二叉树1)以基本运算对象(数和变量)作为叶结点中的数据。2)以运算符作为分支节点的数据:其两棵子树都是它的运算对象;子树可以是基本运算对象,也可以是任意...原创 2019-12-01 14:42:29 · 186 阅读 · 0 评论