python

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
上一篇下一篇

猜你喜欢

热点阅读