python字串引號和轉義 單引號字串和轉義符

2021-10-12 12:18:25 字數 3911 閱讀 7202

1、單引號字串和轉義符

字串和數字一樣都是值,可以直接使用,在python控制台中直接輸入字串,如「hello world」,會按原樣輸出該字串,只不過用單引號擴了起來

>>> "hello world"

'hello world'

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

>>> 'let's go!' file "", 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 world

print('hello world')#使用雙引號的字串,輸出結果:hello world

print("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"", line 1x y^syntaxerror: invalid syntax

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

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

>>> x = 'hello'

>>> x + 'world'

'hello world'

下面的**演示了字串拼接的方法

#將字串寫到一起輸出,執行結果:helloworld世界你好

print("hello""world""世界你好")

x="hello"#宣告字串變數x

y="world"#宣告字串變數y

#print(x y)#丟擲異常,變數不能直接寫到一起

print(x+y)#字串拼接,要使用加號(+),執行結果:helloworld

3、保持字串的原汁原味

>>> print('hello\nworld')

hello

world

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

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

不過有的時候,我們不希望python直譯器轉義特殊字元,希望按原始字串輸出,這時需要使用repr函式

>>> print(repr("hello\nworld"))'hello\nworld'

使用repr函式輸出的字串,會使用一對單括號括起來

其實如果只想輸出「\n」或其他類似的轉義符,也可以使用兩個反斜槓輸出「」,這樣「」後面的n就會被認為是普通的字元了

>>> print("hello\\nworld")

hello\nworld

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

>>> print(r"hello\nworld")

hello\nworld

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

repr函式

轉義符()

在字串前面加『r』

下面的例子演示了str和repr函式的用法

#輸出帶「\n"的字串,執行結果:

print("")#用str函式將1234轉換為數字,執行結果:1234

print(str(1234))#丟擲異常,len函式不能直接獲取數字的長度#print(len(1234))#將1234轉換為字串後,獲取字串長度,執行結果:4

print(len(str(1234)))#執行結果:

print(str(""))#執行結果:13

print(len(str("")))#執行結果:''

print(repr(""))#執行結果:16

print(len(repr("")))#使用轉義符輸出「\」,輸出的字串不會用單引號括起來,執行結果:hello\nworld

print("")#執行結果:14

print(len(""))#在字串前面加「r」,保持字串原始格式輸出,執行結果:hello\nworld

print(r"")#執行結果:14

print(len(r""))

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

4、長字串

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

print("""hello # 長字串,會按原始格式輸出

world""");

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

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

w'o'rld"""

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

print('''i # 使用3個單引號定義長字串

'love'

"python"''')

s= """hello # 使用雙引號定義長字串

world

世界你好"""

print(s) #輸出長字串

print("hello\ # 每行字串在回車符之前用轉義符,就可以將字串寫成多行

world")

python 字串和轉義字元

字串是一種表示文字的資料型別,字串可以使ascii字元 各種符號以及各種unicode字元,在python中,共有三種字串的表現形式 雖然三種方式的最終含義是一致的,但是當字串中包含 時不可以使用單引號 同理當字串中包含 時不可以使用雙引號。單引號 a pytonn print a 雙引號 b py...

字串拼接的雙引號和單引號問題,轉義字元

有這麼一句話,想要字串拼接後得到這麼一句話。裡面的組織需要單引號引出,而不是雙引號。最初始是這樣。var org 00000000000000000028 console.log 這樣輸出結果是 沒有單引號。後來改成了這樣。var org 00000000000000000028 console.l...

python字串轉義

上圖中因為python不知到如何處理一對單引號之後的內容,不能識別第三個單引號。預設都是以一對單引號或雙引號來表示字串從結束到開始。長字串 用三個引號 單引號或者雙引號 來代表字串開始和結束 例如在有些情況下,就需要用轉義 1 path c nowhere 輸出的內容換行,不是想要的結果,我們就需要...