一、格式化输出
1.拼接符+
print(“变量名” + 变量) # 注意:变量必须为字符串类型
,
print(“变量名”, 变量)
3.格式化符号
%03d # 不足三位则在前面填充0补足
%.2f # 保留两位小数
%(变量1, 变量2) # 格式化输出多个变量
4.f格式化字符串
v = '变量'
print(f”{v}”)
print(f"""第一行:
第二行:{v}""")
a = 0.25
b = 12345
print(f'{a:2f}') # 保留小数点后两位
print(f'{a:0f}') # 不带小数
print(f'{n:0>7d}') # 左边补零
print(f'{n:0<7d}') # 右边补零
print(f'{n:,}') # 逗号分隔
print(f'{a:.2%}') # 百分比格式
print(f'{n:.2e}') # 指数记法
二、print()函数
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
- sep -- 分隔符,默认为空格。
- end -- 用来设定以什么结尾,默认值是换行符 \n。
- file -- 定义流输出的文件,默认为标准的系统输出sys.stdout。
- flush -- 是否立即把内容输出到流文件,不作缓存,默认为False。
# 打印列表
list = [1,2,3,4,5]
print(list) # 普通打印
print(*list, sep='\n') #带分隔符
三、数据类型
1.布尔型 bool
True为真,False为假
注意:区分大小写
all([1, 0, 2]) # 所有元素都为真则返回True,否则为False
any([0, 0, 1]) # 至少有一个元素为真返回True,否则为False
2.列表 list,有序,可重复
list = [1, 2, 3, 4]
3.元组 tuple,有序,只读
tuple = (1, 2, 3, 4)
4.将元组中的数据赋值给多个变量
a, b, c = (1, 2, 3) # a=1, b=2, c=3
a, b, *c = (1, 2, 3, 4, 5) # a=1, b=2, c=[3, 4, 5]
5.集合set,无序,不重复
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用{ },因为 { } 是用来创建一个空字典。
s = {1, 2, 3}
s = set(1, 2, 3)
6.多个变量赋值
a, b, c = 1, 2, 3
a, b = b, a # 此方法可以交换两个变量的值,不需要借助第三变量
7.多个变量赋相同值
a = b = c = 3
8.验证变量的数据类型
type(数据)
9.转换成10进制
int('12', 16) # 16进制转换成10进制,结果为18
10.字符串转换成字节类型
bytes('test', encoding='utf-8')
四、一行显示多条语句
print("同一行显示多条语句");print("同一行显示多条语句2")
五、判断语句
1.if-elif-else
if a<0:
pass
elif a>=0 && a<=10: # python也可以简写成 0 <= a <= 10
pass
else:
pass
2.单行if
c = a if a>b else b # 三目运算符,也叫三元运算符或三元表达式
c= [b, a][a > b] # 二维列表,利用大小判断的0,1当作索引
# 利用逻辑运算符进行操作
c = (a>b and [a] or [b])[0]
c = (a>b and a or b)
# 利用and 的特点,若and前位置为假则直接判断为假。
# 利用 or的特点,若or前位置为真则判断为真。
print(111 and 222) # 222
print(0 and 333) #0
3.for...else
for 临时变量 in 序列:
重复执行的代码
else:
循环正常结束之后要执行的代码,
如果是break终止循环则else下方缩进的代码将不执行
continue控制下是可以正常结束的
while...else同理
六、函数
1.不定长参数(可变参数)
def fun(a, b, *args):
print(args) # 参数为元组
def fun(a, b, *args, **kwargs):
print(kwargs) # 参数为字典形式
def fun(a, b, *args, **kwargs):
print(args)
print(kwargs)
tup = (11,22,33)
dic = {"name":"hello", "age":20}
fun(1, 2, *tup, **dic)
结果为:
(11, 22, 33)
{'name': 'hello', 'age': 20}
2.多个返回值
def test():
a=2
b=3
return a,b # 要想获得多个返回值,可以用列表或元组封装
3.函数说明文档
help(函数名)
4.修改全局变量
def fun():
global a # 声明全局变量
a = 123 # 修改全局变量的值
5.lambda表达式(匿名函数)
fn1 = lambda : 100 # 无参的lambda
fn2 = lambda a, b, c=100: a + b + c # 默认参数
fn3 = lambda *args: args # 不定长位置参数,传入到lambda之后,返回值为元组
fn4 = lambda **kwargs: kwargs # 不定长关键字参数,传入到lambda之后,返回值为字典
fn5 = lambda a, b: a if a>b else b # 带判断的lambda,返回值可使用三元运算符
# 列表内字典数据排序
Students =[
{'name':'Tom','age':20},
{'name':'Rose','age':19},
{'name':'Jack','age':22},
]
# 按name值升序排序
Students.sort(key=lambda x:x['name'])
print(Students)
# 按age值降序排序
Students.sort(key=lambda x: x['age'],reverse=True)
print(Students)
6.函数注释
可以使用冒号与箭头来指定参数与返回值的类型
def get_birthday (
id: int, # 指定参数类型
name:'姓名', # 参数说明
age:(16,60), # 取值范围
year:'default value is 18'=2022, # 可同时指定默认参数
aha: dict(type=str, help='啊哈') # 多项注释可以用自定义字典
)->int: # 函数返回值类型
return year-age
七、推导式
推导式的作用:简化代码
list1 = [i for i in range(10)] # 列表推导式
list2 = [i for i in range(10) if i%2==0] # 带if列表推导式
list3 = [(i,j) for i in range(3) for j in range(4)] # 多个for循环实现列表推导式
list4 = [fun(i) for i in range(10)] # 还可以是函数
[print(i) for i in range(10)]
dict1 = {i:i**2 for i in range(10)} # 字典推导式
dict2 = {list1[i]: list2[i] for i in range(len(list2))} # 合并两个列表为字典
dict3 = {key: value for key, value in dict1.items() if value>=25} # 提取字典中目标数据
set1 = {i ** 2 for i in list1} # 集合推导式
# 注意:集合有去重功能
八、类和对象
1.构造方法
__init__(self[, ...]) # 在类实例化时调用的方法
2.__new__方法
__new__(cls[, ...]) # __init__方法之前被调用,在继承不可变类但需要修改时用
3.析构方法
__del__(self)
4.Mixins机制
ChildClass(Base1, Base2, Base3): # 一个子类可以同时继承多个父类
......
九、链式操作
如:
a<b<c 等价于 a<b and b<c
True is False is False 等价于 (True is False) and (False is False),结果为False
十、内置函数
1. eval()函数
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
eval('5/2') # 返回float 2.5
eval('5//2') # 返回int 2
2.enumerate() 函数
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
list = [1,3,5]
for i in enumerate(list):
print(i)
输出结果:
(0, 1)
(1, 3)
(2, 5)
3.map()函数
map(func,list)将传入的函数变量func作用到list变量的每个元素中,并将结果组成迭代器返回
print(list(map(lambda x:x**2,[1,2,3,4,5]))) # 计算序列中各个数字的平方
4.filter()函数
filter(func,list)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象。如果要转换为列表可以使用list()来转换。
print(list(filter(lambda x:x%2==0,[1,2,3,4,5]))) # 获取序列中的偶数
5.sorted()函数
sorted([3, 1, 2]) # 顺序排序
sorted([3, 1, 2], reverse=True) #倒序排序
list =[{'name':'zhangsan', 'age'=18}, {'name':'lisi', 'age'=16}]
sorted(list, key=lambda x: x['age'], reverse=False)
6.slice()函数
slice() 函数返回一个切片对象,主要用在切片操作函数里的参数传递。
slice(stop)
slice(start, stop[, step])
list = [1,2,3,4,5,6,7,8]
s = slice(None, None, 2)
print(list[s])
结果:[1,3,5,7]
7.help()函数
查看函数的说明文档
6.其他内置函数详看 菜鸟教程(即函数第一行的多行注释)
https://www.runoob.com/python/python-built-in-functions.html