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

  • 阅读:2602
  • 回复:5
PYTHON学习笔记【字符串介绍】
细阿哥
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 480
帖子 96
威望 1704 个
礼品券 15 个
专家指数 0
注册 2009-2-25
专业方向  通信
回答问题数 1
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-8 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'

 


微信扫描分享本文到朋友圈
微信扫描二维码,手机阅读更便捷
每天分享朋友圈可获得威望奖励(前两次)

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

 
[充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
充值拥有大量的威望和最高的下载权限,下载站内资料无忧
bikerboy
论坛元老
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

纪念勋章·十周年  
积分 21613
帖子 534
威望 182258 个
礼品券 115 个
专家指数 -18
注册 2008-11-11
专业方向  无线
回答问题数 13
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-9 17:26:29 
技术问题,回答得专家指数,快速升级


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

谢谢楼主分享,学习!

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

 
[立即成为VIP会员,百万通信专业资料立即下载,支付宝、微信付款,简单、快速!]
huangyz_xy
高级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 1801
帖子 96
威望 10812 个
礼品券 8 个
专家指数 10
注册 2008-6-23
专业方向  通信
回答问题数 1
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-10 19:19:50 


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

谢谢楼主分享,学习!

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

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

 
最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网
细阿哥
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 480
帖子 96
威望 1704 个
礼品券 15 个
专家指数 0
注册 2009-2-25
专业方向  通信
回答问题数 1
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-10 22:24:23  只看楼主 


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

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

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

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

 
[2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
yiepqi
金牌会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

纪念勋章·十周年  
积分 6425
帖子 283
威望 81853 个
礼品券 15 个
专家指数 26
注册 2006-12-9
专业方向  网优
回答问题数 6
回答被采纳数 2
回答采纳率 33%
 
发表于 2019-10-13 20:34:03 

正则讲得有点少

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

 
最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网
细阿哥
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 480
帖子 96
威望 1704 个
礼品券 15 个
专家指数 0
注册 2009-2-25
专业方向  通信
回答问题数 1
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-14 22:27:47  只看楼主 


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

正则后面会有

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

 
[2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]

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



当前时区 GMT+8, 现在时间是 2019-11-23 08:10:44
渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

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