Python從菜鳥到高手(7):字串

來源:互聯網
上載者:User

標籤:字串類型   .com   視頻   就是   and   51cto   擷取   字串拼接   輸出   

1. 單引號字串和轉義符

  字串與數字一樣,都是值,可以直接使用,在Python控制台中直接輸入字串,如"Hello World”,會按原樣輸出該字串,只不過用單引號括了起來。

>>> "Hello World"‘Hello World‘

  那麼用雙引號和單引號括起來的字串有什麼區別呢?其實沒有任何區別。只不過在輸出單引號或雙引號時方便而已。例如,在Python控制台輸入‘Let‘s go!‘,會拋出如下的錯誤。

>>> ‘Let‘s go!‘  File "<stdin>", line 1    ‘Let‘s go!‘         ^SyntaxError: invalid syntax

  這是因為Python解譯器無法判斷字串中間的單引號是正常的字元,還是多餘的單引號,所以會拋出語法錯誤異常。要輸出單引號的方法很多,其中之一就是使用雙引號將字串括起來。

>>> "Let‘s go!""Let‘s go!"

  現在輸出單引號是解決了,但如何輸出雙引號呢?其實很簡單,只需要用單引號將字串括起來即可。

>>> ‘我們應該在文字框中輸入"Python"‘‘我們應該在文字框中輸入"Python"‘

  現在輸出單引號和輸出雙引號都解決了,那麼如何同時輸出單引號和雙引號呢?對於這種需求,就要使用本節要介紹的另外一個知識點:轉義符。Python語言中的轉義符是反斜線(\)。轉義符的功能是告訴Python解譯器反斜線後面的是字串中的一部分,而不是用於將字串括起來的單引號或雙引號。所以如果字串中同時包含單引號和雙引號,那麼轉義符是必須的。

