str.format()是一种格式化字符串的函数,它增强了字符串格式化的功能。
format语句
字符串格式化
使用位置
"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
"{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
'my name is {} ,age {}'.format('joy',18)
'my name is joy ,age 18'
使用参数
- 直接设置参数
print("姓名:{name},性别: {sex}".format(name="张三", sex="男"))
‘姓名:张三,性别:男’
- 通过字典设置参数
注意:字典前要加上**
info = {"name": "张三", "sex": "男"} #创建字典
print("姓名:{name}, 性别:{sex}".format(**info))
- 通过列表索引设置参数
format中可以有多个列表,使用第n个列表中的第m个元素时格式为 {n-1[m-1]}
即使只有一个列表,0也不可以省略
my_list = ['张三', '男']
print("姓名:{0[0]}, 性别:{0[1]}".format(my_list))
数字格式化
- ^, <, > 分别是居中、左对齐、右对齐,后面带宽度;
- :号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充;
- +表示在正数前显示 +,负数前显示 -;
- (空格)表示在正数前加空格。
- b、d、o、x 分别是二进制、十进制、八进制、十六进制。
例:
print("{:.2f}".format(3.1415926))
3.14
数字 | 代码 | 输出 | 解释说明 |
---|---|---|---|
3.141593 | {:.2f} | 3.14 | 保留小数点后两位 |
3.141593 | {:+.2f} | +3.14 | 保留小数后两位和符号 |
-1 | {:+.2f} | -1.00 | 同上 |
2.71828 | {:.0f} | 2 | 不带小数 |
5 | {:0>2d} | 05 | 左边补零,宽度为2 |
5 | {:x<4d} | 5xxx | 右边补x,宽度为4 |
1000000 | {:.,} | 1,000,000 | 以逗号分割数字 |
0.25 | {:.2%} | 25.00% | 百分比格式,保留两位小数 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法,保留两位小数 |
13 | {:>10d} | 13 | 右对齐,宽度10(其它对齐方式类似) |
11 | ‘{:b}’.format(11) | 1011 | 二进制(其它进制类似) |
集合
集合(set)是一个无序的不重复元素序列。
创建集合
可以使用大括号 { } 或者 set() 函数创建集合。用set创建时注意该函数内只有一个参数,所以必须用圆括号将其括起来,否则会报错(即一共两组括号)。
创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
a={"cat","bird","dog"}
b=set(("cat","cow","dog"))
集合间运算
a-b #a有而b没有的元素
{'bird'}
a|b #a和b的并集
{'bird', 'cat', 'cow', 'dog'}
a&b #a和b的交集
{'cat', 'dog'}
a^b #不同时包含于a和b的元素
{'bird', 'cow'}
集合的基本操作
- 添加元素
两种方法:一种是a.add(x);
另一种是a.update(y),参数y可以是列表,元组,字典等。如果有多个,可以 用逗号隔开
a.add("cow")
print(a)
{'bird', 'cat', 'cow', 'dog'}
a.update([1,2],[3,4])
print(a)
{1, 2, 3, 4, 'dog', 'bird', 'cat'}
- 删除元素
三种方法:一种是a.remove(x),元素不存在时报错;
第二种是a.discard(x),元素不存在时不报错;
最后一种是a.pop(),用法和之前列表提到的类似 - 清空集合
a.clear()