python 学习知识点简记
Python学习笔记
1. 输出变量
“nihao {}”.formate(name) -> nihao lirong (name=lirong)
print(“你的身高是:%d”%high) %d:int %s:string
2. 赋值
age = Input(“请输入年龄”) #默认是string类型
3. 类型转换
Age = Int(str) #str -> int
4. if else
If age > 18: #用tab键代替大括号
Print(“XXX”)#不满足if不执行
Print(“XXX”)#不满足if不执行
Print(“XXX”) #执行
If条件: if 数字: 数字:0 false 非零:True
If 空字符串,空数组,空列表 : False
5. 运算符
or and == ! = < > .....
3.注释:单行:# 多行 ’’’ XXX ‘’’
4.python2中文问题:
第一行+ :#coding=utf-8 或 #_*_ coding:utf-8 _*_(推荐)
5. 输入:apple_price = input(“请输入苹果的价格:”)
6. 字符串
A.字符串切割 c[起始位置:结束位置:步长]
C=“abcdefABCDEFG” c[2:5]=”cde” c[2:-2]=”cdefABCDE”
C[-2]=’F’
c[1:7:2] -> 2表示取一个之后跳一个再取 == “bdf” 不包括c[7]
C[5:2:-1] -> fed 不包括c[2] 步长-1,表示从右到左
Ps:结束位置不写。为到最后
B. 查询
Str.find(“hello”) #找不到返回-1,否则返回h的下标
Str.index(“hello”)#找不到抛异常,否则返回h的下标
str2 = Str.replace(“被替换字符串”,”替换成字符串”)
Str.split(“_”)#按传入的切,不如不传,不可见的都切空格,tab之类的
.....
7. 数组 list
数组赋值:赋内存地址
Names=[“aa”,”bb”,”cc”,12,124] -> names[0]=”aa” name[3]=12
数组加元素 name.insert(2,”abc”) -> 下标2的地方插入
Name.append(“abc”) -> Names=[“aa”,”bb”,”cc”,12,124,”abc”] #当做整体加进去
Name.extend(“abc’) -> names=[“aa”,”bb”,”cc”,12,124,’a’,’b’,’c’]
删除元素: del names[0] -> 删除下标是0的
Name.remove(“cc”) -> 删除cc这个元素
修改元素:names[0]=”XXX”
查找数组if "r44" in a:
排序:names.sort()
快速赋值:
Ps:for循环值控制循环次数,最后是i 赋值给列表
8. 键值对(字典)
Key:可以是字符串,数字,元祖 不能是数组
info={"name":"laoli","age":18}
Info[“name”] == ”laoli”
增删改查:
添加:info[“address”]=”XXXX号” address不存在,就添加
删除:del info[“name”]
改: info[“name”]=”XXXX”
查: info.get(“name”) 不存在不报错 info[“name”] 不存在会报错
Info.keys() info.values()
If name in info.keys(): -> true
9. for 循环
For temp : names
XXXX
Else:#执行完for后执行else,如果for是break方式退出,不执行else
XXX
10. 元组 tuple
Tuple = (12,”213”) #和list的区别:readyonly
a , b = tuple -> a = 12, b = “213”
11. 函数
缺省传值
接受不确定参数个数(用普通值元组tuple来接收,键值对用字典接收)
拆包(拆元组一个*,拆字典两个 **)把元组和字典拆掉存储
结果:A的存储到args,B的存储到kwargs
12. 匿名函数
函数名:getSum
匿名函数排序字典
13. 方法
A. eval(str)#将字符串的双引号去掉
1、读取文件(cp)
f.seek(偏移量,方向) 方向:0,文件开头,1:当前位置 2:文件结尾
2、range方法
Rang(10,15) -> [10,11,12,13,14]
Rang(10,15,2) -> [10,12,14] #后面跟的2是步长
风险:python2中,如果rang(10,1000000很大值).,程序会报错。不给你这么的空间存数组
14. 类
Def __init__(self) #init()
Def __str__(self)
Retun “name=%s”%self.name #等价于 tostring()
对象中有对象的成员变量
私有方法:def __selfFunc(self):
Pass
#析构函数del __del__(self):
Pass
#导入其他类
Ps:
1. import 的时候,程序先从当前路径找py模块,如果没有,在去系统三方包的 路径下找
2. import 一个py模块的时候。执行一遍这个py文件
3. 如果写的是模块,又有实际运行代码,为了使别人调用这个模块的时候,不调 用实际的代码(只要方法),可以在模块实际运行代码(测试代码)上用一个if抱 起来 if __name___ == ‘__main__’ : 执行测试代码 。 ps:如果是直接调用模块,
__name__ 的值为 __main__ 如果是别人导入 ,__name 的值为__类名__
4.
Import XXX as tt #不跟.py as tt: 取别名
From XXX from test() #导入XXX中的test方法
15. 继承
直接在类定义的时候,括号上写上要继承的类
16. 重写
直接在子类中定义和父类一样方法名,参数的类
Super().类名() #调用父类被重写的方法
多继承:如果A,B中都有test方法,按定义C中先继承的那个方法,即执行B中的test的方法
17. 类方法/属性
所有对象公用属性或方法,直接用类名调,或用实例对象调
Num:类属性
Class_method;类方法 方法名上用@classmethod注释
Def __new__(cls):#返回类的实例,如果重写这个方法,必须调用父类的new方法,并且return,否则生成的实例,为空指针
Return Object.__new__(cls)
单例模式:
18. 关键字
None,False,True
Eval(stu_info) #原来stu_info是什么类型,就转回什么类型
19. 异常
Raise Exception() #手动抛出异常
自定义异常:
20. Ubuntu命令
1. Sudo pip3 install pygame : 安装pygame这个安装包
2.
21. 模块
本质:import XXX.py
XXX.py 中:
1. __all__[“function1”,”function2”....]//如果.py中存在all这个标识 ,则导入这个py文件的类只能用到all中定义的这些方法,变量等
2.如果一个文件夹下有多个模块,要在文件夹下建立一个__init__.py文件。并且要在__init__.py中写入__all__[“功能”],将来别人导入包。则可以使用__init__.py中定义的文件
A.发布模块,使每个路径下的程序能使用该模块
1.将该模块搬到系统目录下
2.在该模块目录下新建setup.py文件 setup.py内容:
3. 执行命令 python3 setup.py build #当前目录会自动新建一个 build文件夹
4. 执行命令 python3 setup.py sdist #当前目录会自动新建一个 sdist文件夹,里面有一个dongGe.tar.gz的压缩包(tar -zxvf XXX.tar 解压包命令)
5. Sudo python3 setup.py install #安装到系统目录下,所有人都可以使用了
22. 程序传参
23. 集合
A=[12,32,42,12,2,4]
B=set(A)
B.add(XX) .... #类似java中的 set集合特点(有序不重复)
‘