鱼C论坛

 找回密码
 立即注册
查看: 2546|回复: 2

[学习笔记] python复盘:015字符串:格式化

[复制链接]
发表于 2020-2-10 18:38:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
015字符串:格式化

一、位置参数、关键字参数==>replacement
1、位置参数
>>> "{0} love {1}.{2}".format("I",'FishC','com')
'I love FishC.com'
2、关键字参数
>>> "{a} love {b}.{c}".format(a="I",b='FishC',c='com')
'I love FishC.com'
3、混合:位置>关键字
>>> "{0} love {b}.{c}".format("I",b='FishC',c='com')
'I love FishC.com'

二、字符串格式化符号含义
符号 说明
1 %c 格式化字符及其 ASCII 码
2 %s 格式化字符串
3 %d 格式化整数
4 %o 格式化无符号八进制数
5 %x 格式化无符号十六进制数
6 %X 格式化无符号十六进制数(大写)
7 %f 格式化定点数,可指定小数点后的精度
8 %e 用科学计数法格式化浮点数
9 %E 作用同 %e,用科学计数法格式化浮点数
10 %g 根据值的大小决定使用 %f 或 %e
11 %G 作用同 %g,根据值的大小决定使用 %f 或者 %E

                               
1、%c:格式化字符及其 ASCII 码
>>> '%c' % 97
'a'
>>> '%c %c %c' % (97,98,99)
'a b c'

2、%s:格式化字符串
>>> '%s' % 'I love fishc.com'
'I love fishc.com'

3、%d:格式化整数
>>> '%d + %d = %d' % (4,5,4+5)
'4 + 5 = 9'

4、%o:格式化无符号八进制数
>>> '%o'% 10
'12'

5、%x:格式化无符号十六进制数
6、%X:格式化无符号十六进制数(大写)
>>> '%x' % 10
'a'
>>> '%X' % 10
'A'

7、%f:格式化定点数,可指定小数点后的精度
>>> '%f' % 27.658
'27.658000'

8、%e:用科学计数法格式化浮点数
9、%E:作用同 %e,用科学计数法格式化浮点数
>>> '%e' % 27.658
'2.765800e+01'
>>> '%E' % 27.658
'2.765800E+01'

10、%g:根据值的大小决定使用 %f 或 %e
11、%G:作用同 %g,根据值的大小决定使用 %f 或者 %E
>>> '%g' % 27.658
'27.658'
>>> '%G' % 27.658
'27.658'

三、格式化操作符辅助命令               
符号 说明
1 m.n m 是显示的最小总宽度,n 是小数点后的位数
2 - 用于左对齐
3 + 在正数前面显示加号(+)
4 # 在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X'
5 0 显示的数字前面填充 '0' 取代空格
1 #m.n
>>> '%5.1f' % 27.658
' 27.7'
>>> '%.2e' % 27.658
'2.77e+01'
>>> '%10d' % 27.658
'        27'

2 #-
>>> '%-10d' % 27.658
'27        '

3 #+
>>> '%+10d' % 27.658
'       +27'
>>> '%+d' % -27.658
'-27'

4 ##
>>> '%#o' % 10
'0o12'
>>> '%#x' % 108
'0x6c'
>>> '%#d' % 10
'10'

5 #0
>>> '%010d' % 5
'0000000005'
>>> '%-010d' % 5
'5      

四、转义字符及其含义
符号 说明
\' 单引号
\" 双引号
\a 发出系统响铃声
\b 退格符
\n 换行符
\t 横向制表符(TAB)
\v 纵向制表符
\r 回车符
\f 换页符
\o 八进制数代表的字符
\x 十六进制数代表的字符
\0 表示一个空字符
\\ 反斜杠


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-10 19:56:51 | 显示全部楼层
本帖最后由 慕良 于 2020-2-10 19:59 编辑

思考题

0.根据说明填写相应的字符串格式化符号
符号 说明
%c 格式化字符及其 ASCII 码
%S 格式化字符串
%D 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同 %e,用科学计数法格式化浮点数
%g 根据值的大小决定使用 %f 或 %e
%G 作用同 %g,根据值的大小决定使用 %f 或者 %E


1. 请问以下这行代码会打印什么内容?
>>> "{{1}}".format("不打印", "打印")
'{1}'

2. 以下代码中,a, b, c是什么参数?
>>> "{a} love {b}.{c}".format(a="I", b="FishC", c="com")
'I love FishC.com'
关键字参数
3. 以下代码中,{0}, {1}, {2}是什么参数?
>>> "{0} love {1}.{2}".format("I", "FishC", "com")
'I love FishC.com'
位置参数

4. 如果想要显示Pi = 3.14,format前边的字符串应该怎么填写呢?
''.format('Pi = ', 3.1415)
'{0}{1:.2f}'.format('Pi = ', 3.1415)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-10 20:34:23 | 显示全部楼层
操作题

0.编写一个进制转换程序,程序演示如下(提示,十进制转换二进制可以用bin()这个BIF):

                               
登录/注册后可看大图
print('==========RESTART==========')
while True:
    number = input('请输入一个整数(输入Q结束程序):')
    if number != 'Q':
        number = int(number)
        sixteen = '%#x' % number
        eight = '%#o' % number
        two = bin(number)
        print('十进制 -> 十六进制:', number,' -> ',sixteen) 
        print('十进制 -> 八进制:',number,' -> ',eight)
        print('十进制 -> 二进制:',number,' -> ',two)
    else:
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 10:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表