6

Python 入门系列 —— 10. string 拼接 和 format 介绍

 3 years ago
source link: https://segmentfault.com/a/1190000038787491
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

string 拼接

可以使用 + 实现两个字符串的拼接。

a = "Hello"
b = "World"
c = a + b
print(c)

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
HelloWorld

如果想调整一下格式,可以在 hellworld 之间加上空格,如下所示:

a = "Hello"
b = "World"
c = a + " " + b
print(c)

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
Hello World

string 格式化

还记得在前面的文章中提到,将 string 和 int 进行拼接是行不通的,这时候的解决方案就是用 format ,先看一下之前的例子。

age = 36
txt = "My name is John, I am " + age
print(txt)

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
Traceback (most recent call last):
  File "e:/dream/markdown/python/app/app.py", line 2, in <module>
    txt = "My name is John, I am " + age
TypeError: can only concatenate str (not "int") to str

接下来看看 format,在字符串中设置一个占位符 {} ,占位符的参数通过 format 传入,如下所示:

age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
My name is John, and I am 36

有些朋友可能就要问了,既然支持一个 占位符,那能不能支持多个占位符呢? 当然可以啦,如下所示:

quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
I want 3 pieces of item 567 for 49.95 dollars.

除了这种通用的占位符,还可以使用类似 C# 中的数字型占位符形式,实现精准指向性占位。

quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
I want to pay 49.95 dollars for 3 pieces of item 567.

译文链接: https://www.w3schools.com/pyt...

更多高质量干货:参见我的 GitHub: python


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK