欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python入門篇之字符串

 更新時間:2014年10月17日 11:07:40   投稿:hebedich  
可能大多數(shù)人在學(xué)習(xí)C語言的時候,最先接觸的數(shù)據(jù)類型就是字符串,因?yàn)榇蠖嘟坛潭际且?quot;Hello world"這個程序作為入門程序,這個程序中要打印的"Hello world"就是字符串。今天我們來了解一下Python中的字符串,看看它的用法。

所有標(biāo)準(zhǔn)的序列操作對字符串都適用,但字符串是不可變的

字符串常量:

單引號:‘spa"m'

雙引號:"spa'm"

三引號:'''...spam...''',"""...spam..."""

轉(zhuǎn)義字符:"s\tp\na\om"

Raw字符串:r"C:\new\test.spm"

Unicode字符串:u'eggs\u0020spam

單雙引號是一樣的
單雙引號可以互換,字符常量表達(dá)式可以用兩個單引號或兩個雙引號來表示--兩種形式同樣有效返回相同類型的對象:

復(fù)制代碼 代碼如下:

>>> 'zxcvbn',"zxcvbn"
('zxcvbn', 'zxcvbn')
>>> #不適用轉(zhuǎn)義字符就可以實(shí)現(xiàn)在一個字符串中包含其余種類 的引號
>>> 'knight"s',"knight's"
('knight"s', "knight's")

可以自動在任意的表達(dá)式中合并相鄰的字符串常量,盡管也可以使用+操作符實(shí)現(xiàn):

復(fù)制代碼 代碼如下:

>>> title="sdfsd"'dfg'"fgfd"
>>> title
'sdfsddfgfgfd'

字符串的格式化使用字符%來實(shí)現(xiàn):

在%的左側(cè)放置一個字符串,右側(cè)放置希望格式化的值,可以使用一個值,也可以使用多個值的元組或字典

復(fù)制代碼 代碼如下:

>>> format="Hello. %s. %s enough for ya?"
>>> values=('world','Hot')
>>> print format % values
Hello. world. Hot enough for ya?

如果需要轉(zhuǎn)換的元組作為轉(zhuǎn)換表達(dá)式的一部分存在,那么必須將它用圓括號括起來,以免出錯

長字符串、原始字符串
1、長字符串

如果需要寫一個非常長的字符串,需要跨多行,則可以使用三個引號代替普通引號

復(fù)制代碼 代碼如下:

>>> print '''this is
a
very long
string'''
this is
a
very long
string

如果一行之中最后一個字符是反斜線,那么換行符本身就“轉(zhuǎn)義”了,也就是被忽略了

復(fù)制代碼 代碼如下:

>>> print "hello.\
world!"
hello.world!
>>> #這個用法也適用表達(dá)式和語句
>>> 1+2+\
      4+5
12
>>> print \
      'hello.world'
hello.world

2、原始字符串

原始字符串以r開頭,可以在原始字符串中放入任何字符,最后輸出的字符串包含了轉(zhuǎn)義所用的反斜線,但是不能在字符串結(jié)尾輸入反斜線:

復(fù)制代碼 代碼如下:

>>> print \
      'hello.world'
hello.world
>>> print r'Let\'s go!'
Let\'s go!
>>> print r'this is illegal\'
SyntaxError: EOL while scanning string literal

索引與分片

字符串的字符是通過索引來提取的,將獲得在特定位置的一個字符的字符串。

Python偏移量是從0開始的,并比字符串的長度小1,還支持類似在字符串中使用負(fù)偏移這樣的方法從序列中獲取元素,負(fù)偏移認(rèn)作是從結(jié)束處反向計(jì)數(shù)

當(dāng)使用一對冒號分隔的偏移索引字符串這樣的序列對象時,將獲取從下邊界直到但不包括上邊界的所有元素

索引(s[i])獲取特定偏移的元素:

第一個元素的偏移為0

負(fù)偏移索引意味著從最后或右邊反向進(jìn)行計(jì)數(shù)

s[0]獲取第一個元素

s[-2]獲取了倒數(shù)第二個元素

