Python 3.x 對中文字元支援較好,但 Python 2.x 則要求在源程式中增加“#coding:utf-8”才能支援中文字元。
字串既可用單引號括起來,也可用雙引號括起來,它們沒有任何區別。例如如下程式:str1 = 'Charlie' str2 = "C語言中文網" print(str1) print(str2)但需要說明的是,Python 有時候沒有我們期望的那麼聰明。如果字串內容本身包含了單引號或雙引號,此時就需要進行特殊處理:
str3 = 'I'm a coder'
由於上面字串中包含了單引號,此時 Python 會將字串中的單引號與第一個單引號配對,這樣就會把 'I' 當成字串,而後面的 m a coder' 就變成了多餘的內容,從而導致語法錯誤。str3 = "I'm a coder"
上面程式碼使用雙引號將字串括起來,此時 Python 就會把字串中的單引號當成字串內容,而不是和字串開始的引號配對。str4 = '"Spring is here,let us jam!", said woodchuck.'
str5 = '"we are scared,Let's hide in the shade",says the bird'
s1 = "Hello,"'Charlie' print(s1)上面程式碼將會輸出:
Hello,Charlie
上面這種寫法只是書寫字串的一種特殊方法,並不能真正用於拼接字串。Python 使用加號(+)作為字串的拼接運算子,例如如下程式碼:s2 = "Python " s3 = "iS Funny" #使用+拼接字串 s4 = s2 + s3 print(s4)
s1 = "這是數位: " p = 99.8 #字串直接拼接數值,程式報錯 print(s1 + p) #使用str()將數值轉換成字串 print(s1 + str(p)) #使用repr()將數值轉換成字串 print(s1 + repr(p))上面程式中直接拼接字串和數值,程式會報錯。
st = "I will play my fife" print (st) print(repr(st))上面程式碼中 st 本身就是一個字串,但程式依然使用了 repr() 對字串進行轉換。執行上面程式,可以看到如下輸出結果:
I will play my fife
'I will play my fife'
msg = input("請輸入你的值:") print (type(msg)) print(msg)第一次執行該程式,我們輸入一個整數,執行過程如下:
請輸入你的值:2
<class 'str'>
2
請輸入你的值: 1.2
<class 'str'>
1.2
請輸入你的值:Hello
<class 'str'>
Hello
需要指出的是,Python 2.x 提供了一個 raw_input() 函數,該 raw_input() 函數就相當於 Python 3.x 中的 input() 函數。
而 Python 2.x 也提供了一個 input() 函數,該 input() 函數則比較怪異:要求使用者輸入的必須是符合 Python 語法的表示式。通常來說,使用者只能輸入整數、浮點數、複數、字串等。重點是格式必須正確,比如輸入字串時必須使用雙引號,否則 Python 就會報錯。
請輸入你的值:2
<class 'int'>
2
請輸入你的值: 2+3j
<type 'complex'>
(2+3j)
請輸入你的值:Hello
NameError : name 'Hello' is not defined
在 Python 2.x 中應該盡量使用 raw_input() 函數來獲取使用者輸入;Python 2.x 中的 raw_input() 等同於 Python 3.x 中的 input()。
s = '''"Let's go fishing", said Mary. "OK, Let's go", said her brother. they walked to a lake''' print(s)上面程式使用三個引號定義了長字串,該長字串中既可包含單引號,也可包含雙引號。
s2 = 'The quick brown fox jumps over the lazy dog' print(s2)上面 s2 字串的內容較長,故程式使用了跳脫字元()對內容進行了跳脫,這樣就可以把一個字串寫成兩行。
num = 20 + 3 / 4 + 2 * 3 print(num)上面程式中有一個表示式,為了對該表示式換行,程式需要使用跳脫字元。
s1 = r'G:publishcodes22.4' print(s1)如果原始字串中包含引號,程式同樣需要對引號進行跳脫(否則 Python 同樣無法對字串的引號精確配對),但此時用於跳脫的反斜線會變成字串的一部分。
# 原始字串包含的引號,同樣需要跳脫 s2 = r'"Let's go", said Charlie' print(s2)上面程式碼會生成如下輸出結果:
"Let's go", said Charlie
由於原始字串中的反斜線會對引號進行跳脫,因此原始字串的結尾處不能是反斜線,否則字串結尾處的引號就被跳脫了,這樣就導致字串不能正確結束。s3 = r'Good Morning' '' print(s3)上面程式碼開始寫了一個原始字串 r'Good Morning',緊接著程式使用 '' 寫了一個包含反斜線的字串,Python 會自動將這兩個字串拼接在一起。執行上面程式碼會生成如下輸出結果:
Good Morning