本文來自異想之旅公開發布的Python教程,原文地址:https://www.yuque.com/yxzl/python
除了數字之外,字符便是計算機變成中最重要的概念了。你現在正在閱讀這篇文章正是某種編程語言(大概是 JavaScript)處理字符信息的傑作。
本節將講述字符串的四個知識點:轉義字符、切片、操作和自身方法,隨後補充多行字符串的書寫規則。
如何在電腦上打出換行符?你可能會說,簡單,按一下 Enter 就是了。但是這樣的操作輸入的字符並沒有顯示出來,計算機顯示時直接進行了換行這一動作……想要將回車等特殊字符像英文字母一樣打印出來,就需要轉義字符。
名詞解釋:轉義字符,字母前加
\
來表示常見的那些不能顯示的字符,如\t
\n
等,就稱為轉義字符,因為後面的字符都不是它本來的字符意思了。
print('\\\\')
\\
\’單引號(僅在使用單引號包裹字符串時必須)print('\\'')
'
\"雙引號(僅在使用雙引號包裹字符串時必須)print("\\"")
"
\b退格(Backspace)print('Hel\\blo')
Helo
\n換行print('a\\nb')
a(換行到下一行)b
\t橫向制表符(具體用途未來會有)print('Hello\\tWorld!')
Hello World!
\uxxxx十六進制 Unicode 編碼print('\\u6211\\u559c\\u6b22\\u4f60')
我喜歡你
\other其它的非轉義字符以普通格式輸出print('\\a')
a
轉義字符僅在輸出時有效。目前我們學到的輸出方式只有 print
。如果你在選擇開發工具時選擇了 Python 內置的 IDEA,那麼部分字符(例如 \b
)將無法生效,請自行查詢如何使用終端(cmd)運行 Python 解決此問題。
唔……忽然想放到講完列表再講。原因嘛,列表和字符串的切片原理是一樣的,而我有幾張現成的講列表切片的圖,不想再找一次了哈哈哈哈。具體請見 1.7 章節中的介紹。
此處的運算操作並非嚴格意義上的運算,更合適的名稱或許是“使用運算符的字符串操作”。
對兩個字符串做加法,本質上是將他們連接起來。
a = 'Hello'
b = 'World'
print(a + b)
# 輸出:HelloWorld
字符串的乘法是一個字符串 str 乘以一個整數 int,表示將字符串重復多少次。
a = 'QDZX'
print(a * 3)
# 輸出:QDZXQDZXQDZX
這部分直接看樣例代碼。
a = "qdZX HCCE"
print('---第一組---')
print(a.upper()) # 將所有字母轉換為大寫,輸出:QDZX HCCE
print(a.lower()) # 將所有字母轉換為小寫,輸出:qdzx hcce
print(a.capitalize()) # 將第一個字母轉換為大寫,其他字母轉換為小寫,輸出:Qdzx hcce
print(a.title()) # 將每個單詞的第一個字母轉換為大寫,其他字母轉換為小寫,輸出:Qdzx Hcce
print('---第二組---')
# 往下兩行請高手掌握
print(a.swapcase()) # 將大寫字母轉換為小寫,小寫字母轉換為大寫,輸出:QDzx hcce
print(a.isalpha()) # 判斷是否全部為字母或Unicode字符(可以簡單理解為不包含數字和英文模式的字符),輸出:False
print('---第三組---')
b = 'QDZX'
print(b.isupper()) # 判斷是否全部為大寫字母,輸出:True
print(b.islower()) # 判斷是否全部為小寫字母,輸出:False
print(b.istitle()) # 判斷是否全部為標題,輸出:False
print('---第四組---')
c = '12345.6789'
print(c.isdigit()) # 判斷是否全部為數字,輸出:False
print(' '.isspace()) # 判斷是否全部為空白字符,輸出:True
print('---第五組---')
print(''.isupper()) # 對於所有 .is 開頭的方法函數,空串全部輸出False
print('---第六組---')
d = 'ABCDDDCBA'
print(len(d)) # 求字符串的長度,輸出:9
print(d.count('D')) # 求字符串中D出現的次數,輸出:3
print(d.find('D')) # 求字符串中D首次出現的位置,輸出:3(出現在字符串第4個字符,但是編程語言從0開始計數)
print(d.startswith('ABC')) # 判斷字符串是否以指定的字符串開頭,輸出:True
print(d.endswith('DCBA')) # 判斷字符串是否以指定的字符串結尾,輸出:True
以上形如a.xxx()
的語句中,xxx
為a
對象的方法。
名詞解釋:對象,包括屬性(Properties)和方法(Methods),屬性就是需要記憶的信息,方法就是對象能夠提供的服務。此處我們可以先理解為特殊的變量。
方法,特殊的函數,與普通函數不同的地方是它屬於一個對象,調用它完成的操作通常情況下是圍繞這個對象本身的值展開的。例如a.upper()
就是操作字符串a
中的字符。
這裡先介紹一個大概,若有不理解不必著急,關於類和對象的更多知識將在教程 第二部分 提及。
我們已知在 Python 中可以使用 '\n'
換行,但是這樣的換行並不明了,且對於長字符串來說過於麻煩,有沒有更簡單的方式?
三引號字符串。
a = '''Hello World'''
print(a)
print('=====')
b = """大 家好 """
print(b)
輸出:
Hello
World
=====
大
家好
又是一個新手常問的問題:更多呢?四個,五個引號可不可以?答案是不可以,會報錯。