返回顶部

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)
posted @ 2019-08-26 10:16  永亮  阅读(527)  评论(0编辑  收藏  举报