python格式化字符串_python基础知识——3种字符串格式化的方式

字符串的格式化一:%

语法解释:

info=‘我的名字是%s,我的年龄是%s’%(name,age)% 是占位符s 有默认转换的能力,用str()函数进行字符串转换d 转成有符号的十进制数f 转成浮点数(小数部分自然截断)x 转成无符号的十六进制数(x/X代表转换后的十六进制字符的大小写)简单示例:name='tom'age=20info='我的名字是%s,我的年龄是%s'%(name,age)#元素超过2个 变量要用元组格式print(info)#打印:我的名字是tom,我的年龄是20def my_str(name,age): print('我的名字是%s,我的年龄是%s'%(name,age))my_str('sunqq',19)#打印:我的名字是sunqq,我的年龄是19

1.1常见用法——%d指定宽度

注意1:默认用空格补齐,宽度前写0就用0补齐,用其他格式的字符代替补齐值会报错,最好实用默认或0)

注意2:在%s中使用%a.b时,取b不足用0补齐,再看位数a,不足空格补齐

print('%d'%56)#打印:56print('%10d'%56) #最小---正数--右对齐,左补齐#打印: 56#10是宽度10个字符,56是2个,不足补齐8个,默认从左补齐print('%-10d'%56)#最小---正数--右=左对齐,右补齐#打印:56 。print('%1d'%56) #打印的长度小于数据时,按照数据长度打印#打印:56print('%010d'%400) #十位,不足的以0补齐#打印:0000000400print('%010d'%5000)#打印:0000005000print('%10d'%12) #d格式,接入的是str类型,会报错*# print('%10d'%'sun')* #TypeError: %d format: a number is required, not strprint('%10.4d'%56)#打印: 0056 #取4位数,不足用0补齐,再看位数,不足空格补齐

1.2常见用法——%s指定宽度

注意:在%s中使用%a.b时,先截取b字符串,再看a的位数补足b字符串

str='jasper'print('我的名字是%s~~'%str)#打印:我的名字是jasper~~ #常规打印print('我的名字是%2s~~~~'% str)#打印:我的名字是jasper~~ #当打印的字符串长度原字符串时,空格补齐print('我的名字是%10s~~'%str)#我的名字是 jasper~~print('我的名字是%.2s~~'%str)#我的名字是ja~~ #打印的字符串是截取原字符串的前2位print('我的名字是%10.2s~~'%str)#我的名字是 ja~~ #打印的字符串是截取原字符串的前2位,且要求显示10位,然后用空格补足8位

1.3常见用法——%f指定宽度

注意:在%f中使用%a.b时,小数点后是小数点取几位小数,小数点前指取的小数的全部个数;

注意:格式化输出默认是6位小数–且四舍五入

print('%f'%3.1415926)#打印:3.141593print('%.2f'%3.1495926)#打印:3.15 #保留小数点后2位且四舍五入print('%.9f'%3.1415926)#打印:3.141592600 #不足的补0print('%15.10f'%3.1415926) #先取出10位小数,取出的小数位数>原小数位数,取原小数且用0补足10位;取出的小数位数

1.4常见用法——%x/X指定宽度

注意:#符号是十六进制的前缀0x/0X

print('%x'%108)#打印:'6c'print('%X'%108)#打印:'6C'print('%#x'%108)#打印:'6c'print('%#X'%108)#打印:'6c'

延伸补充(个人看法:1.1-1.3是重点掌握,其余了解即可)

符号描述

%c格式化字符及其ASCII码*

%s格式化字符串

%d格式化整数

%u格式化无符号整型

%o格式化无符号八进制数

%x格式化无符号十六进制数

%X格式化无符号十六进制数(大写)

%f格式化浮点数字,可指定小数点后的精度

%e用科学计数法格式化浮点数

%E作用同%e,用科学计数法格式化浮点数

%g%f和%e的简写

%G%f 和 %E 的简写

%p用十六进制数格式化变量的地址

8cdb73b6904b81a0e34fe466c52e4285.png