分片(s[i:j])提取對應(yīng)的部分作為一個序列:

上邊界并不包含在內(nèi)

分片的邊界默認(rèn)為0和序列的長度,如果沒有給出的話

s[1:3]獲取從偏移為1的元素,直到但不包括偏移為3的元素

s[1:]獲取了從偏移為1直到末尾之間的元素

s[:3]獲取了從偏移為0直到但是不包括偏移為3之間的元素

s[:-1]獲取了從偏移為0直到但是不包括最后一個元素之間的元素

s[:]獲取了從偏移0到末尾之間的元素

復(fù)制代碼 代碼如下:

>>> s='spam'
>>> s[0],s[-2]
('s', 'a')
>>> s[1:3],s[1:],s[:-1]
('pa', 'pam', 'spa')
>>> s[0],s[-2]
('s', 'a')

擴(kuò)展分片:第三個限制值

分片表達(dá)式增加了一個可選的第三個索引,用作步進(jìn)X[I:J:K]表示:索引X對象中的元素,從偏移為I直到偏移為J-1,每隔K元素索引一次

復(fù)制代碼 代碼如下:

>>> s='abcdefghijklmnop'
>>> s[1:10:2]
'bdfhj'
>>> s[::2]
'acegikmo'
>>> s='hello'
>>> s[::-1]
'olleh'
>>> s[4:1:-1]
'oll'

字符串轉(zhuǎn)換工具

復(fù)制代碼 代碼如下:

>>> '42'+1
Traceback (most recent call last):
  File "<pyshell#40>", line 1, in <module>
    '42'+1
TypeError: cannot concatenate 'str' and 'int' objects
>>> int('42'),str(42)
(42, '42')
>>> repr(42),'42'
('42', '42')
>>> s='42'
>>> i=1
>>> s+i
Traceback (most recent call last):
  File "<pyshell#45>", line 1, in <module>
    s+i
TypeError: cannot concatenate 'str' and 'int' objects
>>> int(s)+i
43
>>> s+str(i)
'421'
>>> #類似也可以把浮點(diǎn)數(shù)轉(zhuǎn)換成字符串或把字符串轉(zhuǎn)換成浮點(diǎn)數(shù)
>>> str(3.1415),float("1.3")
('3.1415', 1.3)
>>> text='1.23E-10'
>>> float(text)
1.23e-10

字符串代碼轉(zhuǎn)換

單個字符也可以通過將其傳給內(nèi)置的ord函數(shù)轉(zhuǎn)換為其對應(yīng)的ASCII碼,chr函數(shù)則執(zhí)行相反的操作:

復(fù)制代碼 代碼如下:

>>> ord('s')
115
>>> chr(115)
's'

字符串方法

字符串比列表的方法還要豐富很多,因?yàn)樽址畯膕tring模塊中“繼承”了很多方法,本篇文章只介紹一些特別有用的字符串方法

 1、find

find方法可以在一個較長的字符串中查找一個子字符串,它返回子串所在位置的最左端索引,如果沒有找到則返回-1

復(fù)制代碼 代碼如下:

>>> 'with a moo-moo here, and a moo-moo there'.find('moo')
7
>>> title="Monty Python's Flying Cirus"
>>> title.find('Monty')
0
>>> title.find('Python')
6
>>> title.find('Zirquss')
-1

這個方法可以接受可選的起始點(diǎn)和結(jié)束點(diǎn)參數(shù):

復(fù)制代碼 代碼如下:

>>> subject='$$$ Get rich now!!! $$$'
>>> subject.find('$$$')
0
>>> subject.find('$$$',1)
20
>>> subject.find('!!!')
16
>>> subject.find('!!!',0,16)
-1

2、join

join方法是非常重要的字符串方法,它是split方法的逆方法,用來在隊(duì)列中添加元素:

復(fù)制代碼 代碼如下:

>>> seq=[1,2,3,4,5]
>>> sep='+'
>>> sep.join(seq)

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    sep.join(seq)
TypeError: sequence item 0: expected string, int found
>>> seq=['1','2','3','4','5']
>>> sep.join(seq)
'1+2+3+4+5'
>>> dirs='','usr','bin','env'

