python 字符串和文本

2021-09-15 14:43 更新

練習(xí)6.字符串和文本

雖然你已經(jīng)在程序中寫過字符串了,你還沒學(xué)過它們的用處。在這節(jié)練習(xí)中我們將使用復(fù)雜的字符串來建立一系列的變量,從中你將學(xué)到它們的用途。首先我們解釋一下字符串是什么。

字符串通常是指你想要展示給別人的、或者是你想要從程序里“導(dǎo)出”的一小段字符。Python 可以通過文本里的雙引號(hào)"或者單引號(hào)'識(shí)別出字符串來。這在你以前的 print 練習(xí)中你已經(jīng)見過很多次了。如果你把單引號(hào)或者雙引號(hào)括起來的文本放到 print 后面,它們就會(huì)被 python 打印出來。

字符串可以包含格式化字符%s,這個(gè)你之前也見過的。你只要將格式化的變量放到字符串中,再緊跟著一個(gè)百分號(hào) %(percent),再緊跟著變量名即可。 唯一要注意的地方,是如果你想要在字符串中通過格式化字符放入多個(gè)變量的時(shí)候,你需要將變量放到 ( ) 圓括號(hào)(parenthesis)中,而且變量之間用, 逗號(hào)(comma)隔開。就像你逛商店說“我要買牛奶、面包、雞蛋、湯”一樣,只不過程序員說的是”(milk, eggs, bread, soup)”。

我們將練習(xí)輸入大量的字符串、變量、和格式化字符,并且將它們打印出來。我們還將練習(xí)使用簡寫的變量名。程序員喜歡用高難度的簡寫來節(jié)約打字時(shí)間,所以我們現(xiàn)在就提早學(xué)會(huì)這個(gè),這樣你就能讀懂并且寫出這些東西了。

x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)

print x
print y

print "I said: %r." % x
print "I also said: '%s'." % y

hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r"

print joke_evaluation % hilarious

w = "This is the left side of..."
e = "a string with a right side."

print w + e

你看到的結(jié)果

$ python ex6.py
There are 10 types of people.
Those who know binary and those who don't.
I said: 'There are 10 types of people.'.
I also said: 'Those who know binary and those who don't.'.
Isn't that joke so funny?! False
This is the left side of...a string with a right side.

附加題

  1. 通讀程序,并給每一行加上注釋,解釋下這行的作用。
  2. 找到所有的”字符串包含字符串”的位置,總共有四個(gè)位置。
  3. 你確定只有四個(gè)位置嗎?你怎么知道的?也許我在騙你呢。
  4. 解釋一下為什么用+連起來 w 和 e 就可以生成一個(gè)更長的字符串。

常見問題

Q:%r%s有什么不同?

%r顯示的是變量“原始”的數(shù)據(jù)值,%r在打印的時(shí)候能夠重現(xiàn)它代表的對象,但其他的符號(hào)用來給用戶顯示變量值。看下面的例子理解一下:

text = "I am %d years old." % 22
print "I said: %s." % text
print "I said: %r." % text

返回的結(jié)果:

I said: I am 22 years old..
I said: 'I am 22 years old.'. // %r 給字符串加了單引號(hào)

Q:我遇到這個(gè)報(bào)錯(cuò):not all arguments converted during string formatting.

你要重新檢查你的代碼是否跟示例中的一樣。發(fā)生這個(gè)錯(cuò)誤的原因是你寫的%的格式化字符串?dāng)?shù)量大于你給出的變量數(shù)量。再檢查一遍,看你的代碼哪里出錯(cuò)了。

Q:為什么用'(單引號(hào))標(biāo)識(shí)字符串而不是其他的符號(hào)?

大部分情況下這只是一種風(fēng)格,在一個(gè)用雙引號(hào)標(biāo)識(shí)的字符串內(nèi)部我也會(huì)用單引號(hào)來標(biāo)識(shí)其中子串??纯创a的第10行我是如何使用單雙引號(hào)的。如果你認(rèn)為一個(gè)笑話很好笑,你能否些Ihilarious = True? 答案當(dāng)時(shí)是可以,而且,我們會(huì)在習(xí)題27中學(xué)到布爾值 。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)