Python 格式化字符串传值问题(format() 与 %s)
2021/10/14 1:14:46
本文主要是介绍Python 格式化字符串传值问题(format() 与 %s),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
# 1. 引言
# 2. %s
# 3. str.format()
## 3.1 位置参数
## 3.2 关键字参数
## 3.3 通过对象
# 1. 引言
官方建议,格式化字符串时使用"format"代替使用"%",因为可读性更强;但是为了读懂源码,我们需要两者都学会才行
# 2. %s
一般为 2 种形式,第一种多个格式化字符串需要传值的时候是按照前后顺序来传值的,这就带来一个问题:数量多了以后,很难清楚哪一个占位符对应哪一个实参.
因此参数较多的情况下,我们用字典赋值,%(name)s 对应 {"name":"LIUYU"}.
但是此种形式,需要先验知识背书,即你知道%s这个奇形怪状的东西是什么,可读性也不是很好,于是有了str.format().
# 3. str.format()
print("hello.My name is {name}, I'm from {nationality}".format(name='LIUYU',nationality='China'))
可以说,str.format() 是Python最为推荐的字符串格式化方法
## 3.1 位置参数
print("{},{}".format('LIUYU','China')) print("{1},{0},{1}".format('LIUYU','China')) li = ['LIUYU','China'] print("{},{}".format(*li)) LIUYU,China China,LIUYU,China LIUYU,China
注意,传入列表是用*,若是不用*,则会把li当成一个列表去处理,即0表示li是format里的下标为0的参数,而这个参数是个列表,可以[0],尊重数据结构了属于是.
print('name is {0[0]} age is {0[1]}').format(li) # output: name is LIUYU age is 20
## 3.2 关键字参数
print("hello.My name is {name}, I'm from {nationality}".format(name='LIUYU',nationality='China')) dict = {'name':'LIUYU','nationality':'China'} print("{name},{nationality}".format(**dict))
注意,传入字典是用**,如果不用的话,应该也要尊重一波数据结构:
dict = {'name':'LIUYU','nationality':'China'} print("{0[name]},{0[nationality]}".format(dict)) # output: LIUYU,China
## 3.3 通过对象
class Person: def __init__(self, name, age): self.name, self.age = name, age def __str__(self): return 'This guy is {self.name},who is {self.age} years old.'.format(self=self) print(Person('LIUYU', 20)) # output: This guy is LIUYU,who is 20 years old.
参考文章
- Python模块的使用-- pymysql通过字典插入数据_范翻番樊的博客-CSDN博客
- Python 函数参数前面一个星号(*)和两个星号(**)的区别 | 菜鸟教程
- Python3 MySQL 数据库连接 – PyMySQL 驱动 | 菜鸟教程
- python中将字典作为参数传入函数_single-tracking的博客-CSDN博客_python传入字典参数
这篇关于Python 格式化字符串传值问题(format() 与 %s)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程