Day12 正则表达式
本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
re模块正则表达式
正则表达式:被用来检索(主要用途)、替换符合某个规则的字符
re模块和正则的关系:先有正则后有re模块(C语言编写,速度快), re是python中用来实现正则功能的模块
mach()
匹配符合正则表达式规则的字符串 mach(pattern,data,flag=0)
案例(无标志位flag):
123456789import re # 导入re模块strData = 'hello world' # 字符串数据res = re.match('h', strData) # 两个参数分别代表:正则表达式、字符串数据if res: print('匹配成功') print(res.group()) # 使用res.group()返回匹配结果else: print('匹配失败')
运行结果:
案例(有标志位flag):
12345678 ...
Day11 文件操作和模块
本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
文件打开关闭打开
使用open函数,可以打开已存在的文件或者创建一个新文件
语法格式:
1open('文件名称','打开模式') # 打开模式也要使用引号
示例:
1open('test.txt','w')
文件打开模式:
案例:使用w打开模式,打开Test.txt文件
1open('./Test.txt', 'w') # 打开一个不存在的文件
运行结果:
注意:打开模式为w时,若文件不存在则会自动创建
关闭12fobj = open('./Test.txt', 'w') # open函数返回文件对象,使用fobj接受这个对象fobj.close() # 使用:文件对象.close() 关闭打开的文件
文件的写入
将 hello world 写入test.txt 文件中
...
Day10 项目-飞机大战游戏
本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
项目需求
存在四个对象:
我方飞机
敌方飞机
我方子弹
敌方子弹
功能:
背景音乐的添加
我方飞机可以移动【根据按键来控制的】
敌方飞机也可以移动【随机的自动移动】
双方飞机都可以发送子弹
步骤:
创建一个窗口【搭建界面】
创建一个我方飞机,根据方向键左右的移动【键盘监测】
给我方飞机添加发射子弹的功能【按下空格键去发送】
创建一个敌人飞机
敌人飞机可以自由的移动
敌人飞机可以自动的发射子弹
环境安装和调试安装pygame
利用SDL(C语言编写)库编写的python游戏库,需要手动安装
安装库:
1pip install pygame
安装完成:
注意:可能会因为网络原因下载中断导致安装失败,建议科学上网。
验证安装:
1pip list
运行结果:
搭建环境
新建python项目:
注意:要勾选红框中的内容,代表使用新的虚拟环境。
导入pygame文件:
点击下方Terminal:
输入:pip lis ...
Day09 面向对象基础(下)
本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
私有化属性
有些属性不想让别人随意修改或者防止被意外修改,就要对属性进行私有化
基本概述
定义:
为了保证属性安全(不能被随意修改),可以将属性定义为私有属性
使用场景:
属性不想被类的外部直接调用
属性值不想随意被改变
不想被子类继承
语法:
12class Person: __name = '张三' # 属性名前加两个下划线将该属性私有化
使用私有属性
案例:验证实例属性私有化后在类的外部不可调用
1234567891011class Person: def __init__(self): self.name = '张三' # 实例属性 self.__age = 17 # 私有属性 pass pass p1 = Person() print(p1.name) # 打印实例属性
...
Day08 面向对象基础(中)
本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
析构方法
当一个对象被删除或者被销毁时,python解释器默认会调用一个_del_()方法也叫析构方法。
方法特点
_del_()方法是一个魔术方法
程序运行结束会释放所有内存,就是通过调用del方法实现的
在程序中删除一个对象也会调用del方法
使用方法
情况一:程序结束,解释器自动调用del方法释放内存:
12345678910class Animal: def __init__(self, name): self.name = name print('对象【{}】已经创建!'.format(self.name)) def __del__(self): print('正在回收内存,对象【{}】已被删除!'.format(self.name))cat = Animal('小花猫')
运行结果:
情况二: ...
Day07 面向对象基础(上)
本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
编程思想
面向过程:根据业务逻辑从上到下写代码
函数式:封装到函数中便于以后调用,对比面向过程减少了代码量
面向对象(oop):采用对象的概念建立模型
类和类的对象概念
类:是具有一组相同特征【属性】和行为【方法】的对象集合
对象:是实实在在的东西,也是类的实例化,具体化
关系类是对象的抽象化,对象是类的一个实例
类的抽象
案例1:小明开着宝马车去逛街
小明 -> 人【类】
类名:人
属性:年龄、身高等
方法:吃饭、睡觉等
宝马车 -> 车【类】
类名:车
属性:颜色、排量等
方法:前进、倒车、加速等
案例2:坦克大战中的类
坦克【类】
类名:坦克
属性:血量
方法:发射子弹、移动等
墙【类】
类名:墙
属性:血量、类型
行为:阻挡
子弹【类】
类名:子弹
属性:威力
行为:移动
定义类、创建对象定义类
格式
123class 类名: # 注意:类名使用大驼峰命名法(首字母大写),可以不加括号,后面会详细写 属性 方 ...
Day06 内置函数
本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
内置函数
是什么?
为便于我们使用,python自带的一些函数(print …)
有什么?
注意:更多内容可以到 这里 查看!
数学运算
绝对值函数(abs)
1print(abs(-10), abs(10))
运行结果:
取近似值(round)
无位数限定:
1print(round(3.5))
运行结果:
注意:无位数限定时默认取整。
位数限定:
1print(round(3.555, 2))
运行结果:
求次幂(pow)
12print(pow(2, 3)) #方法一print(2 ** 3) #放法二
运行结果:
求最大、小值(max、min)
12print(max([10, 2, 3, 5, 2, 4, 5])) #从单个列表中选出最大值print(max(10, 2, 3, 5, 2, 4, 5)) #从多个数中选出最大值
运行结果:
如果是多个列表怎么比较?
1print(max([10, 2, 3, ...
Day05 函数(中)
变量局部变量
简单使用:
12345def setName(): name = 'peter' #局部变量 print(name)setName() #调用函数
作用:临时保存数据,需要在函数中定义来进行存储。
特点:
在函数内部定义的变量,作用域仅局限在函数内部
1234def setName(): name = 'peter' #局部变量print(name) #打印name
运行结果:
不同的函数可以定义相同名称的局部变量,不会产生影响
12345678910def setName1(): name = 'peter' print(name)def setName2(): name = 'Bob' print(name)setName1()setName2()
运行结果:
全局变量
使用:
12345678910age = 10 #全局变量def setName1(): print(age)def setName2(): ...