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

简介: [python]格式化字符串的几种方式

目录

python中有以下几种方法可以格式化字符串

方式一:C风格%操作符

这种方法偏C语言风格,C语言中的printf选项都可以当成Python的格式说明符来用,例如%s%x%f

# 示例代码00x00:
name = 'zhangsan'
salary = 12345.67
print("name is %s, salary is %.2f" %(name,salary))
# name is zhangsan, salary is 12345.67

这种方法也可以将元组换成字典,避免%操作符两侧的顺序不匹配的问题。

# 示例代码00x01:
print("name is %(name)s, salary is %(salary).2f" %{'name':name, 'salary':salary})
# name is zhangsan, salary is 12345.67

方式二:内置的format函数与str类的format方法

python3添加了高级字符串格式化机制,其表达能力比C风格要强一些,且不需要使用%操作符。

在传给format函数的格式里,逗号表示显示千位分隔符,^表示居中对齐。

# 示例代码01x00:
print("name is "+ format(name,'^20s') + ", salary is " + format(salary,'^20,.2f'))
# name is       zhangsan      , salary is      12,345.67

也可以在{}内写冒号,把格式化说明符写在冒号右边。

# 示例代码01x01:
print("name is {:<10}, salary is {:^20.2f}".format(name,salary))
# name is zhangsan  , salary is       12345.67

调用str.format方法的时候,也可以给str{}里面写上数字,用来指代format方法在这个位置所接收到的参数值位置索引

方式三:插值格式字符串

PYthon3.6添加了一种新的特性,叫做插值格式字符串,即f-string。新语法特性要求在格式字符串的前面加上字母f作为前缀。编写和阅读都更简洁一些。

# 示例代码02x00:
print(f"name is {name}, salary is {salary}")
print(f"name is {name:^10}, salary is {salary:^13.2f}")
# name is zhangsan, salary is 12345.67
# name is  zhangsan , salary is   12345.67
相关文章
|
机器学习/深度学习 人工智能 搜索推荐
人工智能推荐系统
人工智能推荐系统
1093 2
|
Shell
openstack 查看所有项目配额的命令
在OpenStack中,可以使用以下命令来查看所有项目的配额: 1. 查看所有项目的配额列表: ```shell openstack quota list ``` 2. 查看指定项目的配额: ```shell openstack quota show <project_id> ``` 3. 查看默认项目的配额: ```shell openstack quota default-show ``` 这些命令将显示每个项目的配额信息,包括各种资源的配额限制和使用情况。请注意,您需要具有适当的权限和角色才能执行这些命令。
404 0
|
10月前
|
负载均衡 网络协议 算法
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
272 4
|
3月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
217 12
|
5月前
|
NoSQL Java Redis
基于Redisson和自定义注解的分布式锁实现策略。
在实现分布式锁时,保证各个组件配置恰当、异常处理充足、资源清理彻底是至关重要的。这样保障了在分布布局场景下,锁的正确性和高效性,使得系统的稳健性得到增强。通过这种方式,可以有效预防并发环境下的资源冲突问题。
278 29
|
5月前
|
Kubernetes API Go
利用k8s client-go库创建CRD的informer的操作流程
以上步骤将创建一个针对特定 CRD 的 informer,该 informer 会触发相应的事件处理程序以便您对事件进行响应。这是一个高级的方案,需要对 Go 编程语言和 Kubernetes 内部机制有深入的了解。在应用之前,强烈建议深入了解 Kubernetes client-go 库以及其工作原理。
182 9
|
5月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
343 10
|
4月前
|
NoSQL 前端开发 JavaScript
用PHP实现持续监听Redis订阅并将消息推送至前端的技术
通过上述步骤,你可以构建一个服务器端PHP脚本持续监听Redis订阅,并利用WebSocket服务器将消息实时推送到前端的流程。这种机制适用于聊天应用程序、实时通知系统以及任何需要即时数据更新的场景。
153 0
|
7月前
|
关系型数据库 MySQL Linux
实现MySQL数据库的定时自动备份脚本。
拿走,不谢,这个脚本配方(指引)保证你的数据库数据像蛋糕店一样地天天更新,还能确保老旧的蛋糕(数据)不会堆积满仓库。这下可好,数据安全有保障,数据库管理员也能轻松一点,偶尔闲下来的时候,煮杯咖啡,看个剧岂不美哉?别忘了偶尔检查一下你的自动备份是否正常工作,以防万一蛋糕机器出了点小差错。
349 20
|
8月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
375 28