python教程
文章平均质量分 56
永远的麦田
资深程序员,爱程序,爱生活
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
由读写arrow引发的对时间时区的思考
好,总结一下时间转换,df中的时间一般从数据库中读取或是csv中读取默认都没有时间印记,但因为我们是在中国,所有人都认为看到的时间为东八区,因此存入arrow前先做时区调整,将之本地化东八区,然后转成格林时间,再消除时间印记,存入arrow中,这样所有人从arrow中读取的时间都是格林时间,互相就对得上了。if not df['time'].dt.tz: 表达的为如果没有时区印记,即没带上时区信息,就先默认为东八区的时间本地化,再将之转换为格林时间,最后将时区印记抹除(抹除的原因是防止C++读取时出错)原创 2024-05-15 14:48:13 · 374 阅读 · 0 评论 -
pygame10 扫雷游戏3
上一节课我们完成了扫雷游戏地图中雷数量的显示,今天我们将把雷的生成做出来。原创 2023-03-05 11:56:13 · 673 阅读 · 0 评论 -
pygame9 扫雷游戏2
其中cover是我们之前所写的整个20*20的方格块,且每个格子的大小为25*25 game_map是我们即将实现的新类,此类中用来标明每个小格子中存放的是地雷还是表示地雷数量的数字。获取到鼠标按下时的坐标值。很明显,此类中应该首先包含一个表格,此表格每行应有格子20个,然后有20行,与前面cover中表示的格子一致。2 再点击格子时,发现是地雷,将其存储到red_point中,使得在显示雷时,格子是红色的。moves是标记每一格的上下左右和斜上,斜下8个方向的相对距离。确认是鼠标左键被按下。原创 2023-03-05 08:37:12 · 598 阅读 · 0 评论 -
pygame8 扫雷游戏
看起来是需要设计一个列表,其长度是20,宽度也是20,每一个方格都是一个25像素的正方形,画的时候可以用一个循环,将列表中的方格依次用draw.rect画出来。这儿注意的是方格是宽高都为25,但真正画的时候宽高应该少一个像素,原因是画满的话格子边界就会混在一起,看不出来了。从图上可以看出是一个20*20的方格列表,我们可以定义一个类Cover 将关于怎样画这些小方格包在里面,更新屏幕主要分三部分,首先是刷白屏幕,然后是画出覆盖物,最后是将缓存更新到屏幕。分别对应为运行游戏主逻辑,事件检测,更新屏幕。原创 2023-02-19 10:54:17 · 1190 阅读 · 0 评论 -
pygame7 弹球游戏2
做一个球洞比较简单,直接在while True中用circle画一个黑色的圆即可,当然,在此之前我们要思考洞的位置,可放在右下角,用到pygame为我们提供的Rect。这样当鼠标左键按下时,球就被打出来了,由于平常的速度在2至4左右,这个计算出来的距离有点大,我们取其中的十分之一作为速度。然后我们发现当A撞击B,B撞C时,新的情况出现了,B和C在那不断抖动,猜想可能是撞击完后没能实现各自的速度取返。原因是被撞的球此时速度已经为0了,此时再怎么取返,速度都为0,因此需要重新考虑。这样,我们改一个crash。原创 2023-02-11 23:47:54 · 489 阅读 · 0 评论 -
pygame6 弹球游戏
pygame.mouse.get_pos(): 获取鼠标当前点的坐标pygame.mouse.get_pressed()[0]: 获取鼠标左键是否为点击。原创 2023-01-14 18:10:11 · 980 阅读 · 0 评论 -
pygame5 动画精灵和碰撞检测
那么这个小球首先会有变量image,就是从物理图片中加载入内存的变量,然后应该有一个大小size,还有一个位置point,这两个可以合并为rect(x, y, width, height), 还有一个表示左右移动的速度和上下移动的速度speed[x,y]移动的逻辑是:每次移动speed的距离(speed指的是向横移动x,向纵移动y)并更新rect,若到最左边或是最右边,则speed的x方向取反,若到最上边或最下边,speed的y方向取反。这样,我们就完成了球的定义和移动的逻辑。2)移动球并更新位置。原创 2022-12-11 00:01:35 · 1063 阅读 · 1 评论 -
pygame4 练习课
代码如下:2 pygame的窗口消息前面可以显示一个最简单的白色屏幕内容,但整个窗口无法操作了,是因为我们没有设置窗口的响应事件,一般每个pygame程序都有一个无限循环用来处理各种窗口事件:以上代码只是处理了当窗口收到退出事件时,整个程序退出surface通常是screencolor表示的是颜色,即rgb的值,红色为[255, 0, 0]center:表示圆心坐标,平面上的坐标通常是两个值,比如窗口中心[320, 240]radius:表示直径,我们可以指定为100width:默认为0原创 2022-12-03 18:50:23 · 1436 阅读 · 0 评论 -
pygame3 图像
屏幕上画矩形,圆,或是画点,画曲线只是制作图形的一种方式。有时候我们还想用从别处得来的图片显示在我们的程序中。原创 2022-11-13 10:38:29 · 1176 阅读 · 0 评论 -
pygame2 画点线
如果我们只是想改变某些像素的颜色,用draw.rect通过小矩形来做就有点浪费资源,可以用screen.set_at([x, y], [0, 0, 0])来实现相同的效果。由于plotPoints是一个数组,因此我们需要先根据x值计算出所有的y值,然后将x,y成队的加入到数组plotPoints中,最后再通过lines一次性画出整个曲线来。二中画的曲线,如果仔细看就会发现中间不是连续的,点与点之前存在间隙。需要注意的是,矩形的线宽须是1,而不是平常写的为0,这是因为矩形太小了,没有中间部分可以填充。原创 2022-11-05 10:37:01 · 985 阅读 · 0 评论 -
pygame 初识
pygame是做游戏的第三方库,首先安装pygame注意: -i及之后的是防止不能访问国外网站,转用清华源进行安装安装成功大至会出现图中圈出来的Successfully字样。原创 2022-10-29 07:58:54 · 1575 阅读 · 0 评论 -
python的模块
类似于乐高积木一样,更大程序中可以拆开独立的一部分。一个模块可以是一个文件或是多个文件的集合。原创 2022-10-22 08:57:59 · 1172 阅读 · 0 评论 -
python类的封装,继承和多态
在这个例子中实际的变量是self._name, self._age, 外界看不出来,以为还是self.name, self.age。实际上对于人的名字和年龄是不能随便改的,因此我们需要使用一个技术“隐藏”,使得外界只能看,不能改。验证:print(super()._age) # 这儿会报错,说找不到对应的变量。1 Person为父类,Student为子类,子类拥有父类的一切特性(属性和方法)2 super()函数可以调用一切父类的属性和方法(被隐藏的除外)原创 2022-09-25 11:48:30 · 1538 阅读 · 0 评论 -
python中的对象
1 direction,color,size这些内容在对象创建时不存在,是在对象创建完成后创建的。一般情况下我们不这样做,通常我们在创建对象时会将需要的属性都设置好,这称为初始化对象。在类定义时,可以定义一个特定的方法,名为__init__(),每次类被实例化时,都会调用这个方法。我们希望对象打印的内容:这是一个什么颜色的球。此时系统默认调用一个魔法函数。给实例加上属性并调用其方法。2 类名(Ball)原创 2022-09-17 23:47:11 · 561 阅读 · 0 评论 -
python中列表和字典的应用-一个简单的考试系统
1 之前我们学习了列表,知道列表可以用来存储一组数据,可以增删改查,可以遍历2 之前我们学习了字典,知道字典可以用来存储键值对,与列表类似,字典也可以进行增删改查,同样也可以遍历这节课我们利用学到的这两种类型的数据结构做一个练习一个简单的考试系统:这个系统有以下几个部分:1)使用系统需要先登录,只有输入正确的用户名和密码才能进入,否则会一直要求输入正确的用户名和密码2)登录成功后,通过随机分配的方式,分配一组考试题3)考试结束后会输出用户名和考试分数考试系统需要两样数据,一是用户信息,另一个是考试的题库我们原创 2022-06-03 06:55:14 · 491 阅读 · 0 评论 -
python字典
通过列表,我们可以将同类的数据按照顺序去排列,但是在取数据的时候,只能通过下标去获取。这样有许多不便之处:1.不是所有的数据都需要按照顺序去排列,比如学生的姓名。2.对于数据缺乏相应的描述,通过下标很难知道要取的数据是什么意思,比如得分数据,如果只用列表,你很难知道这个得分是哪个学生的。3.如果一个数据需要保存多个属性,比如不仅需要学生的分数,还需要学生的身高,性格,爱好等,用列表很难描述清楚。所以我们需要一个新的数据类型来帮助我们存储这些复杂的数据,这就是要用到的字典。1 创建字典原创 2022-05-29 11:54:31 · 914 阅读 · 0 评论 -
python冒泡排序
假设有一个数组arr = [6, 4, 3, 1, 2]需要按从小到大的顺序排序,用眼睛一眼就看出来怎么排了,用程序该如何实现呢冒泡排序的规则:1 相邻两个数比较,若前面的数大小后面的数,交换位置2 再按1的规则进行排序,直到所有数都排好序为止使用程序来模拟前面的规则,为了便于理解,我们先用数据来实际模拟一遍原始数据集:6, 4, 3, 1, 2第一轮结果:4, 3, 1, 2, 6第二轮结果:3, 1, 2, 4, 6第三轮结果:1, 2, 3, 4, 6第四轮结果:1原创 2022-05-22 12:23:43 · 276 阅读 · 0 评论 -
python函数(三)
1 返回数组:函数不仅可以返回1个值或多个值,还可以返回数组:举例说明:import randomdef generate_list(): random.seed(20220522) arr = [] for i in range(5): a = random.randint(0, 100) arr.append(a) return arrprint(generate_list())2 不定参数有些函数需要容原创 2022-05-22 11:05:44 · 195 阅读 · 0 评论 -
python函数(二)
一 值传递简单的说值传递不会改变函数外面的情况,例如def eda(a): a = a+1 print("in", a)a = 3eda(a)print(a)可以看到不管函数内部a怎样变化,一旦出了函数,a的值又还原成了原来的数通常不可变类型作为函数参数,皆为值传递二 引用传递传递的变量在函数内的改变会影响函数外的情况,例如:def init_list(a): a.append(3) a.append(5)a = []init_原创 2022-05-15 12:01:32 · 263 阅读 · 0 评论 -
python函数(一)
函数定义1 def 关键字2 函数名3 参数组4 返回值定义一个打印*号的函数def stars(): print("*" * 10)def stars2(n): print("*" * n)函数调用stars()stars(20)函数值的返回返回单个参数def add(a, b): return a + bc = add(a, b)print("a + b" = c)返回多个参数(元组)defswap.原创 2022-05-15 11:32:56 · 229 阅读 · 0 评论 -
可变类型与不可变类型
复习:1 标签与地址的关系变量类似于贴在抽屉中的一个标签,真正的内容是放在抽屉里的。标签的作用类似于地址,只不过地址是给机器看的,标签是给人看的。获取变量的真正地址用id()来进行。2 基础的数据类型基础的数据类型有 数字类型和字符串,数字类型包含整型和浮点型例如数字:1, 2, 3.0, 3.5字符串:"1", "2", '3', '4.0', 'man'3 较复杂的数据类型:列表lista = [3, 5, 7,10]4 创建变量的过程a = 2b = 3原创 2022-05-15 10:53:02 · 260 阅读 · 0 评论 -
python基础--列表
含义当我们需要将50个学生的分数按照顺序全部记录到电脑里面,如果用一个变量名去指向一个分数,那我们就需要创建50个变量,这样做太麻烦了。所以需要有一个数据类型,可以一次性的将50个学生的分数按照顺序依次记录进去,这就是列表。基本操作01取数据取出Scores里面的数据和取字符串的很类似,也是通过索引来取,最左边是0,往右依次加1。除了取出单个的元素,列表也可以利用切片操作取出指定范围的元素:第一个:前的数字表示取值的初始位置索引,第一个:后的表示取值减一的位置索引(.转载 2022-05-01 08:39:06 · 468 阅读 · 0 评论 -
python基础--九九乘法表
考虑生成如下乘法口诀表:可以分为几步来考虑:1、只生成第一列:数据有9行,每行的被乘数为行号,乘数不变,可以用一个循环搞定:def one_col(row): for i in range(1, row+1): print("{}*1={:2d}".format(i, i*1))2、只生成最后一行最后一行的数据被乘数都是9,乘数是每列的列号,看起来也可以用for循环搞定,唯一的问题,print默认是一行行打印的,需要在print函数中增加参数end=".原创 2022-05-01 08:24:22 · 1786 阅读 · 0 评论 -
python变量与内存
一、变量与内存的结构关系python的变量类似于标签的作用,内容散布于内存中,为了方便管理,用变量把这些内存中的内容标示出来。如下图所示:一般python的内存结构以64字节为一个单位,随便在python中申明变量abcdef,并赋上值,对应的内存结构大致是这样:需要注意的是,分配出来的内存可能是连续的,下一个内存比上一个内存多64个字节,也可能是不连续的,为64个字节的倍数。这样就可以看出来,变量a或是b只是一个标签,指向实际的内容,方便人类识别他们代表什么东西。如果把a指向的值赋原创 2022-03-16 10:16:03 · 3222 阅读 · 0 评论 -
python基础知识--常见的数据结构
常见的数据类型1含义数据类型就是不同的数据形式。为什么会有不同的数据类型?在计算机中我们需要处理不同的数据,比如文本字符数据,数字类型的数据,包含多个数据的列表等。在不同的应用场景下需要设置不同的数据类型,不同的数据类型间也需要相互转换。数字类型常见的数字类型有整型(1,2,3),浮点型(1.1,2.1,3.1),布尔类型(True,False)等(注意:python3中布尔也属于数字类型,True==1,False==0)当任务中的某些功能涉及到数据的时候,我们就需转载 2022-03-11 17:47:27 · 387 阅读 · 0 评论 -
python基础--输入输出
输入输出含义输入输出是程序中的基本要素之一。我们通常会用程序去完成很多事情,包括制作游戏,软件等,这些都涉及到大量的数据交互,数据不仅仅只是数字,在计算机里面它包含了图片,字符,音乐等等。输入就是我们要交给程序去处理的一些数据,可以是通过键盘输入的字符,也可以是通过麦克风输入的语音。输出就是程序处理完这些数据后,呈现在我们眼前的东西,比如你在屏幕上看到的游戏动画,子弹发射出去爆炸等,都是根据程序输出的结果。输出在python的基本语法中,输出比较简单,通过print()函数你就.转载 2022-03-11 17:42:07 · 5071 阅读 · 0 评论 -
Python基础--变量
转自:Python基础--变量变量含义变量的作用就是用来临时存储数据。因为有些数据需要暂时保存起来,等下再去使用。 比如游戏中常见的得分,你需要记录上一次玩家的得分,才能计算出本次玩家的得分,所以需要暂时将上一次的得分数据保存在一个地方。且因为得分是不断变化的,但是保存的位置是不变的,所以可以通过一个变量来存储变化的数据。示例在python中,通过a = 1 就可以定义一个变量。我们将1这个数字数据暂时存在了a这个变量里。“=“在编程里面叫做赋值符号,表示将...转载 2022-03-11 17:37:42 · 608 阅读 · 0 评论
分享