• 第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_work4_python2_code_python3_LittleTurtleStudio> python ex15.py
    请输入一个整数(输入Q结束程序):145
    十进制:145->二进制:10010001
    十进制:145->二进制: 0b10010001
    十进制:145->十六进制:0x91
    十进制:145->十六进制:0x91
    十进制:145->八进制:0o221
    十进制:145->八进制:0o221
    请输入一个整数(输入Q结束程序):Q
  • 相关阅读:
    [zoj3627]模拟吧
    [zoj3623]背包模型
    [hdu4358]树状数组
    [hdu1272]并查集
    [hdu3308]线段树
    [hdu5033]单调队列
    [hdu1506]单调队列(栈)
    [hdu2888]二维RMQ
    [hdu4123]dfs区间化+RMQ
    [hdu1242]优先队列
  • 原文地址:https://www.cnblogs.com/luoxun/p/13261819.html
Copyright © 2020-2023  润新知