zoukankan      html  css  js  c++  java
  • 格式化输出

    格式化输出实现方式:

    1 format 

       format使用大括号‘{}’作为特殊字符代替‘%’,

       (1)res = '我{},今年{},工作是{}'.format('xyn','18','it')

         运行结果为:我xyn,今年18,工作是it

    (2)res = '我{0},今年{1},工作是{2},爱好{2}'.format('xyn','18','it') -------0代表索引,可重复利用
          我xyn,今年18,工作是it,爱好it

    (3) res = '我叫{name},年龄{old},工作{job}'.format(old='18',job='it',name='xyn')------------不需要一一对应,顺序可打乱
          我xyn,今年18,工作是it,爱好it

    2 %s,%d %表示占位符

          现有一需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

    ------------ info of Alex Li -----------
    Name  : Alex Li
    Age   : 22
    job   : Teacher
    Hobbie: girl
    ------------- end -----------------

         有三种方法可以实现此需求:

    (1)
    name = input('name:')
    age = int(input('age:'))
    print(type(age))
    job = input('job:')
    salary = input('salary:')
    info = '''
    - - - - info of {0} - - - -
    name:{0}
    age:{1}
    job:{2}
    salary:{3}
    ''' .format(name,age,job,salary)
    (2)
    info2 = '''
    - - - info of {_name}- - -
    name:{_name}
    jog:{_job}
    age:{_age}
    salary:{_salary}
    '''.format(_name=name,
    _age=age,
    _job=job,
    _salary=salary,
    )
    print(info2)

    (3)由于里面的 一些信息是需要用户输入的,无法预先知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦
    name = input("Name:")
    age = input("Age:")
    job = input("Job:")
    hobbie = input("Hobbie:")
    
    info = '''
    ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
    Name  : %s  #代表 name 
    Age   : %s  #代表 age  
    job   : %s  #代表 job 
    Hobbie: %s  #代表 hobbie 
    ------------- end -----------------
    ''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 
    
    print(info)

    %s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

    运行后出现了错误,%d需要一个数字,而不是str,  我们输入的是数字呀,查看数据类型的方法:type()

    age = input("Age:")
    print(type(age))
    

    执行输出是

    Age:22
    <class 'str'>
    

    这是因为input接收的所有输入默认都是字符串格式!

    要想程序不出错,你可以把str转成int

    age = int(  input("Age:")  )
    msg = "我是%s,年龄%d,目前学习进度为80%"%('金鑫',18)
    print(msg)

    这样会报错,因为在格式化输出里,你出现%默认为就是占位符,此时就需要输入80%%,告诉Python解释器这只是一个单纯的%,而不是占位符。

    msg = "我是%s,年龄%d,目前学习进度为80%%"%('金鑫',18)
  • 相关阅读:
    [原]写项目方案书的六字方针
    [原]简述Field,Attribute,Property的区别
    [原]Excel(电子表格)中的大写变成小写
    [原]滚动的图片或文字(有缝)
    [原]按字母索引(asp版)
    [原]sql语句上一篇,下一篇
    [原]选中行后高亮显示
    自定义报表开发、使用手册
    男人必须终身牢记的一句话
    在sqlplus中操作blob和clob
  • 原文地址:https://www.cnblogs.com/xyn123/p/8858143.html
Copyright © 2011-2022 走看看