Python 格式化输出相关知识

Python格式化输出

需求:字符串中想让某些位置变成动态可传入的,首先要考虑到格式化输出。

  1. % 占位符

    • %占位符使用示例,格式化一个字符串变量,然后输出。
      name = input('请输入姓名:')
      age = input('请输入年龄:')
      job = input('请输入工作:')
      hobbie = input('请输入爱好:')
      # 多行文本占位符跟最后,用%号隔开并加小括号标记,变量对应位置
      msg = '''------------info of %s-----------------
      Name :%s
      Age :%s
      Job :%s
      Hobbie :%s
      ------------------ end --------------------''' % (name, name, age, job, hobbie)
      print(msg)
      
    • 在格式化输出中,如果只想表示一个%号,而不是作为占位符使用的话使用两个%%符号即可
      print('%s项目完成进度为%d%%' % ('sheet1工作表整理',50))
      
  2. 字符串的format()方法, 格式化输出

    • 第一种用法:相当于占位符
      print('我叫{},今年{}岁,性别:{}。'.format('amwkvi',27,'男'))
      
    • 第二种用法:重复调用格式化输出列表中变量或值
      print('我叫{0},今年{1}岁,性别:{2}。我的姓名是{0}'.format('amwkvi',27,'男'))
      # 重复调用格式化输出列表中变量或值
      
    • 第三种用法:键值对,无序
      print('我叫{name},今年{age}岁,性别:{sex}。'.format(age=27,sex='男',name='amwkvi'))
      
  3. Python3.6版本之后的新特性(尽量使用该方法)

    优点:1.结构更清晰和简化;2.可以结合表达式和函数使用;3.效率提升很多。

    • 在字符串前面加上字母'f'或'F',字符串中用大括号进行对应变量格式化:
      name = 'walking'
      age = 20
      sex = '男'
      print(f'我叫{name},今年{age}岁,性别:{sex}。')
      
    • 可以加表达式,结合列表、字典进行格式化字符串:
      # 利用字典信息格式化字符串
      dict1 = {'name': 'walking', 'age': 20, 'sex': '男'}
      print(f"我叫{dict1['name']},今年{dict1['age']}岁,性别:{dict1['sex']}")
      # 利用其他表达式格式化字符串
      num1 = 9
      print(f'数字{num1}的平方是:{num1 ** 2}')
      name = 'walking'
      print(f'我的名字是:{name.upper()}')
      >>>我叫walking,今年20岁,性别:男
      数字9的平方是:81
      我的名字是:WALKING
      
    • 结合函数格式化字符串:
      def mysum(a,b):
          return a*b
      print(f'最终结果是:{mysum(3,7)}')
      >>>最终结果是:21
      
posted @ 2020-08-05 20:36  amwkvi  阅读(106)  评论(0编辑  收藏  举报