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

字符串的格式化一:%

语法解释:

info=‘我的名字是%s,我的年龄是%s’%(name,age)

% 是占位符

s 有默认转换的能力,用str()函数进行字符串转换

d 转成有符号的十进制数

f 转成浮点数(小数部分自然截断)

x 转成无符号的十六进制数(x/X代表转换后的十六进制字符的大小写)

简单示例:

name='tom'

age=20

info='我的名字是%s,我的年龄是%s'%(name,age)#元素超过2个 变量要用元组格式

print(info)

#打印:我的名字是tom,我的年龄是20

def 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)

#打印:56

print('%10d'%56) #最小---正数--右对齐,左补齐

#打印: 56

#10是宽度10个字符,56是2个,不足补齐8个,默认从左补齐

print('%-10d'%56)#最小---正数--右=左对齐,右补齐

#打印:56 。

print('%1d'%56) #打印的长度小于数据时,按照数据长度打印

#打印:56

print('%010d'%400) #十位,不足的以0补齐

#打印:0000000400

print('%010d'%5000)

#打印:0000005000

print('%10d'%12) #d格式,接入的是str类型,会报错

*# print('%10d'%'sun')*

#TypeError: %d format: a number is required, not str

print('%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.141593

print('%.2f'%3.1495926)

#打印:3.15 #保留小数点后2位且四舍五入

print('%.9f'%3.1415926)

#打印:3.141592600 #不足的补0

print('%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用十六进制数格式化变量的地址

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

解释:

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

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

2.1——顺序填值

name='tom'

age=20

info='我叫:{}~~,我的年龄是:{},哈哈'.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},哈哈

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

解释:

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

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

#打印:我叫{cute的}:tom~~,我的年龄是:20,哈哈

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值