MSCBSC 移動通信論壇
搜索
登錄注冊
網絡優(yōu)化工程師招聘專欄 4G/LTE通信工程師最新職位列表 通信實習生/應屆生招聘職位

  • 閱讀:4771
  • 回復:5
PYTHON學習筆記【字符串介紹】
細阿哥
中級會員
鎵嬫満鍙風爜宸查獙璇? style=


 發(fā)短消息    關注Ta 

積分 500
帖子 100
威望 9542 個
禮品券 15 個
專家指數(shù) 0
注冊 2009-2-25
專業(yè)方向  通信
回答問題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
 
發(fā)表于 2019-10-08 23:57:10  只看樓主 

1     字符串介紹

Ø  字符串用單引號或雙引號引起來。

Ø  一個字節(jié)可以讓小于256數(shù)字占用,一個字符占用一個字節(jié);如數(shù)字100占用一個字節(jié),字符100占用三個字節(jié)

Ø  字符串聲明后就會分配下標,從0開始;負數(shù)表示倒數(shù)第幾個;

Ø  len()取字符串長度

Ø  字符串之間可以相加

 

In [7]: name="abcdefghijk"

 

In [8]: name[0]

Out[8]: 'a'

 

In [9]: name[9]

Out[9]: 'j'

 

 

In [11]: name[len(name)-1]

Out[11]: 'k'

 

In [12]: name[-1]    #取倒數(shù)第一個

Out[12]: 'k'

 

In [13]: name[-2]  #取倒數(shù)第二個

Out[13]: 'j

 

[字符串相加,相當于連接]

In [1]: a="100"                                                 

 

In [2]: b="200"                                                 

 

In [3]: a+b                                                     

Out[3]: '100200'

 

In [4]: "a+b=%s"%(a+b)                                           

Out[4]: 'a+b=100200'

 

1.      切片

切片是指對操作的對象截取其中一部分的操作。字符串,列表,元組都支持切換

切片的語法:[起始:結束:步長]    # “包頭不包尾

步長:表示下標變化的規(guī)律

 

In [5]: name="abcdefghijk"                                      

 

In [6]: name[0:2]                    # 截取ab,包頭不包尾”                           

Out[6]: 'ab'

 

In [7]: name[0:-1]              #截取第1個至倒數(shù)第一個之間的字符                                

Out[7]: 'abcdefghij'

 

In [8]: name[:-1]                #起始位不寫,默認從0開始

Out[8]: 'abcdefghij'

 

In [9]: name[2:]                #結束位不寫,默認到最后一位                                

Out[9]: 'cdefghijk'

 

 

In [10]: name[0::2]            #步長=2,隔一個字符取一位 ,默認為1

Out[10]: 'acegik'

 

【例2倒著輸出字符

In [22]: i=len(name)

 

In [23]: while i>0:

    ...:     i-=1

    ...:     print(name[i],end='')

    ...:

kjihgfedcba

 

In [17]: name[-1::-1]  

Out[17]: 'kjihgfedcba'

 

2.      字符串常見函數(shù)調用操作

 

常用函數(shù)

1)     查找字符串位置Findindex

In [24]: my_st="hello world bjsxt laoxiao is bjsxt.com"         

 

 

In [26]: my_st.find("laoxiao")                                  

Out[26]: 18                                      # 輸出字符串第一次出現(xiàn)的位置

 

In [27]: my_st.find("laowang")                                  

Out[27]: -1                                       #沒查找到,輸出-1

 

In [28]: my_st.find("bjsxt")                                    

Out[28]: 12

 

In [29]: my_st.rfind("bjsxt")                                   

Out[29]: 29                                      #從右邊開始查找時用rfind

 

In [30]: my_st.index("bjsxt")         #indexfind類似

Out[30]: 12

 

In [32]: my_st.rindex("bjsxt")                                  

Out[32]: 29

 

In [31]: my_st.index("laowang")       #沒查找到時報錯

-----------------------------------------------------------------

ValueError                      Traceback (most recent call last)

<ipython-input-31-7dc70d120379> in <module>

----> 1 my_st.index("laowang")

 

ValueError: substring not found

 

2)     Count字符出現(xiàn)次數(shù)

In [33]: my_st.count("bjsxt")                                    

Out[33]: 2

 

3)     Relpace字符串的替換

In [34]: my_st.replace("laoxiao","laowang")                     

Out[34]: 'hello world bjsxt laowang is bjsxt.com'

 

In [35]: my_st.replace("bjsxt","laowang",1)         #數(shù)字1表示替換幾次

Out[35]: 'hello world laowang laoxiao is bjsxt.com'

 