>>> '/'.join(dirs)
'/usr/bin/env'
>>> print 'C:'+'\\'.join(dirs)
C:\usr\bin\env

3、lower

lower方法返回字符串的小寫字母版

復(fù)制代碼 代碼如下:

>>> 'HDWUD HDJHS LKJDS'.lower()
'hdwud hdjhs lkjds'

4、replace

replace方法返回某字符串的所有匹配項(xiàng)均被替換后得到字符串

復(fù)制代碼 代碼如下:

>>> 'This is a test'.replace('is','eez')
'Theez eez a test'

5、split

它是join的逆方法,用來將字符串分割成序列

復(fù)制代碼 代碼如下:

>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
>>> 'C:\usr\bin\env'.split('/')
['C:\\usr\x08in\\env']
>>> 'Using the default'.split()
['Using', 'the', 'default']

注意:如果不提供任何分隔符,程序會把所有的空格作為分隔符

6、strip

strip方法返回去除兩側(cè)(不包含內(nèi)部)空格的字符串:

復(fù)制代碼 代碼如下:

>>> '     internal whitespace is kept     '.strip()
'internal whitespace is kept'

也可指定需要去除的字符,將它們列為參數(shù)即可:

復(fù)制代碼 代碼如下:

>>> '*** SPAM * for * everyone!!! ***'.strip(' *!')
'SPAM * for * everyone'

注意:只會去除兩側(cè)的字符

7、translate

translate方法和replace方法一樣,可以替換字符串中的某些部分,但是和前者不同的是,translate方法只處理單個字符

相關(guān)文章

  • python對XML文件的操作實(shí)現(xiàn)代碼

    python對XML文件的操作實(shí)現(xiàn)代碼

    這篇文章主要介紹了python對XML文件的操作實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 詳解如何使用Python網(wǎng)絡(luò)爬蟲獲取招聘信息

    詳解如何使用Python網(wǎng)絡(luò)爬蟲獲取招聘信息

    在疫情階段,想找一份不錯的工作變得更為困難,很多人會選擇去網(wǎng)上看招聘信息。可是招聘信息有一些是錯綜復(fù)雜的。本文將為大家介紹用Python爬蟲獲取招聘信息的方法,需要的可以參考一下
    2022-03-03
  • 基于PyInstaller各參數(shù)的含義說明

    基于PyInstaller各參數(shù)的含義說明

    這篇文章主要介紹了基于PyInstaller各參數(shù)的含義說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python實(shí)現(xiàn)代碼塊兒折疊

    Python實(shí)現(xiàn)代碼塊兒折疊

    這篇文章主要介紹了Python實(shí)現(xiàn)代碼塊兒折疊方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python對象的深拷貝和淺拷貝詳解

    Python對象的深拷貝和淺拷貝詳解

    這篇文章主要介紹了Python對象的深拷貝和淺拷貝詳解,本文從Python核心編程2書中摘錄而來,總結(jié)的比較精辟,需要的朋友可以參考下
    2014-08-08
  • 20招讓你的Python飛起來!

    20招讓你的Python飛起來!

    20招讓你的 Python飛起來!這篇文章主要為大家詳細(xì)介紹了Python性能優(yōu)化的20條建議,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Python生成pdf目錄書簽的實(shí)例方法

    Python生成pdf目錄書簽的實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于Python生成pdf目錄書簽的實(shí)例方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-10-10
  • python多線程并發(fā)及測試框架案例

    python多線程并發(fā)及測試框架案例

    這篇文章主要介紹了python多線程并發(fā)及測試框架案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 使用Python壓縮和解壓縮zip文件的教程

    使用Python壓縮和解壓縮zip文件的教程

    這篇文章主要介紹了使用Python壓縮和解壓縮zip文件的教程,主要用到了zipfile包,需要的朋友可以參考下
    2015-05-05
  • 簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系

    簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系

    這篇文章主要介紹了簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12

最新評論