0. 详解python中格式化3种方法f/format/%
2022-03-08 本文已影响0人
软件开发技术修炼
一、字面量含义
1、字面量:以变量或常量给出的原始数据,在程序中可直接使用字面量
2、字面量的差值:变量与常量以及表达式插入的一种技术,避免字符串拼接的问题
3、字面量类型:
数值型,字符型,布尔型,
字面量集合:列表List,元组tuple,字典dict,集合set
特殊字面量:None
二、字面量的差值
(1)字符串格式化机制——最推荐*****
通过formatted string literals(F-strings),(必须python 3.6版本及以上)
f{'变量名'} 最简单,最建议使用
可使用变量或常量,函数或表达式
注意:
\n 转义字符不可放里面,可放外面
大括号中可放函数或表达式
如{name.upper()}
name = 'tly',age = 18
list1 = [1,4,7]
dic1 = {'name':'tly','gender':'male'}
name = "jack"
age = 12
print(f"my name is {name},my age is {age}")
print(f"my name is \n{name},my age is {age}") #转义字符放外面
print(f"my list is {list1[0]},my gender is {dict1['gender']}") #不需要解包,直接按常规用
print(f'result is {(lambda x:x+1)(2)}') #大括号中存在冒号,用括号括起来
结果:my name is tly,age is 12
(2)通过string.format()方法拼接——中等推荐****
相对更简单简洁,使用{}即可
不限数值、字符串,列表,字典,如一个个传需要解包
print('my list is {},dict is {}'.format(list1,dic1))
print('my name is {},age is {}'.format(name,age))
print('my name is {0},age is {0}{1}'.format(name,age)) #无需指定格式,无指定按顺序的添加,可指定顺序,1,2,且可引用多次
namelist = ['lili','jack','coco']
print('my list is {}、{} and {}'.format(**namelist)) # 字符串,列表,字典都可使用,需前面加**
print('my name is {name},gender is {gender}'.format(**dic1)) # 解包时,需要前后保持一致
结果:my list is [1,4,7],dict is {'name':'tly','gender':'male'}
my name is tly,age is tly,18
(3)格式化输出, 字符串格式化输出%——一般推荐**
%d,十进制整数
%f,十进制浮点 %.2f 保存二位数
%s str() 字符串格式
%r repr() 替换
print('my name is %s '%name,'my age is %d '%age)
#指定格式,格式不对会报错
结果:my name is tly, my age is 18