額外內容
前幾節的練習其實一直在用字符串,python 中使用英文引號表示字符串:
print("雙引號表示字符串")
print('單引號表示字符串')
# 使用單引號還是雙引號 PEP8 沒有特別規定,
# 不過似乎有輸出字符用雙引號的習俗如我們常用的 print() 的內容
# 如何打印有引號的字符串?
print('館主說:"當字符串中已經使用了一種引號時的時候,可以用另一種引號包裹字符串"')
# 中英混輸時,中文標點經常在個我們搗亂製造一些麻煩和 bug,
# 不過不過我們也可以反過來使用中文引號,算不算神 bug 呢?
# 爲了演示上面還是用了英文引號。
print("""使用三個"時
可以進行多行編輯,
當然三個'是不是也行呢?""")
# 注意上面對齊的問題,雖然對齊了代碼似乎很好看,但輸出就...
Python3 VS. Python2
中文環境說字符串就少不了說說 Python 兩大版本間和字符串不得不說的那段故事了。
現在的計算機標準都是米國人弄的,也許當年也許沒考慮我等二、三世界的國家能用上計算機這種高科技,又或者什麼客觀原因吧,總之最早的計算機需要把 1 和 0 轉化的文字只有一些標點和 26 個英文的大小寫。這種翻譯編碼叫做 ASCII
。
後來美帝國主義的魔爪伸向了更多的國家,於是帶來了 ASCII
這本字典無法容納更多語言翻譯的問題。爲了解決問題是就有了各國語言專用字典(中文:GBK、GB18030、GIB5等)、萬國字典(如 unicode 及其節約版 utf-8 )等方案。具體介紹廖雪峯老師的介紹更清楚
然後就是重點啦
Python2 默認的字符串是 ASCII
編碼,使用其他語言會出錯,需要在字符串前加 u
表示字符串使用 unicode
編碼,例如 u'python2 中要這樣寫'
。
Python3 注重優雅的 python 社區自然不能讓脫褲子這種多此一舉不夠優雅的事情繼續下去,於是在 python3 中默認字符串編輯就變爲了 unicode
。從此我們再也不用過多擔心字符編碼帶來的各種麻煩了。
OK,進入練習正題。
題目
本題還是字符串的練習,我們將鍵入大量字符串、變量和格式化字符。另外還將練習使用程序員常用的變量名簡寫。
加分練習
- 給程序加註釋,說明每行代碼的作用。
- 找到所有 4 處“字符串包含字符串”的位置。
- Zed 可能撒謊,檢查是否只有 4 處。
- 爲什麼
w
和e
用+
連起來就可以生成更長的字符串。
我的答案
6.0 基礎練習 + 6.1 註釋
# 在變量中使用格式化字符
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)
# 利用 %r 格式化格式化字符顯示原始字符的引號
# 打印字符串和格式化的變量
print("I said: %r." % x)
print("I also said: '%s'." % y)
# 這裏格式化了一個布爾型變量 False
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)
6.2 找到四處“字符串包含字符串”的位置
y = "Those who know %s and those who %s." %(binary, do_not)
# 第一、二處 ^ ^
# 第三處
print("I said: %r." % x)
# 第四處
print("I also said: '%s'." % y)
6.3 還有其他字符串的迭代引用麼?
木有了,其他兩處看起來像但不是。因爲沒有引號,不是字符串:
x = "There are %d types of people." % 10
# 這裏 10 是數字,不是字符串。如果是 '10' 就是了
hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r"
# 如同我在注視中所寫,這裏是 hilarious 是布爾型變量,而非字符串
6.4 爲什麼字符串可以用 +
連接起來?
館主我比較笨這種天生的、本來就有的東西我真不知道 why。要說怎麼加的到是瞭解一點。
python 的加分運算符 +
會嘗試把兩邊的東西加在一起,即便不是數字。
如果兩邊是字符串,則做拼接也就是 ‘a’ + ‘b’
等於 'ab'
如果是布爾型,則 False = 0 True = 1 進行運算
列表、元祖則同樣做拼接變成一個列表或元祖
但是字典、集合不能用 +
拼接或相加