#格式化字符串
a=2
b=3
print(a+b)
#2+3=5
print(str(a)+"+"+str(b)+"="+str(a+b))#传统的拼接方式
print('%d+%d=%d'%(a,b,a+b)) #格式化字符串
#格式化字符串,方案一 %s表示此处有一个字符串,%d表示此处有一个整数
info='我叫%s,你叫%s,他叫%s,今年是%d年'%('刘德华','张学友','黎明',2020)
print(info)
#前面的参数比后面多,则报错TypeError: not enough arguments for format string(没有足够的参数)
info='我叫%s,你叫%s,他叫%s,今年是%d年'%('刘德华','张学友','黎明')
print(info)
#前面的参数比后面少,则报错TypeError: not all arguments converted during string formatting
info='我叫%s,你叫%s,他叫%s'%('刘德华','张学友','黎明',2020)
print(info)
#%ns 表示至少显示n位,不足用空格补齐
info='我叫%5s,你叫%5s,他叫%5s,今年是%10d年'%('刘德华','张学友','黎明',2020)
print(info)
#如果本身就超过了%ns的n,那么就正常显示
info='我叫%5s,你叫%5s,他叫%5s,今年是%10d年'%('高手名字就得特别长','张学友','黎明',2020)
print(info)
#数字除了可以补空格,还可以根据需要,在左侧补0
info='我叫%5s,你叫%5s,他叫%5s,今年是%010d年'%('高手名字就得特别长','张学友','黎明',2020)
print(info)
#方案一中,默认情况下,都是右对齐,如果需要将右对齐改成左对齐,那么需要加一个负号
info='我叫%-5s,你叫%-5s,他叫%-5s,今年是%-10d年'%('高手名字就得特别长','张学友','黎明',2020)
print(info)
#浮点型 %f 默认情况下,保留6位小数
number1='您输入的数字是%f'%(3.6)
print(number1)
#%n.mf n表示最少显示n位,m表示保留m位小数
number1='您输入的数字是%6.1f'%(3.6)
print(number1)
number1='您输入的数字是%6.0f'%(3.6) #四舍五入
print(number1)
#方案二 .format
str1='My name is {},Your name is {},age is {}.'.format('张三','李四',80)
print(str1)
#前面的参数比后面多,则报错,IndexError: Replacement index 2 out of range for positional args tuple
str1='My name is {},Your name is {},age is {}.'.format('张三','李四')
print(str1)
#后面的参数比前面多,不会报错
str1='My name is {},Your name is {},age is {}.'.format('张三','李四',80,100)
print(str1)
#除了顺序取值的方式之外,也可以使用下标取值的方式
str1='My name is {1},Your name is {0},age is {3}.'.format('张三','李四',80,100)
print(str1)
#顺序取值与下标取值不可以混用,以下写法会报错
str1='My name is {1},Your name is {0},age is {}.'.format('张三','李四',80,100)
print(str1)
#补齐到至少显示n位,在{}里加上:n
str1='My name is {:10},Your name is {:10},age is {:6}.'.format('张三','李四',80)
print(str1)
#下标取值和补齐可以一起用,{下标:n}
str1='My name is {1:10},Your name is {0:10},age is {2:6}.'.format('张三','李四',80)
print(str1)
#在方案二中,字符串默认左对齐,数字默认右对齐,可以根据需要修改对齐方式
#< 左对齐 ,> 右对齐,^ 居中对齐
str1='My name is {:>10},Your name is {:<10},age is {:^6}.'.format('张三','李四',80)
print(str1)
#数字可以补0
str1='My name is {:10},Your name is {:10},age is {:06}.'.format('张三','李四',80)
print(str1)
#在python3.6以后的版本中,可以用f'内容'写法
a=2
b=3
print(f'{a}+{b}={a+b}')
x='张三'
y='李四'
z=80
str1=f'My name is {x},Your name is {y},age is {z}'
print(str1)