4)     Split按照某個字符進行分割,分割后得到一個列表?梢灾付ǚ指疃嗌俣

mystr([sep])分隔符可以指定,也可以不指定。不指定分隔符,將以所有轉義字符或空格分隔。

In [36]: my_st                                                  

Out[36]: 'hello world bjsxt laoxiao is bjsxt.com'

 

In [37]: my_st.split(" ")                                       

Out[37]: ['hello', 'world', 'bjsxt', 'laoxiao', 'is', 'bjsxt.com']

 

In [39]: my_st.split("laoxiao")                                            

Out[39]: ['hello world bjsxt ', ' is bjsxt.com']#結果無分隔符

 

In [40]: my_st.split(" ",2)                    #指標分割多少次

Out[40]: ['hello', 'world', 'bjsxt laoxiao is bjsxt.com']

 

In [81]: name='asdj fl asd kjfp oiwe uri'  

 

In [84]: name.split()                        #指定分隔符,將以所有轉義字符或空格分隔。

Out[84]: ['asdj', 'fl', 'asd', 'kjfp', 'oiwe', 'uri']

5)     Splitlines按照換行符分隔,返回一個包含各行作為元素的列表,相當于split(" ")

6)     re.split()利用re模塊的split函數(shù)對字符串進行分割,分割后返回的是分割部分的字符列表,可以實現(xiàn)一次性分割多種分割符。

>>> import re

>>> str

'abc,123 efg,567'

>>> re.split('[, ]',str)

['abc', '123', 'efg', '567']

7)     Partition,按照某個字符進行分割,分割后得到一個列表。不可以指定分割多少段

In [41]: my_st.partition("laoxiao")                                        

Out[41]: ('hello world bjsxt ', 'laoxiao', ' is bjsxt.com')#分隔后保留分隔符

 

In [42]: my_st.partition(" ")                                              

Out[42]: ('hello', ' ', 'world bjsxt laoxiao is bjsxt.com')

 

8)     Rpartition,類似于partition函數(shù),不過是從右邊開始

 

9)     Capitalize把字符串第一個字符大寫;Title把字符串的每個單詞首字母大寫

 

In [46]: my_st.capitalize()                                                

Out[46]: 'Hello world bjsxt laoxiao is bjsxt.com'

 

In [45]: my_st.title()                                                     

Out[45]: 'Hello World Bjsxt Laoxiao Is Bjsxt.Com'

 

10)   Startswith檢查字符串是否以obj開頭,是則返回True,否則False

11)   endswith檢查字符串是否以obj結束,是則返回True,否則False

 

In [47]: file_name="xxxx.txt"                                               

 

In [49]: if file_name.endswith(".txt"):

    ...:         print("文本")

    ...:                                                                   

文本

 

12)   Lower轉換所有大寫字符為小寫

13)   Upper轉換反有小寫字符為大寫

In [51]: user_str="aBc"                                                     

 

In [52]: user_str.upper()                                                  

Out[52]: 'ABC'

 

14)   Ljust     mystr.ljust(width)返回字符串左對齊,并使用空格填充至長度width的新字符串

15)   Rjust     mystr.rjust(width)返回字符串右對齊,并使用空格填充至長度width的新字符串

16)   Center  mystr.center(width)返回字符串居中,并使用空格填充至長度width的新字符串

 

 

In [57]: name.ljust(50)                                                    

Out[57]: 'abcdefghijk                                       '

 

In [58]: name.rjust(50)                                                    

Out[58]: '                                       abcdefghijk'

 

In [59]: name.center(50)                                                   

Out[59]: '                   abcdefghijk                    '

 

17)   Lstrip刪除字符串左邊空白字符

18)   Rstrip 刪除字符串右邊空白字符

19)   Strip刪除左右兩端空白字符

In [60]: test_str="     abc     "                                          

 

In [61]: test_str.strip()                                                  

Out[61]: 'abc'

 

In [62]: test_str.lstrip()                                                 

Out[62]: 'abc     '

 

In [63]: test_str.rstrip()                                                 

Out[63]: '     abc'

 

 

20)   Isalpha 如果mystr所有字符都是字母,則返回True,否則Falsemystr.isalpha()

21)   Isdigit 如果mystr只包含數(shù)字,則返回True,否則Falsemystr. Isdigit ()

22)   Isalnum 如果所有字符都是字母或數(shù)字,則返回True,否則False

23)   Isspace如果所有字符都是空格,則返回True,否則False

 

24)   Join mystr中每個字符后面插入list的每個元素后面,構造一個新的字符串。列表轉字符串

mystr.join(list)

 

In [73]: my_names=["100","200","300"]                                      

 

In [74]: my_names                                                          

Out[74]: ['100', '200', '300']

 

