• (3)格式化输出(占位符)%


     程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式

    比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx.

    很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。这就用到了占位符,如:%s、%d

    %s代表字符串占位符(可以接收字符串也能接收数字),%d属于数字占位符

    例:name = 'Aliex'

    >>>age = '22'

    >>>name + age

    'Aliex22'

    >>>name * 10

    AliexAliexAliexAliexAliexAliexAliexAliexAliexAliex

    简单说明

    name = input('Name: ')

    age = input('Age: ')

    print(“name is : %s,age is : %s”%(name,age))   #所有占位符最后都要格式化定义占位符的映射

    PS:最后输出的年龄如果是%d则会直接报错,因为age输入的默认是字符串

    占位符的映射

    name = input('Name: ')

    age = input('Age: ')

    job = input('Job: ')

    hobbie = input('Hobbie: ')

    info = ''' ------------------info of %s------------------  #这行的%s就是代表后面括号里的第一个name(也可以用其他的变量赋值,但是这个变量一定是已经定义的)

    Name : %s  #这个%s代表

    name Age : %s  #这个%s代表 age

    Job : %s   #这个%s代表 job

    Hobbie : %s  #这个%s代表 hobbie

    -----------------end------------------

    '''%(name,name,age,job,hobbie)  #这里的%就是把前面的字符串和括号里的变量关联起来

    print(info)

    name = input('Name: ')

    age = int(input('Age: '))  #在input前面加一个int转换数据类型即可

    job = input('Job: ')

    hobbie = input('Hobbie: ')

    print(type(age))

    info = '''

    ------------------info of %s------------------

    Name : %s  #代表 name

    Age : %d #代表 age ,这里把原来的%s改成%d并不会报错,因为在开头定义了将age的值转换成整型

    Job : %s #代表 job

    Hobbie : %s #代表 hobbie

    -----------------end------------------

    '''%(name,name,age,job,hobbie)

    print(info)

    PS:在age的时候输入数字,但是会报错,告诉你需要一个数字,而不是一个字符串str。这时候我们使用type函数查看age的数据类型,会提示是str 所以input接收的所有输入默认都是字符串格式。解决办法就是将age后面的值加int将str变成整数的类型

    PS:反则我们也能把字符串转换成数字类型,str(yourStr)

  • 相关阅读:
    近期目标
    HDU
    BZOJ
    UVALive
    UVA
    HNOI2004 宠物收养所 (平衡二叉树)
    UVA
    HDU
    POJ
    康托展开与逆康托展开模板(O(n^2)/O(nlogn))
  • 原文地址:https://www.cnblogs.com/shizhengquan/p/9836858.html
Copyright © 2020-2023  润新知