Python 入门 之 格式化输出
1、格式化
(1)% 为占位
<1> %s --- 占字符串的位置(数字、字符串都能够进行填充)
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobby = input('请输入爱好:')
msg = '''
----------- info of Cai Li ----------
Name : %s
Age : %s
job : %s
Hobbie: %s
--------------- end ------------------
'''
print(msg%(name,age,job,hobby))
<2> %d / %i --- 占数字的位置
name = input('>>>')
s1 = '1234%d' % int(name)
s2 = '1234%i' % int(name)
print(s1)
print(s2)
# 结果:
>>>89
123489
123489
# %d 和 %i 这种格式化只能用数字来填补占位
<3> %% --- 转义
占的位置和填充必须一一对应,填充的时候按照顺序填充
num = input('>>>')
s= '目前学习进度:%s%%' % num
print(s)
# 结果:
>>>80
目前学习进度:80%
# 如果我们字符串中想要显示单独的%就需要用来个%%来转义,不然程序会认为那是一个占位
<4> %s :万能的格式
(2)%() :为填位(要与占位一一对应)
# 举例:名片的制作
name = input("name:")
age = input("age:")
addr = input("addr:")
phone = input("phone:")
info = """
-----------info----------
姓名:%s
年龄:%d
公司:%s
电话:%d
------------end-----------
""" % (name,int(age),addr,int(phone))
print(info)
2、f"{ }" -- f-string
Python3.6版本及以上才能使用 f"{ }" :
name = "小明"
print(f"{name}的学习进度2%")
print(f"{input('>>>')},{23},{34},{45}")
print(f"{input('>>>')},{23},{34},{45}")
print(f"{'liang'},{15},{'女'}")
(1)任意表达式
f"姓名:{name} 年龄:{age}"
f"姓名:{'cai'}"
f"年龄:{34}"
(2)可以插入表达式
print(f"{3 if 3>2 else 2}")
(3)多行f
speaker = f'Hi {name}.'\
f'You are {age} years old.'\
f'You are a {ajd} guy!'
(4)其他细节
# ! , : { } ;这些标点不能出现在{} 这里面。
# print(f'{;12}') # 报错
# 所以使用lambda 表达式会出现一些问题。
# 解决方式:可将lambda嵌套在圆括号里面解决此问题。
3、format()
format()占位填充方式 :按照位置顺序进行填充;按照索引填充;按照名字进行新填充
name = "{}今年:{}".format("cai",18) # 按照位置顺序进行填充
print(name)
name = "{1}今年:{0}".format(18,"cai") # 按照索引进行填充
print(name)
name = "{name}今年:{age}".format(name="cai",age=18) # 按照名字进行填充
print(name)
天之涯,海之角,吾与money天荒地老。