python字符串解析_python字符串格式化方式解析

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 = f'Hi {name}.'\

f'You are {age} years old.'\

f'You 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值