格式化字符串:
格式化字符串实现的是字符串的拼接功能,它比普通的拼接更加简洁高效
a=10
b=8
print(str(a)+'+'+str(b)+'='+str(a+b)) #普通拼接
print(f'{a}+{b}={a+b}') #格式化字符串
格式化字符串可以用{}和format()实现
str1 = 'My name is {}, I am {} years old.'.format('朝伟',18)
print(str1) #My name is 朝伟, I am 18 years old.
当前面的{}的数量和后面的值的数量不一样时
str2 = 'My name is {}, I am {} years old.'.format('朝伟',18,天乐)
print(str2) #My name is 朝伟, I am 18 years old. #前面的空位比后面少,不会报错
str3 = 'My name is {}, I am {} years old.'.format('朝伟')
print(str3) #报错。前面的空位比后面多,会报错
通过下标取值,填写元组的下标,顺序可以任意选取
str4 ='My name is {1}, his name is {2}, her name is {0}.'.format('青霞','曼玉','德华')
print(str4) #My name is 曼玉, his name is 德华, her name is 青霞.
顺序取值和下标取值不能混用。否则报错
str5 ='My name is {1}, his name is {}, her name is {}.'.format('青霞','曼玉','德华')
print(str5) #报错。
指定位数与对齐:
可以指定补齐到几位,不足指定位数补空格,超过位数不限制
顺序取值与下标取值都可以指定位数
补齐位数{:n}至少补齐到n位,超过n位不限制,字符串默认左对齐,数字默认右对齐
str6 = 'My name is {:10}, I am {:10} years old.'.format('朝伟',18)
print(str6) #My name is 朝伟 , I am 18 years old.
str7 ='My name is {1:10}, her name is {0:10}, she is {2:10} years old.'.format('青霞','曼玉',22)
print(str7) #My name is 曼玉 , her name is 青霞 , she is 22 years old.
修改对齐方式{:<n}左对齐{:>n}右对齐{:^n}居中对齐,补空格
str8 = 'My name is {:>10}, I am {:<10} years old, I am from {:^20}.'.format('朝伟',18,'China')
print(str8) #My name is 朝伟, I am 18 years old, I am from China .
补0
str9 = 'My name is {:>010}, I am {:<010} years old, I am from {:^020}.'.format('朝伟',18,'China')
print(str9) #My name is 00000000朝伟, I am 1800000000 years old, I am from 0000000China00000000.
保留两位小数
str10 = '你的成绩是{:10.2f}'.format(136.888)
print(str10) #你的成绩是0000136.89
format的简化
python3.6以后可以用f' '格式化字符串
补齐位数、对齐方式等用法与format()一致
name = 'Fred'
print(f'My name is {name:10}.') #My name is Fred .