In [75]: "".join(my_names)                                                 

Out[75]: '100200300'

 

In [76]: "-".join(my_names)           #用指標字符串連接

Out[76]: '100-200-300'

 


掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5G NTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網白皮書
  • 8、回復“5GX3”免費領取《 R16 23501-g60 5G的系統(tǒng)架構1
  • 對本帖內容的看法? 我要點評

     
    [充值威望,立即自動到帳] [VIP貴賓權限+威望套餐] 另有大量優(yōu)惠贈送活動,請光臨充值中心
    充值擁有大量的威望和最高的下載權限,下載站內資料無憂
    bikerboy
    論壇元老
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關注Ta 

    紀念勛章·十周年  
    積分 20178
    帖子 548
    威望 201686 個
    禮品券 115 個
    專家指數(shù) -1523
    注冊 2008-11-11
    專業(yè)方向  無線
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2019-10-09 17:26:29 


    QUOTE:
    原帖由 leerq 于 2019-10-8 23:57:10 發(fā)表
    1 字符串介紹&#216; 字符串用單引號或雙引號引起來。&#216; 一個字節(jié)可以讓小于256數(shù)字占用,一個字符占用一個字節(jié);如數(shù)字100占用一個字節(jié),字符100占用三個字節(jié)&#216;&n ...

    謝謝樓主分享,學習!

    對本帖內容的看法? 我要點評

     
    [立即成為VIP會員,百萬通信專業(yè)資料立即下載,支付寶、微信付款,簡單、快速!]
    派森
    高級會員
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關注Ta 

    積分 1851
    帖子 106
    威望 1673 個
    禮品券 8 個
    專家指數(shù) 10
    注冊 2008-6-23
    專業(yè)方向  通信
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2019-10-10 19:19:50 


    QUOTE:
    原帖由 bikerboy 于 2019-10-9 17:26:29 發(fā)表

    謝謝樓主分享,學習!

    這個還真有點不習慣,用慣了VB6,努力學習中......

    對本帖內容的看法? 我要點評

     
    最新通信職位:廣東通信人才網 | 北京通信人才網 | 上海通信人才網 | 南京通信人才網 | 西安通信人才網 | 重慶通信人才網 | 中國通信人才網
    細阿哥
    中級會員
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關注Ta 

    積分 500
    帖子 100
    威望 9542 個
    禮品券 15 個
    專家指數(shù) 0
    注冊 2009-2-25
    專業(yè)方向  通信
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2019-10-10 22:24:23  只看樓主 


    QUOTE:
    原帖由 huangyz_xy 于 2019-10-10 19:19:50 發(fā)表

    這個還真有點不習慣,用慣了VB6,努力學習中......

    PYTHON的字符操作應該會相對簡單些吧

    對本帖內容的看法? 我要點評

     
    [2分鐘擁有VIP權限和充足威望,可下載站內任何資料] [快速找到一份高薪的通信行業(yè)職位]
    yiepqi
    金牌會員
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關注Ta 

    紀念勛章·十周年  
    積分 6435
    帖子 285
    威望 135187 個
    禮品券 15 個
    專家指數(shù) 26
    注冊 2006-12-9
    專業(yè)方向  網優(yōu)
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2019-10-13 20:34:03 

    正則講得有點少

    對本帖內容的看法? 我要點評

     
    最新通信職位:廣東通信人才網 | 北京通信人才網 | 上海通信人才網 | 南京通信人才網 | 西安通信人才網 | 重慶通信人才網 | 中國通信人才網
    細阿哥
    中級會員
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關注Ta 

    積分 500
    帖子 100
    威望 9542 個
    禮品券 15 個
    專家指數(shù) 0
    注冊 2009-2-25
    專業(yè)方向  通信
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2019-10-14 22:27:47  只看樓主 


    QUOTE:
    原帖由 yiepqi 于 2019-10-13 20:34:03 發(fā)表
    正則講得有點少

    正則后面會有

    對本帖內容的看法? 我要點評

     
    [2分鐘擁有VIP權限和充足威望,可下載站內任何資料] [快速找到一份高薪的通信行業(yè)職位]

    快速回復主題    
    標題
    內容
     上傳資料請點左側【添加附件】

    當前時區(qū) GMT+8, 現(xiàn)在時間是 2025-01-22 21:46:51
    渝ICP備11001752號  Copyright @ 2006-2016 mscbsc.com  本站統(tǒng)一服務郵箱:mscbsc@163.com

    Processed in 1.485940 second(s), 28 queries , Gzip enabled
    TOP
    清除 Cookies - 聯(lián)系我們 - 移動通信網 - 移動通信論壇 - 通信招聘網 - Archiver