Python 1-5】Python教程之——字元串

字元串或串(String)是由數字、字母、下劃線組成的一串字元。

字元串

字元串就是一系列字元。在Python中,用引號括起的都是字元串,其中的引號可以是單引號, 也可以是雙引號,如下所示:

"This is a string."   
'This is also a string.'

這種靈活性讓你能夠在字元串中包含引號和撇號:

'I told my friend, "Python is my favorite language!"'
"The language 'Python' is named after Monty Python, not the snake." 
"One of Python's strengths is its diverse and supportive community."

文章首發地址

使用方法修改字元串的大小寫

對於字元串,可執行的最簡單的操作之一是修改其中的單詞的大小寫。
請看下面的程式碼,並嘗試判斷其作用:

name = "fulade blog" 
print(name.title())

將這個文件保存為name.py,再運行它。你將看到如下輸出:

Fulade Blog

在這個示例中,小寫的字元串”fulade blog”存儲到了變數name中。在print()語句中,方法 title()出現在這個變數的後面。在name.title()中,name後 面的句點(.)讓Python對變數name執行方法title()的操作。每個方法後面都跟著一對括弧, 這是因為方法通常需要一些參數來完成其工作。這些參數往往寫在括弧內的。方法title()不需要參數,因此它後面的括弧是空的。
title()的實現結果是以首字母大寫的方式顯示每個單詞,即將每個單詞的首字母都改為大寫。
還有幾個其他的很有用的處理大小寫的方法。例如,要將符串改為全部大寫或全部小寫,可以像下面這樣做:

name = "Fulade Blog"  
print(name.upper()) 
print(name.lower())

輸出如下:

FULADE BLOG
fulade blog

拼接字元串

在很多情況下,我們需要合併字元串。例如,你可能想將姓和名存儲在不同的變數中,等要顯示姓名時再將它們合而為一:

first_name = "Fu"
last_name = "lade"
full_name = first_name + " " + last_name
print(full_name)

Python使用加號(+)來合併字元串。在這個示例中,我們使用+來合併first_name、空格和
last_name,以得到完整的姓名,其結果如下:

Fu lade

這種合併字元串的方法稱為拼接。通過拼接,可使用存儲在變數中的字元串來創建完整的字元串。下面來看另外一個例子:

first_name = "fu"
last_name = "lade"
full_name = first_name + " " + last_name
message = "Hello, " + full_name.title() + "!"
print(message)

上述程式碼顯示消息”Hello, Fu Lade!”,但將這條消息存儲在了一個變數中, 這讓最後的print語句簡單得多。

使用製表符(按Tab鍵產生空格的叫做製表符)或換行符來添加空白

在編程中,空白泛指任何非列印字元,如空格、製表符和換行符。你可使用空白來組織輸出,使輸出更易讀。
要在字元串中添加製表符,可使用字元組合\t,如下程式碼所示:

print("Python")
Python
print("\tPython")
    Python

要在字元串中添加換行符,可使用字元組合\n:

print("Languages:\nPython\nC\nJavaScript") 
Languages:
Python
C
JavaScript

還可在同一個字元串中同時包含製表符和換行符。字元串”\n\t”讓Python換到下一行,並在
下一行開頭添加一個製表符。下面的示例演示了如何使用一個單行字元串來生成四行輸出:

print("Languages:\n\tPython\n\tC\n\tJavaScript") 
Languages:
  Python
  C 
  JavaScript

刪除空白和空格

在程式中,多餘的空白可能令人迷惑。對程式設計師來說,'python''python '看起來幾乎沒什麼兩樣,但對編譯器來說,它們卻是兩個不同的字元串。Python能夠發現’python ‘中多餘的空格,並認為它是有意義的——除非你告訴它不是這樣的。
空格很重要,因為你經常需要比較兩個字元串是否相同。例如,在用戶登陸網站的時候,我們需要對比用戶名。但在有些場景下我們並不想要空格。所以,Python提供了很簡單的刪除空格的方法。
Python能夠找出字元串開頭和末尾多餘的空白。要確保字元串末尾沒有空白,可使用方法 rstrip()

