零基础入门学习Python(14)-格式化字符串

什么是格式化字符串

格式化字符串就是按照统一的规格去输出一个字符串,如果规格不统一,就很可能造成误会

format()方法

  • 接受位置参数关键字参数两种参数
  • 二者均传递到一个replacement的字段,而replacement字段在字符串里面由{}表示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
attention:综合位置参数和关键字参数时,位置参数一定要在关键字参数之前,否则会报错
在这里插入图片描述

如何打印出{}???

零基础入门学习Python(14)-格式化字符串_第1张图片
猜猜如下代码会打印出什么?

>>> '{0:.1f}{1}'.format(27.658,'GB')

在这里插入图片描述

  • 在替换域中,冒号:示格式化符号的开始, .1表示四舍五入,保留一位小数点,f的意思是打印出定点数(定点数和浮点数都是差不多的,即打印一个小数)

格式化操作符%

  • 当%遇到字符串,%成为字符串所独享的一个操作符
符号 含义
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同 %e,用科学计数法格式化浮点数
%g 根据值的大小决定使用 %f 或 %e
%G 作用同 %g,根据值的大小决定使用 %f 或者 %E
  • %c :格式化字符及其ASCII码

在这里插入图片描述
在这里插入图片描述

  • %s : 格式化字符串

在这里插入图片描述

  • %d :格式化整数

在这里插入图片描述

  • %o :格式化无符号八进制数(十进制→八进制)

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  • %g : 根据值的大小决定使用 %f 或 %e
  • %G : 作用同 %g,根据值的大小决定使用 %f 或者 %E

在这里插入图片描述

格式化辅助命令

符号 含义
m.n m显示的是最小总宽度,n是小数点后的位数
- 结果左对齐
+ 在正数前面显示加号
# 在八进制数前面显示 ‘0o’,在十六进制数前面显示 ‘0x’ 或 ‘0X’
0 显示的数字前面填充‘0’代替空格
  • m.n : m显示的是最小总宽度(占位),n是小数点后的位数

在这里插入图片描述
在这里插入图片描述

  • - : 结果左对齐

在这里插入图片描述

  • + : 在正数前面显示加号

在这里插入图片描述

  • #:在八进制数前面显示 ‘0o’,在十六进制数前面显示 ‘0x’ 或 '0X

在这里插入图片描述
在这里插入图片描述

  • 0 :显示的数字前面填充‘0’代替空格

在这里插入图片描述

Python转义字符及其含义

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

Task

0. 请问以下这行代码会打印什么内容?

>>> "{{1}}".format("不打印", "打印")

{1},因为{1}已经被解释掉了
1.以下代码中,a, b, c是什么参数?

>>> "{a} love {b}.{c}".format(a="I", b="FishC", c="com")
'I love FishC.com'

关键字参数
2.以下代码中,{0}, {1}, {2}是什么参数?

>>> "{0} love {1}.{2}".format("I", "FishC", "com")
'I love FishC.com'

位置参数
3.如果想要显示Pi = 3.14,format前边的字符串应该怎么填写呢?

''.format('Pi = ', 3.1415)
'{0}{1:.2f}'.format('Pi = ', 3.1415)

在这里插入图片描述
4.编写一个进制转换程序,程序演示如下(提示,十进制转换二进制可以用bin()这个BIF):
零基础入门学习Python(14)-格式化字符串_第2张图片
直接打印,里面的num会被当成字符串

print("十进制 -> 十六进制 :num -> '%X' % num")

在这里插入图片描述
分开打印字符串和数字,用end=“”连接,这样的print有点多,还有一个可以改进的是在十六进制和八进制前面应该加“0x”“0o”

while 1:
    num = input("请输入一个整数(输入Q结束程序):")
    if num != 'Q':
        num = int(num)
        print("十进制 -> 十六进制 :",end = "")
        print( num, end = '')
        print('->',end = '')
        print('%X' % num)
        print("十进制 -> 八进制 :",end = "")
        print( num, end = '')
        print('->',end = '')
        print('%o' % num)
        print("十进制 -> 二进制 :",end = "")
        print( num, end = '')
        print('->',end = '')
        print(bin(num))

零基础入门学习Python(14)-格式化字符串_第3张图片
看一下小甲鱼的代码

q = True
while q:
    num = input('请输入一个整数(输入Q结束程序):')
    if num != 'Q':
        num = int(num)
        print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
        print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
        print('十进制 -> 二进制 : %d -> ' % num, bin(num))
    else:
        q = False

零基础入门学习Python(14)-格式化字符串_第4张图片

用#代替0o,0x

q = True
while q:
    num = input('请输入一个整数(输入Q结束程序):')
    if num != 'Q':
        num = int(num)
        print('十进制 -> 十六进制 : %d -> %#x' % (num, num))
        print('十进制 -> 八进制 : %d -> %#o' % (num, num))
        print('十进制 -> 二进制 : %d -> ' % num, bin(num))
    else:
        q = False

零基础入门学习Python(14)-格式化字符串_第5张图片

你可能感兴趣的:(python)