第15讲:字符串格式化

一 字符串的格式化

格式化字符串:就是按照统一的规格去输出字符串

1  format格式化函数

  • 语法:通过 {} 和 : 来代替以前的 
  • 位置参数
    • 默认位置:不指定格式化位置,按照默认顺序格式化
      • >>> "{} love {}.{}".format("I","FishC","com")
        'I love FishC.com'

    • 设置位置:设置数字顺序指定格式化的位置
      • >>> "{0} love {1}.{2}".format("I","FishC","com")
        'I love FishC.com'
        >>> "{2} love {0}.{1}".format("I","FishC","com")
        'com love I.FishC'

    • 设置关键字:设置关键字指定格式化的内容
      • >>> "{a} love {b}.{c}".format(a="I",b="FishC",c="com")
        'I love FishC.com'
        >>> "{c} love {b}.{a}".format(a="I",b="FishC",c="com")
        'com love FishC.I'

    • 位置参数和关键字参数综合:位置参数必须在关键字参数之前,否则会报错,提示在相应位置没有设置关键字
      • >>> "{0} love {b}.{c}".format("I",b="FishC",c="com")
        'I love FishC.com'
        >>> "{a} love {b}.{0}".format("I",b="FishC","com")
        File "<stdin>", line 1
        SyntaxError: positional argument follows keyword argument

  • 精度控制
    • :号后面设置精度(以.开始加上精度),然后用f结束,若不是设置,默认为精度为6,自动四舍五入,可带符号显示数字正负标志。
    • >>> "{0:.1f}{1}".format(27.658,"GB")
      '27.7GB'

2 格式化字符%

  • 字符串格式化符号含义
  • 格式化操作符辅助命令
  • Python 的转义字符及其含义
  • 一些例子
    • >>> '%d %s %c' % (89,99,108)
      '89 99 l'
      
      >>> '%d + %d = %d' % (2,5,2+5)
      '2 + 5 = 7'
      
      >>> '%o' % 109
      '155'
      
      >>> '%x' % 198
      'c6'
      >>> '%X' % 198
      'C6'
      
      >>> '%f' % 27.908
      '27.908000'
      
      >>> '%e' % 27.908
      '2.790800e+01'
      
      >>> '%g' % 27.908
      '27.908'
      
      >>> '%4.2f' % 27.908
      '27.91'
      
      >>> '%10d' % 19
      '        19'
      
      >>> '%-10d' % 19
      '19        '
      
      >>> '%10+d' % 19
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      ValueError: unsupported format character '+' (0x2b) at index 3
      
      >>> '%+d' % 19
      '+19'
      >>> '%+d' % -19
      '-19'

二 课后习题

0. 编写一个进制转换程序ex15.py:

"""功能:进制转换
"""

q = True

while q:
    num = input("请输入一个整数(输入Q结束程序):")

    if num != 'Q':
        num = int(num)
        
        print("十进制:{}->二进制:{:b}".format(num,num))
        print("十进制:%d->二进制:" % num,bin(num))   

        print("十进制:{}->十六进制:0x{:x}".format(num,num))
        print("十进制:%d->十六进制:0x%x" % (num,num))

        print("十进制:{}->八进制:0o{:o}".format(num,num))
        print("十进制:%d->八进制:0o%o" % (num,num))
    else:
        q = False

执行结果:

PS E:\3_work\4_python\2_code_python\03_LittleTurtleStudio> python ex15.py
请输入一个整数(输入Q结束程序):145
十进制:145->二进制:10010001
十进制:145->二进制: 0b10010001
十进制:145->十六进制:0x91
十进制:145->十六进制:0x91
十进制:145->八进制:0o221
十进制:145->八进制:0o221
请输入一个整数(输入Q结束程序):Q

 

posted @ 2020-07-07 16:49  洛兰123  阅读(652)  评论(0编辑  收藏  举报