《笨辦法學 python3》系列練習計劃——6. 字符串和文本

額外內容

前幾節的練習其實一直在用字符串,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,進入練習正題。




題目

本題還是字符串的練習,我們將鍵入大量字符串、變量和格式化字符。另外還將練習使用程序員常用的變量名簡寫。

加分練習

  1. 給程序加註釋,說明每行代碼的作用。
  2. 找到所有 4 處“字符串包含字符串”的位置。
  3. Zed 可能撒謊,檢查是否只有 4 處。
  4. 爲什麼 we+ 連起來就可以生成更長的字符串。




我的答案

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 進行運算
列表、元祖則同樣做拼接變成一個列表或元祖
但是字典、集合不能用 + 拼接或相加




返回目錄

《笨辦法學 python3》系列練習計劃——目錄

發佈了56 篇原創文章 · 獲贊 138 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章