(小甲鱼python)字符串系列笔记合集六 第六课、字符串VI总结 格式化字符串(“+”、“-”)千分位分隔符(整数类型、g、f、非整数类型) 整数非整数类型选项进行分类 F字符串

一、字符串总结六

在这里插入图片描述

1.格式化字符串(“+”、“-”)

>>> "{:+}{:-}".format(520,-250)
'+520 -250'

在这里插入图片描述
2.千分位分隔符(整数类型)

用逗号分割

>>> "{:,}".format(123)    #如果位数不足,千分位是不显示的
'123'
>>> "{:,}".format(123456789)
'123,456,789'

3.千分位分隔符(g、f、非整数类型)

对于[type]设置为’f’或’F’的浮点数来说,是限定小数点后显示多少个数位
对于[type]设置为’g’或’G’的浮点数来说,是限定小数点前后一共显示多少个数位
对于非数字类型来说,限定的是最大字段的大小
对于整数类型来说,则不允许使用[.precision]选项

f、g、非整数应用

>>> "{:.2f}".format(3.1415)     #小数点后显示2位
'3.14'
>>> "{:.2g}".format(3.1415)   #小数点前后2位
'3.1'
>>> "{:.6}".format("I love Fishc")    #最大字段前六位
'I love'

>>> "{:.2}".format(520)       #精度选项不允许应用在整数上
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    "{:.2}".format(520)
ValueError: Precision not allowed in integer format specifier
>>> 

4.整数类型选项进行分类(b、o、d、x)
在这里插入图片描述

>>> "{:b}".format(80)    #二进制
'1010000'
>>> "{:c}".format(80)    #80对应的unicode字符
'P'
>>> "{:d}".format(80)    #十进制
'80'
>>> "{:o}".format(80)    #八进制
'120'
>>> "{:x}".format(80)   #十六进制
'50'

字符以八进制、二进制、十进制输出时都会追加一个#号

>>> "{:#b}".format(80)    #二进制
'0b1010000'
>>> "{:#o}".format(80)   #八进制
'0o120'
>>> "{:#x}".format(80)   #十六进制
'0x50'
>>> 

5.浮点数、复数类型选项进行分类(b、o、d、x)
在这里插入图片描述

>>> "{:e}"
'{:e}'
>>> "{:e}".format(3.1415)    # e默认精度为6
'3.141500e+00'
>>> "{:E}".format(3.1415)
'3.141500E+00'
>>> "{:f}".format(3.1415)   # f默认精度为6
'3.141500'
>>> "{:g}".format(123456789)    # g用发,大数用e输出
'1.23457e+08'
>>> "{:g}".format(1234.56789)   #g用发,大数用E(定点表示法)输出
'1234.57'

%号的用法
在这里插入图片描述

>>> "{:%}".format(0.98)           #  %默认有6个小数位
'98.000000%'
>>> "{:.2%}".format(0.98)       #  精确到小数点后2位
'98.00%'
>>>
>>> "{:.{prec}f}".format(3.1415,prec=2)   #通过关键字参数来设置选项的值
'3.14'
>>> "{:{fill}{align}{width}.{prec}{ty}}".format(3.1415,fill='+',align='^',width=10,prec=3,ty='g')
'+++3.14+++'

6.F、f字符串的用法

>>> year=2010
>>> "鱼C工作室成立于{}年".format(year)
'鱼C工作室成立于2010年'
>>> F"鱼C工作室成立于{year}年"
'鱼C工作室成立于2010年'

>>> "1+2={},2的平方是{},3的立方是{}".format(1+2,2*2,3*3*3)
'1+2=3,2的平方是4,3的立方是27'
>>> F"1+2={1+2},2的平方是{2*2},3的立方是{3*3*3}"
'1+2=3,2的平方是4,3的立方是27'

格式化字符串的语法也适用

>>> "{:010}".format(-520)
'-000000520'
>>> "{-520:010}"       #纯字符串
'{-520:010}'
>>> f"{-520:010}"      # f字符串,内容放到冒号前面
'-000000520'

>>> "{:,}".format(123456789)
'123,456,789'
>>> f"{123456789:,}"
'123,456,789'

>>> "{:.2f}".format(3.1415)
'3.14'
>>> f"{3.1415:.2f}".format()
'3.14'

>>> "{:{fill}{align}{width}.{prec}{ty}}".format(3.1415,fill='+',align='^',width=10,prec=3,ty='g')
'+++3.14+++'
>>> fill='+'
>>> align='^'
>>> width=10
>>> prec=3
>>> ty='g'
>>> f"3.1415:{fill}{align}{width}.{prec}{ty}"
'3.1415:+^10.3g'
>>> f"{3.1415:{fill}{align}{width}.{prec}{ty}}"
'+++3.14+++'
>>> 

课后题:
1.用 f-string,最需要注意的是什么?

答:兼容性。

解析:如果是在正式开发,请务必先了解你的代码将在什么版本的 Python 上运行!这很重要,在 Python3.6 之前,f-string 是不被支持的。
2.请问下面代码会打印什么内容?

>>> f"{{1 + 2}}"
'{1 + 2}'

解析:在花括号外边套一层花括号,外层是对内层起到“注释“的作用。
所谓”注释“,就是剥夺了花括号的特殊功能,使它变会一个正经的字符串。
3. 请问下面代码会打印什么内容?

>>> f"{{{1 + 2}}}"
'{3}'

解析:这里外面的两层大括号由于“注释”的作用,失去了特殊功能
不过此时还剩下 {1+2},这个可就要正常解析了。
4.请问下面代码会打印什么内容?

>>> f"{520:.2}"

答:会报错。
解析:因为整数不允许被设置“精度”选项,如果非要这么做,可以加一个 ‘f’(即 f"{520:.2f}"),表示将参数以小数的形式输出。
5. 请将下面 format() 格式化字符串修改为 f-string 的格式

>>> "{:{fill}{align}{width}.{prec}{ty}}".format(3.1415, fill='$', align='^', width=10, prec=2, ty='f')

答:

>>> f"{3.1415:$^10.2f}"

第5题补充:

>>> "{:{fill}{align}{width}.{prec}{ty}}".format(3.1415,fill='$',align='^',width=10,prec=2,ty='f')
'$$$3.14$$$'

>>> fill='$'
>>> align='^'
>>> width=10
>>> prec=2
>>> ty='f'

>>> f"{3.1415:{fill}{align}{width}.{prec}{ty}}"
'$$$3.14$$$'
>>> 

题目来自于: 小甲鱼字符串VI

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值