目录 一、%方式 二、string.format()方式 三、f-string方式 一、%方式用%来格式化字符串是继承C语言的用法,这种方式比较老旧,不推荐使用。但是,我们在Python语言中,也会看到用%格式化输出。为了弄清楚代码的意思,我们来看看它的用法。
格式字符串:
输出: n1=13, n2=14
二、string.format()方式用string.format()格式化字符串,这种是新式的方法,官方推荐。相对基本格式化输出采用'%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号'{}’作为特殊字符代替'%’ 使用格式: '{ }' .format(输出项[,格式字符串]) , 其中格式字符串是可以选择项目。 基本用法,有以下5种1、位置替换: # 按照先后顺序对format内容进行替换print('岗位:{}, 性别:{}'.format('经理', '男'))# 输出: # 岗位:经理, 性别:男 2、 索引替换:
3、关键字匹配: # 按照索引对format内容进行替换print('岗位:{gw}, 性别:{xb}, 岗位:{gw}'.format(gw='经理', xb='男'))# 输出: # 岗位:经理, 性别:男, 岗位:经理 4、对象替换:
5、嵌套替换 print('hello {3:{1}>{2}} '.format('李四','*',10,'你好'))# 输出: hello ********你好print('hello {0:{1}^{2}} '.format('李四','*',10,'你好'))# 输出: hello ****李四**** 常用格式化输出方式,有以下8种1、左对齐及填充
2、右对齐及填充 #========== 右对齐 ===========#print('%5s'%'张三') # 常数5表示占5个字符,默认右对齐#输出:' 张三'print('{:>5}'.format('张三') ) # 常数5表示占5个字符, >:表示右对齐# 输出:' 张三'print('{:*>5}'.format('张三')) # 常数5表示占5个字符, >:表示右对齐, *表示用*号进行填充,# 输出:'***张三' 3、居中对齐及填充
4、截取指定长度字符串 #===== 截取指定长度字符串 =====#print('%.2s'%'张三李四') # 表示从字符串中截取两个字符# 输出:'张三' 5、百分号
6、逗号分隔符 # ===== 逗号分隔符 =====%print('{:,}'.format(1232434234234))# 输出:'1,232,434,234,234' 7、时间格式化输出
格式转换b - 二进制。将数字以2为基数进行输出。 c - 字符。在打印之前将整数转换成对应的Unicode字符串。 d - 十进制整数。将数字以10为基数进行输出。 o - 八进制。将数字以8为基数进行输出。 x - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。 e - 幂符号。用科学计数法打印数字。用'e'表示幂。 g - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。 n - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。 % - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。 # ======== 格式转换 ========= #print('{0:b}'.format(3))# 输出:11print('{:c}'.format(20))# 输出:print('{:d}'.format(20))# 输出:20print('{:o}'.format(20))# 输出:24print('{:x}'.format(20))# 输出:14print('{:e}'.format(20))# 输出:2.000000e+01print('{:g}'.format(20.1))# 输出:20.1print('{:f}'.format(20))# 输出:20.000000print('{:n}'.format(20))# 输出:20print('{:%}'.format(20))# 输出:2000.000000% 三、f-string方式用f-string格式化字符串,这种方式在Python3.6 及以上推荐使用。python3.6引入了一种新的字符串格式化方式:f-string格式化字符串。从%s格式化到format格式化再到f-string格式化,格式化的方式越来越直观,f-string的效率也较前两个高一些,使用起来也比前两个简单一些。同时值得注意的是,f-string就是在format格式化的基础之上做了一些变动,核心使用思想和format一样。 1、基本使用,f-string用大括{ }表示被替换字段,其中直接填入替换内容即可
2、表达式求值与函数调用,f-string的大括号{ }可以填入表达式或调用函数,Python会求出其结果并填入返回的字符串内。 print(f'They have {2+5*2} apples')# 输出:They have 12 applesname = 'Huang Wei'print(f'my name is {name.lower()}')# 输出:my name is huang weiimport mathprint(f'Π的值为{math.pi}')# 输出:Π的值为3.141592653589793 3、f-string中引号使用存在的问题 ,f-string大括号内使用的引号不能和大括号外的引号定界符引号冲突,需根据情况灵活切换使用单引号、双引号、单三引号、双三引号。 注意:只要大括号内外的引号不同,就没有问题。但是大括号中只能是但引号和 双引号 ,大括号外的引号定界符引号可以使用单引号、双引号、单三引号、双三引号。
4、大括号外的引号还可以使用\转义,但大括号内不能使用\转义。 print(f'he\'ll go to {'shang hai'}')# 输出:he'll go to shang haiprint(f'''he introduces himself {'I\'m Tom'}''')#输出:# print(f'''he introduces himself {'I\'m Tom'}''')# ^# SyntaxError: f-string expression part cannot include a backslashprint(f'''he introduces himself {'I'm Tom'}''')# 输出:he introduces himself I'm Tom 5、f-string大括号外如果需要显示大括号,则应输入连续两个大括号{{ }};大括号内需要引号,使用引号即可。
6、f-string填充 当我们指定了字符串最终的长度的时候,如果现有的字符串没有那么长,那么我们就用某种字符(填充字符)来填满这个长度,这就是“填充”。 6.1默认使用空格填充 name = 'Huang Wei'print(f'{name:>20}')#输出: Huang Weiprint(f'{name:<20}')#输出:Huang Weiprint(f'{name:^20}')#输出: Huang Wei 6.2用指定字符进行填充
注意:填充分为左填充、右填充、居中填充。左填充表示在字符串左侧填充,右填充表示在字符串右侧填充,居中填充表示在字符串左右两侧对称填充。>表示左填充,<表示右填充,^表示居中填充。记忆方法:括号口朝左边,就表示左填充;括号口朝右边,就表示右填充。 7、f-string截断与填充的结合使用,当需要格式化的数据类型是“字符串”的时候,才会发生截断。 # 当发生截断的时候,如果不指定填充符,默认使用空格填充print(f'{a:10.3}')#输出:Hel# 在发生截断的时候,使用指定的填充符print(f'{a:_>10.3}')#输出:_______Helprint(f'{a:_<10.3}')#输出:Hel_______ 8、f-string针对date、datetime和time对象,进行年月日、时分秒等信息提取
|
|
来自: 新用户0935snDB > 《待分类》