favorite_language = "'python '" 
print(favorite_language)
'python '
print(favorite_language.rstrip())
'python'
print(favorite_language)
'python ' 

存儲在變數favorite_language中的字元串末尾包含多餘的空格。你在運行這個程式碼的時候,可看到末尾的空格。對變數favorite_language調用方法 rstrip()後,這個多餘的空格被刪除了。然而,這種刪除只是暫時的,接下來再次輸出favorite_language的值時,你會發現這個字元串與輸入時一樣,依然包含多餘的空格。
要永久刪除這個字元串中的空格,必須將刪除操作的結果保存回到變數中:

favorite_language = "'python '"
favorite_language = favorite_language.rstrip()
print(favorite_language)
'python'

為刪除這個字元串中的空格,你需要將其末尾的空格剔除,再將結果存回到原來的變數中。
在我們的日常開發中,經常需要修改變數的值,再將新值存回到原來的變數中。
你還可以剔除字元串開頭的空格,或同時剔除字元串兩端的空格。為此,可分別使用方法 lstrip()strip():

favorite_language = "' python '" 
print(favorite_language.rstrip())
' python'
print(favorite_language.lstrip())
'python '
print(favorite_language.strip())
'python'

在這個示例中,我們首先創建了一個開頭和末尾都有空格的字元串。接下來,我們 分別刪除末尾、開頭兩端的空格。在實際程式開發中,這些剔除函數最常用於在存儲用戶輸入前對輸入進行清理。

使用字元串時避免語法錯誤

語法錯誤是一種經常會出現的錯誤。程式中包含非法的Python程式碼時,就會導致語法錯誤。 例如,在用單引號括起的字元串中,如果包含撇號,就將導致錯誤。這是因為這會導致Python將 第一個單引號和撇號之間的內容視為一個字元串,進而將餘下的文本視為Python程式碼,從而引發 錯誤。
下面演示了如何正確地使用單引號和雙引號。

message = "One of Python's strengths is its diverse community." 
print(message)

撇號位於兩個雙引號之間,因此Python解釋器能夠正確地理解這個字元串:

One of Python's strengths is its diverse community.

然而,如果你使用單引號,Python將無法正確地確定字元串的結束位置:

message = 'One of Python's strengths is its diverse community.'
print(message)

而你將看到如下輸出:

message = 'One of Python's strengths is its diverse community.'
SyntaxError: invalid syntax

從上面的輸出我們可以看到,錯誤發生在第二個單引號後面。這種語法錯誤表明,在解釋器看來,其中的有些內容不是有效的Python程式碼。錯誤的來源多種多樣,這裡指出一些常見的。學習 編寫Python程式碼時,你可能會經常遇到語法錯誤。

所以,大家在做練習的時候也要細心,避免出現這種小錯誤。

小作業
在做下面的每個練習時,都編寫一個獨立的程式,並將其保存為名稱類似於 name_cases.py 的文件。
2-1 個性化消息:將用戶的姓名存到一個變數中,並向該用戶顯示一條消息。顯示 的消息應非常簡單,如「Hello Eric, would you like to learn some Python today?」。
2-2 調整名字的大小寫:將一個人名存儲到一個變數中,再以小寫、大寫和首字母 大寫的方式顯示這個人名。
2-3 名言:找一句你欽佩的名人說的名言,將這個名人的姓名和他的名言列印出來。輸出應類似於下面這樣(包括引號):
Albert Einstein once said, 「A person who never made a mistake never tried anything new.」
2-4 名言 【重複練習 2-3】,但將名人的姓名存儲在變數 famous_person 中,再創建 要顯示的消息,並將其存儲在變數 message 中,然後列印這條消息。
2-5 剔除人名中的空白:存儲一個人名,並在其開頭和末尾都包含一些空白字元。 務必至少使用字元組合”\t”和”\n”各一次。
列印這個人名,以顯示其開頭和末尾的空白。然後,分別使用剔除函數 lstrip()、 rstrip()和 strip()對人名進行處理,並將結果列印出來。

想查看作業答案可以去我的Githu倉庫


公眾號