码迷,mamicode.com
首页 > 编程语言 > 详细

python字符串格式化的几种方式

时间:2019-10-18 22:04:43      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:span   简单   求和   标记   hello   没有   开头   括号   head   

1.%格式符

name = 李四
age = 18
a = "姓名:%s,年龄:%s"%(name,age)
print(a)     #姓名:李四,年龄:18
?
b = "%(name)s,%(age)s"%{name:张三,age:18}
print(b)     #张三,18

这种格式化并不是很好,因为它很冗长并且容易导致错误,比如没有正确显示元组或字典

2.str.format()

name = 李四
age = 18
# 替换字段用大括号进行标记
a1 = "hello, {}. you are {}?".format(name,age)
print(a1)     #hello, 李四. you are 18?
?
# 通过索引来以其他顺序引用变量
a2 = "hello, {1}. you are {0}?".format(age,name)
print(a2)    #hello, 李四. you are 18?
?
# 通过参数来以其他顺序引用变量
a3 = "hello, {name}. you are {age1}?".format(age1=age,name=name)
print(a3)    #hello, 李四. you are 18?
?
# 从字典中读取数据时还可以使用 **
data = {"name":"张三","age":18}
a4 = "hello, {name}. you are {age}?".format(**data)
print(a4)    #hello, 李四. you are 18?

在处理多个参数和更长的字符串时仍然可能非常冗长

3.f-Strings

f-strings 是指以 f 或 F 开头的字符串,其中以 {} 包含的表达式会进行值替换。

name = 李四
age = 18
# F 和 f 的简单使用
b1 = f"hello, {name}. you are {age}?"
b2 = F"hello, {name}. you are {age}?"
print(b1)     # hello, 李四. you are 18?
print(b2)     # hello, 李四. you are 18?

# 字典也可以
teacher = {name: meet, age: 18}
msg = f"The teacher is {teacher[‘name‘]}, aged {teacher[‘age‘]}"
print(msg)  # The comedian is meet, aged 18

# 列表也行
l1 = [meet, 18]
msg = f姓名:{l1[0]},年龄:{l1[1]}.
print(msg)  # 姓名:meet,年龄:18.

#可以插入表达式
def sum_a_b(a,b):
    return a + b
a = 1
b = 2
print(求和的结果为 + f{sum_a_b(a,b)})

#多行f  反斜杠
name = barry
age = 18
ajd = handsome

speaker = fHi {name}.          fYou are {age} years old.          fYou are a {ajd} guy!
print(speaker)   #Hi barry.You are 18 years old.You are a handsome guy!
print(f"{You are very \"handsome\"}")     #报错


#括号的处理  -->重点:两对为一组
print(f"{{73}}")  # {73}
print(f"{{{73}}}")  # {73}
print(f"{{{{73}}}}")  # {{73}}


m = 21
# ! , : { } ;这些标点不能出现在{} 这里面。
# print(f‘{;12}‘)  # 报错
# 所以使用lambda 表达式会出现一些问题。
# 解决方式:可将lambda嵌套在圆括号里面解决此问题。
x = 5
print(f{(lambda x: x*2) (x)})  # 10

 

python字符串格式化的几种方式

标签:span   简单   求和   标记   hello   没有   开头   括号   head   

原文地址:https://www.cnblogs.com/lilinyuan5474/p/11700812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!