print(‘Let\‘s go!. \"一起走天涯\"‘)          #  Let‘s go!. "一起走天涯"

  在上面這行代碼中,單引號和雙引號都是用的轉義符,其實在這個例子中,由於字串是由單引號括起來的,所以如果裡麵包含雙引號,是不需要對雙引號使用轉義符的。
下面的例子示範了Python語言中單引號和雙引號的用法,以及轉義符在字串中的應用。

執行個體位置:PythonSamples\src\chapter2\demo2.10.py# 使用單引號的字串,輸出結果:Hello Worldprint(‘Hello World‘)        # 使用雙引號的字串,輸出結果:Hello Worldprint("Hello World")#  字串中包含單引號,輸出結果:Let‘s go!print("Let‘s go!")#  字串中包含雙引號,輸出結果:"一起走天涯"print(‘"一起走天涯"‘)#  字串中同時包含單引號和雙引號,其中單引號使用了轉義符,輸出結果:Let‘s go! "一人我飲酒醉"print(‘Let\‘s go! "一人我飲酒醉" ‘)

程式運行結果如所示。

2.拼接字串

  在輸出字串時,有時字串會很長,在這種情況下,可以將字串寫成多個部分,然後拼接到一起。我們可以嘗試下面的一種寫法。

>>> ‘Hello‘ ‘world‘‘Helloworld‘

  這種寫法是將兩個字串挨著寫到一起,字串中間可以有0到n個空格。現在讓我們看看這種方式能否將兩個字串變數的值組合到一起。

>>> x = ‘hello‘>>> y = ‘world‘>>> x y  File "<stdin>", line 1    x y      ^SyntaxError: invalid syntax

  我們可以看到,如果是兩個字串類型的變數緊挨著寫在一起,Python解譯器就會認為是語法錯誤,所以這種方式實際上並不是字串的拼接,只是一種寫法而已,而且這種寫法必須是兩個或多個字串值寫在一起,而且不能出現變數,否則Python解譯器就會認為是語法錯誤。

  如果要連接字串,要用加號(+),也就是字串的加法運算。

>>> x = ‘Hello ‘>>> x + ‘World‘‘Hello World‘

下面的代碼示範了字串拼接的方法。

# 將字串寫到一起輸出,運行結果:helloworld世界你好print("hello"   "world"  "世界你好")        x = "hello"     #  聲明字串變數xy = "world"     #  聲明字串變數y #print(x y)         # 拋出異常,變數不能直接寫到一起print(x + y)        # 字串拼接,要使用加號(+),運行結果:helloworld

程式運行結果如所示。

《Python從菜鳥到高手》開始轉載了,敬請關注

3. 保持字串的原汁原味

  在前面的文章講過轉義符(\)的應用,其實轉義符不光能輸出單引號和雙引號,還能控制字元串的格式,例如,使用“\n”表示換行,如果在字串中含有“\n”,那麼“\n”後的所有字元都會被移到下一行。

>>> print(‘Hello\nWorld‘)HelloWorld

  如果要混合輸出數字和字串,並且換行,可以先用str函數將數字轉換為字串,然後在需要換行的地方加上“\n”。

>>> print(str(1234) + "\n" + str(4321))12344321

  不過有的時候,我們不希望Python解析器轉義特殊字元,希望按原始字串輸出,這時需要使用repr函數。

>>> print(repr("Hello\nWorld"))‘Hello\nWorld‘

  使用repr函數輸出的字串,會使用一對單引號括起來。
其實如果只想輸出“\n”或其他類似的轉義符,也可以使用兩個反斜線輸出“\”,這樣“\”後面的n就會被認為是普通的字元了。

>>> print("Hello\\nWorld")Hello\nWorld

  除了前面介紹的repr和轉義符外,在字串前面加“r”也可以原樣輸出字串。

>>> print(r"Hello\nWorld")Hello\nWorld

  現在總結一下,如果讓一個字串按原始內容輸出(不進行轉義),有如下3種方法。

? repr函數

? 轉義符(\)

? 在字串前面加“r”

下面的例子示範了str和repr函數的用法。

# 輸出帶“\n"的字串,運行結果:<hello#                            world>print("<hello\nworld>")# 用str函數將1234轉換為數字,運行結果:1234print(str(1234))# 拋出異常,len函數不能直接擷取數位長度#print(len(1234))   #  將1234轉換為字串後,擷取字串長度,運行結果:4print(len(str(1234)))#  運行結果:<hello#            world>print(str("<hello\nworld>"))#  運行結果:13print(len(str("<hello\nworld>")))#  運行結果:‘<hello\nworld>‘print(repr("<hello\nworld>"))#  運行結果:16print(len(repr("<hello\nworld>")))#  使用轉義符輸出“\”,輸出的字串不會用單引號括起來,運行結果:hello\nworldprint("<hello\\nworld>")#  運行結果:14print(len("<hello\\nworld>"))#  在字串前面加“r”,保持字串原始格式輸出,運行結果:hello\nworldprint(r"<hello\nworld>")#  運行結果:14print(len(r"<hello\nworld>"))

程式運行結果如所示。

  我們可以看到,使用repr函數輸出的“<hello\nworld>”字串被一對單引號括了起來,而且字串長度是16。而使用str函數輸出同樣的字串,長度是13。在str函數輸出的字串中,“\n”算一個字元,長度為1,而用repr函數輸出的字串中,“\n”是兩個字元,長度為2。再加上一對單引號,所以長度是16。

4.長字串

  在前面的文章講過轉義符(\)的應用,其實轉義符不光能輸出單引號和雙引號,還能控制字元串的格式,例如,使用“\n”表示換行,如果在字串中含有“\n”,那麼“\n”後的所有字元都會被移到下一行。

  在前面的文章講了使用3個單引號或雙引號括起來的文本會成為多行注釋,其實如果將這樣的字串使用print函數輸出,或賦給一個變數,就會成為一個長字串。在長字串中會保留原始的格式。

print("""Hello          # 長字串,會按原始格式輸出         World"""); 

  如果使用長字串表示一個字串,中間可以混合使用雙引號和單引號,而不需要加轉義符。

print("""Hell"o"            #  長字串,中間混合使用雙引號和單引號         W‘o‘rld"""

對於一般字元串來說,同樣可以用多行來表示。只需要在每一行後面加轉義符(\),這樣以來,分行符號本身就“轉義”了,會被自動忽略,所以最後都會變成一行字串。

print("Hello\n          # 輸出一行字串     World")

下面的例子示範了長字串的用法。

print(‘‘‘I                      # 使用3個單引號定義長字串       ‘love‘          "Python"          ‘‘‘    )s = """Hello                    #  使用雙引號定義長字串    World       世界    你好"""print(s)                        #  輸出長字串print("Hello\                   #  每行字串在斷行符號符之前用轉義符,就可以將字串寫成多行   World")

程式運行結果如所示。

《Python從菜鳥到高手》已經出版,開始連載了,購買送視頻課程

Python從菜鳥到高手(7):字串

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.