gpt4 book ai didi

python - 为什么我会使用 ".format()"而不是 "+"?

转载 作者:行者123 更新时间:2023-11-28 20:43:06 25 4
gpt4 key购买 nike

我想知道为什么我应该使用这样的东西:

name = "Doe"
surname = "John"
print("He is {0} {1}".format(surname, name))

代替:

name = "Doe"
surname = "John"
print("He is" + surname + " " + name)

最佳答案

对于初学者,尝试使用 + 执行此操作:

>>> concatenate_me = (1,2,99999,100,600, 80)
>>>'{0} {0} {2} {2} {1} {2} {3} {5} {5} {4} {0} {2}'.format(*concatenate_me)

.format() 好处:

  • 包含占位符..{0}..{1}..{2}/。使用 .format,传递的参数被替换到它们各自的占位符中(基于它们的顺序)。这允许您重复使用参数,如上例所示。

  • 在每次替换为 .format 时,您都有一个 format specification (:)。该规范允许您控制您所做的每个替换的许多属性,并且有一个完整的迷你语言。

此外,.format 是一个函数,您可以在需要时将其作为参数传递。在 Python 3 中它被称为 advanced string formatting因为它比简单的连接更强大。


如果您真的也想使用 .format 函数,您可以做一些非常疯狂和灵活的事情,例如:

>>>'Python {0.version_info[0]:!<13.2%}'.format(sys)
'Python 300.00%!!!!!!'

还有一个关于字典的例子,展示它接受关键字参数的能力:

>>>my_dict = { 'adjective': 'cool', 'function':'format'}
>>>"Look how awesome my {adjective} Python {function} skills are!".format(**my_dict)
'Look how awesome my cool Python format skills are.'

Python docs 中还有一些进一步的示例和用途.

关于python - 为什么我会使用 ".format()"而不是 "+"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29290277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com