雖然你已經(jīng)在程序中寫過字符串了,你還沒學(xué)過它們的用處。在這節(jié)練習(xí)中我們將使用復(fù)雜的字符串來建立一系列的變量,從中你將學(xué)到它們的用途。首先我們解釋一下字符串是什么。
字符串通常是指你想要展示給別人的、或者是你想要從程序里“導(dǎo)出”的一小段字符。Python 可以通過文本里的雙引號"或者單引號'識別出字符串來。這在你以前的 print 練習(xí)中你已經(jīng)見過很多次了。如果你把單引號或者雙引號括起來的文本放到 print 后面,它們就會被 python 打印出來。
字符串可以包含格式化字符%s,這個你之前也見過的。你只要將格式化的變量放到字符串中,再緊跟著一個百分號 %(percent),再緊跟著變量名即可。 唯一要注意的地方,是如果你想要在字符串中通過格式化字符放入多個變量的時候,你需要將變量放到 ( ) 圓括號(parenthesis)中,而且變量之間用, 逗號(comma)隔開。就像你逛商店說“我要買牛奶、面包、雞蛋、湯”一樣,只不過程序員說的是”(milk, eggs, bread, soup)”。
我們將練習(xí)輸入大量的字符串、變量、和格式化字符,并且將它們打印出來。我們還將練習(xí)使用簡寫的變量名。程序員喜歡用高難度的簡寫來節(jié)約打字時間,所以我們現(xiàn)在就提早學(xué)會這個,這樣你就能讀懂并且寫出這些東西了。
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
$ 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.找到所有的”字符串包含字符串”的位置,總共有四個位置。 3.你確定只有四個位置嗎?你怎么知道的?也許我在騙你呢。 4.解釋一下為什么用+連起來 w 和 e 就可以生成一個更長的字符串。
用%r 顯示的是變量“原始”的數(shù)據(jù)值,%r 在打印的時候能夠重現(xiàn)它代表的對象,但其他的符號用來給用戶顯示變量值??聪旅娴睦永斫庖幌拢?/p>
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 給字符串加了單引號
你要重新檢查你的代碼是否跟示例中的一樣。發(fā)生這個錯誤的原因是你寫的%的格式化字符串?dāng)?shù)量大于你給出的變量數(shù)量。再檢查一遍,看你的代碼哪里出錯了。
大部分情況下這只是一種風(fēng)格,在一個用雙引號標(biāo)識的字符串內(nèi)部我也會用單引號來標(biāo)識其中子串??纯创a的第 10 行我是如何使用單雙引號的。如果你認(rèn)為一個笑話很好笑,你能否些 Ihilarious = True? 答案當(dāng)時是可以,而且,我們會在習(xí)題 27 中學(xué)到布爾值 。