一、输入和循环
用户输入:函数input(“输出的文本内容”)——等待用户输入,返回字符串 函数int(字符串)——字符串变数字,返回数字
while循环: for循环用于针对集合中的每个元素(遍历),while循环不断执行直到满足特定条件。
格式:
while 条件:
操作;
for->遍历列表,但不应修改,否则py将难以追踪元素。 while->遍历时修改。
二、函数
py的函数好方便,想怎么用就怎么用
定义:
def 函数名(参数)
函数体
return
- 位置实参——按位置给形参传值,普遍的
- 关键字实参——形参名 = 实参——指定实参给哪个形参(A=a,B=b)——不会出错,顺序可变
- 参数可以有默认值
列表当参数——直接传列表名就OK,fun(A),A是列表名,与使用数组一样
传任意个数的实参——形参用*k来写 形参——(*k)——会在函数中创建一个名为k的元组,传几个参数都放元组中,一个也是(太方便了)
形参(A,*b)——第一个给A,剩下的都给b 形参(**a)——创建名为a的字典,并接收任意数量的键值对 如:实参列表:(K,‘name’ = ‘a’,‘age‘ = 25)——K是普通参数,剩下的需要**a,即字典接收。
模块——.py文件(好像啥都是),里面有函数的定义(def)
导入:import A,导入A——使用A的函数时,要A.点出来
导入特定函数: from A import B——从A模块中导入B(函数名) 注:可以一次导多个(B,C,D……),这时再使用就不用.点出来了,可以直接用
给导入的函数起别名: from A import B as C——C是B的别名 给导入的模块起别名: import A as B——B是A的别名 导入所有函数:(不好,可能会有函数被覆盖) from A import *
三、类
注:init前后是两个下划线,为什么就没有书强调这一点??? self——指向自己,不用传(感觉和this指针可能差不多)
在构造函数中可以直接定义类的属性(因为py不用定义变量就能直接用),但每个属性要有初始值。
方法和函数没有区别,就是要加self参数 方法
def fun(self,参数):
函数体;
访问成员属性——点出来
-
类的实例化:对象 = 类(构造参数); -
继承: class Dog(父类): 创建子类时也要把父类给搞定了,用子类的构造函数实现父类的创建。 在子类的构造函数中可以使用特殊函数:super(),将父类和子类关联起来,在子类中调用父类的构造函数:super().init(传入父类构造函数的参数);(C++初始化父类太绕了……晕) -
重写——子类重写父类函数:函数名相同覆盖就OK -
导入类:还是.py文件 form A import B——从A(文件名)中导入B(类名) form A import *——导入所有类
五、文件操作
-
打开文件 with open(‘文件名’) as B:
‘文件名’——是一个字符串,可以用变量替换 B——文件对象(类似fp指针,FILE结构体变量) with——py自己看啥时候关,不用close了(py太省心了)
-
读文件—— B.read()——返回字符串形式,读到最后一个字符会多返回一个空字符 -
文件路径: 1.在py程序的子文件夹中——‘子文件夹名\文件名’ 2.绝对文件路径:‘C:\文件夹\文件夹\……’ -
逐行读取: 先打开,再——for line in B:——行遍历(每行末尾有个回车,可以用rstrip()去掉)
注:with返回的对象只有在with中才有效,想在别的地方用要把每行放列表中:lines = B.readlines()
方式 r——只读(默认) w——格式化写入 a——追加 r+——读写
对w和a,文件不存在则创建
六、异常处理
异常处理:try——expect(和try——catch差不多) 异常处理可以保证程序的顺利执行,而不中断 1.除0:ZeroDivisionError
try:
代码块
expect ZeroDivisionError:
处理
当try代码块发生异常,expect查找对应异常的处理办法(这里给了除0的)
try:
expect:
else:
其中else部分是try is OK的时候进入执行的。
2.FileNotFoundError——文件不存在
-
异常时什么都不做:pass语句 expect ……:
pass
七、数据存储:json模块
import json
存——json.dump(待存放数据,文件对象(fp)) 待存放数据可以是列表,字典
读——json.load(文件对象)
八、杂记
字符串方法replace()——可以把字符串中的特定部分换掉 A.replace(‘待换的’,‘换成什么’)
方法A.split()——根据字符串创建一个列表,包含字符串中的单词
函数返回空:return None
|