字符串的格式化二:str.format()函数

解释:

使用{}来代替传统的%方式

‘{},{}’,字符串中的{}和%意思一样,都是占位符,不是字典

2.1——顺序填值

name='tom'age=20info='我叫:{}~~,我的年龄是:{},哈哈'.format(name,age)print(info)#指定宽度--{:宽度}:花括号中的:冒号是固定语法,宽度直接输入想要的数值info='我叫:{:6}~~,我的年龄是:{:6},哈哈'.format(name,age)print(info)#打印:我叫:tom ~~,我的年龄是: 20~~#注:1:.format()函数默认指定宽度,对于字符串类型是左对齐,然后补齐空缺,数值类型是右对齐,然后补齐空缺#注意2:.format()函数自定义对齐,:后使用>大于号,是右对齐; < 小于号是左对齐,^中间号是中间对齐info='右对齐——我叫:{:>6}~~,我的年龄是:{:>6},哈哈'.format(name,age)print(info)#打印:右对齐——我叫: tom~~,我的年龄是: 20,哈哈info='左对齐——我叫:{:<6}~~,我的年龄是:{:<6},哈哈'.format(name,age)print(info)#打印:左对齐——我叫:tom ~~,我的年龄是:20 ,哈哈info='中间对齐—我叫:{:^6}~~,我的年龄是:{:^6},哈哈'.format(name,age)print(info)#打印:中间对齐—我叫: tom ~~,我的年龄是: 20 ,哈哈#注意2:.format()函数自动补齐的内容是随意的,默认补空格,想补什么类型就想在对齐方向前面即可info='我叫:{:4>6}~~,我的年龄是:{:*>6},哈哈'.format(name,age)print(info)#打印:我叫:444tom~~ ,我的年龄是:****20,哈哈

2.2—— 下标填值法

{1:6},:冒号前面是下标填值法的区域,会把.format(name,age),内容看成一个元组,

name是下标为0的元素,age是下标为1的元素,冒号前写0就是name,写1就是age的值

info='1下标填值法---我叫:{0:4>6}~~,我的年龄是:{0:*>6},哈哈'.format(name,age)print(info)#1下标填值法---我叫:444tom~~,我的年龄是:***tom,哈哈info='2下标填值法---我叫:{1:4>6}~~,我的年龄是:{1:*>6},哈哈'.format(name,age)print(info)#2下标填值法---我叫:444420~~,我的年龄是:****20,哈哈info='3下标填值法---我叫:{1}~~,我的年龄是:{1},哈哈'.format(name,age)print(info)#{}中只写1个数值或写1:(1加冒号),默认是下标填值法#打印:3下标填值法---我叫:20~~,我的年龄是:20,哈哈

2.3—— 变量填值法

1 print('我叫:{name}~~,我的年龄是:{age},哈哈'.format(name='sun',age=19))2 print('我叫:{name}~~,我的年龄是:{age},哈哈'.format(age=19,name='sun'))

补充:如果字符串中本来就带有{},怎么输出

#叫{cute的}中的花括号会认为是占位符,不用转译,直接在{}加一层{}即可print('我叫{{cute的}}:{1:4>6}~~,我的年龄是:{{{1:*>6}}},哈哈'.format(name,age))#打印:我叫{cute的}:444420~~,我的年龄是:{****20},哈哈
b46b7f950a63f0b8f2a9526f43a19dfe.png

字符串的格式化三——字符前加f

解释:

f是forma的缩写,f的用法是python3.6中特有的,最方便的一种

print(f'我叫{{cute的}}:{name}~~,我的年龄是:{age},哈哈')#打印:我叫{cute的}:tom~~,我的年龄是:20,哈哈

以上是就是文章的全部内容,觉得文章还不错的话不妨收藏起来慢慢看,有任何建议或看法欢迎大家在评论区分享讨论!

我是一名python开发工程师,整理了一套python的学习资料,如果你想提升自己,对编程感兴趣,关注我并在后台私信小编:“08”即可免费领取资料!希望对你能有所帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值