1、格式化输出字符串
常见的占位符有:
%d
整数,
%f
浮点数,
%s
字符串,
%x
十六进制整数
(1) %
print('Hi, %s, you have %d kg.' % ('大白', 100))
#'Hi, 大白, you have 100 kg.'
(2) .format()
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)
# 3-01
#3.14
print("Hello, {0}, 成绩提升了 {1:.1f}%".format('小明', 17.125))
# 'Hello, 小明, 成绩提升了 17.1%'
(3) f-string
r = 2.5
s = 3.14 * r ** 2
print(f'The area of a circle with radius {r} is {s:.2f}')
#The area of a circle with radius 2.5 is 19.62
# {r}被变量r的值替换,{s:.2f}被变量s的值替换,并且:后面的.2f指定保留两位小数
(4) 其它
删除字符串 右边空白:
rstrip()
删除字符串 左边空白:
lstrip()
删除字符串 两边空白:
strip()
这种删除都是暂时的,需要关联到变量。
2、列表操作
2.1 元素修改
list 末尾 添加元素,
.append()
list 中 插入元素,
.insert()
list 头 插入元素,
.insert(0,str)
删除 list 元素,
del xxx
删除 list末尾的元素,并能继续使用它,
.pop()
删除 指定位置的元素,
.pop(i)
,其中 i 是索引位置
根据值删除元素,只能删除第一个指定的值,
.remove()
2.2 列表排序
.sort()
: 永久排序,按照字母顺序
.sort(reverse=True)
: 反向排序
.reverse()
: 反转list
sorted(list)
: 临时排序,按照字母顺序,
其中 sorted() 是一个高阶函数,可以接收一个key函数来实现自定义的排序。例如,
sorted([36, 5, -12, 9, -21], key=abs) # 按绝对值大小排序
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) # 忽略大小写的排序
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
2.3 列表复制
复制列表必须创建列表的副本[:]
eg:
list2 = list1
list3 = list1[:]
list2 和list1 共享一块内存,也就是说改变list2,list1也会改变
list3 和 list1 分别独立,互不影响
3、切片
L = list(range(100)) # [0, 1, 2, 3, ..., 99]
L[:] # 复制list
L[:10] # 前10个数
L[-10:] # 后10个数
L[10:20] # 前11-20个数,从索引10开始到20,但不包含20
L[:10:2] # 前10个数,每两个取一个
L[::5]# 所有数,每5个取一个、
4、字典
参考链接
dict全称dictionary,使用键-值(key-value)存储。键和值之间用冒号分割,键值对之间用逗号分隔。
命令
含义
dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回 default值
dict.has_key(key)
如果键在字典dict里返回 true,否则返回false
dict.items()
以列表返回 可遍历的(键, 值) 元组数组
dict.keys()
以列表返回 一个字典所有的 键
dict.update(dict2)
把字典dict2的 键/值对 更新到 dict里
dict.values()
以列表返回 字典中的所有 值
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。可用它来去重。
5、函数式编程
高阶函数
:可以接收另一个函数作为参数的函数
map()
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
reduce()
reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,例如:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
filter()
:
接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False筛选输出值。
sorted()
:同上 2.2
匿名函数:
lambda x: x * x
, 冒号前面的 x 表示函数参数,后面为表达式,lambda经常与for循环搭配使用。
返回函数:
函数作为返回值
装饰器:
修改其他函数的功能的函数,
参考
装饰器函数 会重写了我们函数的名字和注释文档(docstring),因此需要导入
from functools import wraps
, 使用
@wraps
接受一个函数来进行装饰,并加入了复制函数名称、注释文档、参数列表等等的功能。这可以让我们在装饰器里面访问在装饰之前的函数的属性。
6、面向对象