MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

  • 阅读:4586
  • 回复:5
PYTHON学习笔记【字符串介绍】
细阿哥

鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 500
帖子 100
威望 4542 个
礼品券 15 个
专家指数 0
注册 2009-2-25
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-08 23:57:10  只看楼主 

1     字符串介绍

Ø  字符串用单引号或双引号引起来。

Ø  一个字节可以让小于256数字占用,一个字符占用一个字节;如数字100占用一个字节,字符100占用三个字节

Ø  字符串声明后就会分配下标,从0开始;负数表示倒数第几个;

Ø  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]    #取倒数第一个

Out[12]: 'k'

 

In [13]: name[-2]  #取倒数第二个

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.      切片

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

切片的语法:[起始:结束:步长]    # “包头不包尾

步长:表示下标变化的规律

 

In [5]: name="abcdefghijk"                                      

 

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

Out[6]: 'ab'

 

In [7]: name[0:-1]              #截取第1个至倒数第一个之间的字符                                

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.      字符串常见函数调用操作

 

常用函数

1)     查找字符串位置Findindex

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

 

 

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

Out[26]: 18                                      # 输出字符串第一次出现的位置

 

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字符出现次数

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)         #数字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函数对字符串进行分割,分割后返回的是分割部分的字符列表,可以实现一次性分割多种分割符

>>> 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函数,不过是从右边开始

 

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只包含数字,则返回True,否则Falsemystr. Isdigit ()

22)   Isalnum 如果所有字符都是字母或数字,则返回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、回复“iot6”免费领取《【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
  • 2、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 3、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 4、回复“SPN2”免费领取《中国移动SPN2.0技术白皮书
  • 5、回复“LTKJ7”免费领取《 联通科技周17本白皮书合集
  • 6、回复“5g-a”免费领取《中国联通5G-A 通感算融合技术白皮书
  • 7、回复“URLLC”免费领取《中国联通5G URLLC 技术白皮书
  • 8、回复“LDSL”免费领取《中国移动算力网络技术白皮书
  • 对本帖内容的看法? 我要点评

     
    bikerboy

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    纪念勋章·十周年  
    积分 20373
    帖子 548
    威望 201761 个
    礼品券 115 个
    专家指数 -1328
    注册 2008-11-11
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2019-10-09 17:26:29 
    技术问题,回答得专家指数,快速升级


    QUOTE:
    原帖由 leerq 于 2019-10-8 23:57:10 发表
    1 字符串介绍&#216; 字符串用单引号或双引号引起来。&#216; 一个字节可以让小于256数字占用,一个字符占用一个字节;如数字100占用一个字节,字符100占用三个字节&#216;&n ...

    谢谢楼主分享,学习!

    对本帖内容的看法? 我要点评

     
    派森

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 1851
    帖子 106
    威望 1173 个
    礼品券 8 个
    专家指数 10
    注册 2008-6-23
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2019-10-10 19:19:50 


    QUOTE:
    原帖由 bikerboy 于 2019-10-9 17:26:29 发表

    谢谢楼主分享,学习!

    这个还真有点不习惯,用惯了VB6,努力学习中......

    对本帖内容的看法? 我要点评

     
    细阿哥

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 500
    帖子 100
    威望 4542 个
    礼品券 15 个
    专家指数 0
    注册 2009-2-25
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2019-10-10 22:24:23  只看楼主 


    QUOTE:
    原帖由 huangyz_xy 于 2019-10-10 19:19:50 发表

    这个还真有点不习惯,用惯了VB6,努力学习中......

    PYTHON的字符操作应该会相对简单些吧

    对本帖内容的看法? 我要点评

     
    yiepqi

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    纪念勋章·十周年  
    积分 6435
    帖子 285
    威望 135137 个
    礼品券 15 个
    专家指数 26
    注册 2006-12-9
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2019-10-13 20:34:03 

    正则讲得有点少

    对本帖内容的看法? 我要点评

     
    细阿哥

    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 500
    帖子 100
    威望 4542 个
    礼品券 15 个
    专家指数 0
    注册 2009-2-25
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2019-10-14 22:27:47  只看楼主 


    QUOTE:
    原帖由 yiepqi 于 2019-10-13 20:34:03 发表
    正则讲得有点少

    正则后面会有

    对本帖内容的看法? 我要点评

     

    快速回复主题    
    标题
    内容
     上传资料请点左侧【添加附件】

    当前时区 GMT+8, 现在时间是 2024-03-29 19:41:45
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.533425 second(s), 29 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver