Python字符串基礎一


下一篇:Python 序列通用操作介紹

寫在前面

下學期開始上計算機網絡的課程,現在已經在看相關書籍,希望結合python寫出一個網絡爬蟲程序。利用學習C++后的空余時間來看看Python並在這里總結、記錄,就權當是我的備忘錄吧。

字符串

Unicode字符串

在Python2中,普通字符串是以8位ASCII碼進行存儲的,而Unicode字符串則存儲為16位unicode字符串,這樣能夠表示更多的字符集。使用的語法是在字符串前面加上前綴u

在Python3中,所有的字符串都是Unicode字符串

字符串的表示方式

在python中,字符串有4中表示方式:

>>> 
>>> #單引號
>>> A='Hello'
>>> #雙引號
>>> B="Hello"
>>> #三單引號
>>> C='''Hello'''
>>> #三雙引號
>>> D="""Hello"""
>>> print("A:"+A+"\nB:"+B+"\nC:"+C+"\nD:"+D)
A:Hello
B:Hello
C:Hello
D:Hello
>>> #結果相同
>>> 

從輸出可以看到4中字符串的結果是一樣的,那為什么要這么麻煩呢?

  • 雙引號、單引號避免使用轉義字符。當字符串中含有引號(如單引號)時,使用與該引號不同(如雙引號)包含字符串可以直接使用該引號而不需進行字符轉義:
>>> 
>>> #使用轉義字符的例子:
>>> print('I\'am learning Python')
I'am learning Python
>>> #使用雙引號包含字符串不需使用轉義字符串:
>>> print("I'am learning Python")
I'am learning Python
>>> #另一個例子:
>>> print('I have learnt "Python" language')
I have learnt "Python" language
>>> 
  • 三引號使長字符串可直接跨行
    單雙引號表示的字符串通常要寫成一行:
s = "I'am learning Python"

如果要寫成多行,就要使用(連行符):

s = "I'am learning \
    Python"

但是如果你使用三引號,那就不用使用連行符了,直接寫吧:

s = """I'am learning
    Python""""

過長字符串的表示

除了上面所說的使用三單引號或三雙引號以及連行符\進行長字符串的跨行表示外,還可以使用圓括號將字符串跨行連接在一起:

s= ("i am a "
    "student")
print(s)

結果輸出:

>>> 
i am a student

使用哪一種方法,根據個人喜好選擇。我本人比較喜歡使用三引號,因為比較方便o(^▽^)

轉義字符串

上面的示例中\n就是一個轉義字符串,它把字符n轉義成換行符,相應的其他轉義序列有:

轉義字符 含義
\newline 忽略換行
\ \
' '
" "
\a ASCII蜂鳴
\b ASCII退格
\f ASCII走紙
\r 回車CR
\n 換行LF
\t ASCII制表符
\v ASCII垂直指標
\ooo 給定八進制字符
\xhh 給定8位十六進制字符
\uhhhhh 給定16位十六進制字符
\Uhhhh hhhh 給定32位十六進制字符
\N{name} 給定名稱的Unicode字符,name是一個標准Unicode名稱

取消轉義字符的作用——原始字符串

在字符串前使用r前綴,能夠使字符串中的轉義字符失去轉義作用而直接作為字符串輸出。例如:

>>> 
>>> print("C:\nowhere") #我們想輸出c:\nowhere
C:
owhere
>>> #結果卻發生了轉義
>>> #這時應該使用r產生原始字符串:
>>> print(r"C:\nowhere")
C:\nowhere
>>> 

使用+進行字符串拼接

  • 連續的兩個“”“”可以使兩個雙引號內的字符串拼接在一起。而實際上這並不是拼接字符串,只是一種書寫字符串的特殊方式
>>> print("I'am learing"  "python")
I'am learingpython
>>> 
  • 真正的字符串拼接可以使用** +**:
>>> print ("I'am learning"+"python")
I'am learningpython
>>> 

數值轉換為字符串:str與repr

把值轉換為字符串的兩種機制。

  • str是一個類型,它把值轉換為合理形式的字符串
  • repr是個函數,它以合法的python表達式的形式來表示值

說明:repr的功能在Python2中可以以反引號來代替,不過Python3已經不再使用反引號。我們應該堅持使用repr。

raw_input函數 與input函數

在python2中,input函數假設用戶輸入的和一個合法的表達式:

>>> name = input("what is your name? ")
what is your name? "whz"
>>> 

在上面的例子中,用戶必須輸入”whz“而不是whz,因為whz並不是一個合法表達式。Python2中提供了raw_input來解決這個使用戶覺得繁瑣的問題。raw_input把所以輸入當原始數據並將其作為字符串存儲。

>>> name = raw_input("what is your name? ")
what is your name? whz
>>>

然而,在Python3中raw_input以及並入到input中,所以在Python3我們使用input接收到的數據都會被當成字符串儲存起來。

關於字符串的操作等其他內容后續進行介紹。

下一篇:Python 序列通用操作介紹


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM