1.基础
1.1编码
编码基础知识点:utf-8、unicode、gbk、ascii
默认解释器编码:
- Python2:ascii( # -*- coding:utf-8 -*- )
- Python3:utf-8(重要)
1.2输入和输出
print
input,用户输入的永远是字符串类型。
data = input("请输入序号:") # 1
print(data) # "1"
1.3变量
规范:字母、数字、下划线;数字不能开头;不能是py内置关键字。
建议:
- 见名知意
- 多个单词,用下划线连接。
- 全局变量用大写( DATA_LIST、USER_INFO );局部变量小写(user_age)。
注意:
全局变量 GET_INFO
局部变量 get_info
函数名 get_info
类名 GetInfo
文件名 get_info
包名称 get_info
1.4异常处理
data = input("请输入:") # 你好
res = int(data)
print(res)
# 这个代码是有风险,可能会报错。
print("开始")
try:
data = input("请输入:") # 123 / 你好
res = int(data)
print(res)
except Exception as e:
print("出错了")
print("结束")
-
循环中for/while内部都可以用 break、continue
-
字符串格式化
data = "我是{},姓名是{},年龄是{}".format("xx",123,999) data = "我是{0},姓名是{1},年龄是{2}".format("xx",123,999) data = "我是{0},姓名是{0},年龄是{2}".format("xx",123)
1.5运算符
- 传统的运算符
- 逻辑运算符
- 常见操作,最终的到的结果:True/False
if 1>10 and 9<8:
pass
else:
pass
- 非传统,最终的结果是:第一个或第二个值。
data = 值1 and 值2
v1 = 5 and 9 # 9
v2 = 0 and 10 # 0
2.数据类型
2.1字符串类型
- 不可变类型;
- 常见方法:strip/split/replace/join
v1 = "root"
data = v1.upper()
print(v1) # root
print(data) # ROOT
- 公共:索引、切片、循环
v1 = "root"
v1[1] = "X" # 报错,不可变
2.2列表类型
- 可变类型
- 常见方法:append/insert/pop/remove
- 公共:索引、切片、循环
v1 = [11,22,33,44,55]
v1[0]
v1[1:3] - 前取后不取
v1[1:-1]
- 列表的推导式
data = [ i for i in range(10)]
data = [ i for i in range(10) if i<5]
2.3字典类型
- 可变类型
- 字典的键是有要求:可哈希类型,目前不可哈希:list/dict/set。
- 扩展:python3.6+字典有序。
- 常见的功能:keys、values、items、get
data = {}
v1 = data.get("k1")
2.4关于元组
v1 = (11,)
v2 = (11) # 11
v3 = 11
-
其他数据类型
其他类型转布尔类型时,哪些为False: 空、0、None 其他类型转自己类型时,自己的类名() int("123")
3.函数
3.1定义
def func():
pass
func()
3.2参数
def func(v1,v2):
pass
def func(v1, v2=None):
pass
def func(*args,**kwargs):
pass
3.3返回值
- 没有返回值,默认返回None
def func(v1,v2):
print(999)
- 一个返回值
def func(v1,v2):
return 123
res = func(1,2)
print(res) # 123
- 多个返回值
def func(v1,v2):
return 123,999,123
res = func(1,2)
print(res) # (123,999,123)
def func(v1,v2):
return 123,999,123
d1,d2,c3 = func(1,2)
v1,v2 = [11,22]
v1,v2,v3 = (11,22,999)
3.4lambda表达式(匿名函数)
def func(arg