设为首页 收藏本站
查看: 744|回复: 0

[经验分享] Python学习笔记1—Python字符串

[复制链接]

尚未签到

发表于 2018-8-11 07:59:32 | 显示全部楼层 |阅读模式
  字符串是python中重要的数据对象
  python字符串是以单引号、双引号、或者三个三单引号三个双引号包含的任意的python数据对象都可以称为python字符串
  注意:以单引号或双引号包含的数据对象中间不可以换行(若需要换行需要用转义字符\n),三个单引号或三个双引号可以包含多行的数据对象。
  一、转义符
  在任何的语言里都有转义符这样的概念存在,转义符是让含有特殊意义的字符失去特殊的意义,按照普通的形式打印。
  例如我们需要打印出某个文件的路径
print 'c:\note\takes.txt'  执行结果为
c:  
oteakes.txt
  这并不是我们想要的结果,这时需要用转义字符,使\n和\t这些含有特殊意义的字符失去本身的意义,才会按照正确的格式打印出来。
print 'c:\\note\\takes.txt'  执行结果为
c:\note\takes.txt  也可以在字符串前面添加“r”使接下来的整个字符串中的特殊字符失去特殊的意义。
print r'c:\note\takes.txt'  二、字符串分片操作(游标)
  字符串是有序的序列
  索引开始从0开始,结束为-1
  分片操作包含索引开始值,但是不包含终止值,通常是终止值减1
  字符串变量[游标]:返回当前游标所对应的字符。
  字符串变量[开始游标,结束游标,步长]:开始游标指截取字符串的开始下标;结束游标指截取字符串的结束下标;步长是指游标的间隔数。
  注意:截取的结果包括开始游标不包括结束游标;开始游标可以省略,省略默认为0;结束游标可省,省略默认为截取到字符串末尾;步长可省,省略默认为1。
a='0123456789'  
print a[1]
  
print a[-2]
  
print a[2:4]
  
print a[2:8:2]
  
print a[:7:2]
  
print a[2:7:]
  
print a[2::]
  执行结果为
1  
8
  
23
  
246
  
0246
  
23456
  
23456789
  三、字符串方法
  字符串方法是针对字符串的操作,方法已经定义并封装,使用简化操作和代码重写
  1.字符串填充方法
  center(width[,fillchar])
  字符串在指定长度内居中
  ljust(width[,fillchar])
  字符串在指定长度内靠左对齐
  rjust(width[,fillchar])
  字符串在指定长度内靠右对齐
  zfill(width)
  zfill()即是以字符0进行填充,在输出数值时比较常用
  width:宽度表示字符在什么宽度内居中,该数值包括字符串本身的长度,若指定的长度小于字符串本身的长度,该方法不会生效
  fillchar:可选参数,表示以什么字符填充空白部分,默认是空格。
  注意:若指定的长度过大,运行窗口一行放不下时会换行显示,影响显示效果。
a='0123456789'  
print a.center(50,'*')
  
print a.ljust(50,'*')
  
print a.rjust(50,'*')
  
print '1'.zfill(2)
  
print '10'.zfill(2)
  执行结果为
********************0123456789********************  
0123456789****************************************
  
****************************************0123456789
  
01
  
10
  expandtabs([tabsize])
  expandtabs()的tabsize 参数默认为8。它的功能是把字符串中的制表符tab转换为适当数量的空格。
  注意:
  tabsize参数包括从该制表符到它的上一个制表符的所有字符;
  若tabsize的值小于等于该制表符到它的上一个制表符的所有字符,则显示的空格数是(x*tabsize-该制表符到它的上一个制表符的所有字符数);
  若tabsize的值大于该制表符到它的上一个制表符的所有字符,则显示的空格数是(tabsize-该制表符到它的上一个制表符的所有字符数).
a='123\twfdsf\tadfsd'  
b='012345678901234567890'
  
print b
  
print a.expandtabs(3)
  
print a.expandtabs(2)
  
print a.expandtabs(4)
  
print a.expandtabs(7)
  执行结果为
012345678901234567890  
123   wfdsf adfsd
  
123 wfdsf adfsd
  
123 wfdsf   adfsd
  
123    wfdsf  adfsd
  2.字符串删减方法
  strip()函数族用以去除字符串两端的空白符
  strip([chars])    去掉字符串两端的指定的符号
  rstrip([chars])    去掉字符串右端的指定的符号
  lstrip([chars])    去掉字符串左端的指定的符号
  chars:可省参数,表示要去掉的字符,可以是多个字符,省略默认为空格。
a='     adfasdff      '  
print a.strip()
  
print a.lstrip()
  
print a.rstrip()
  
a='**********adfadsfasdfasd**********'
  
print a.strip('*')
  
print a.lstrip('*')
  
print a.rstrip('*')
  
a='*!*!*!*!*!adfadsfasdfasd*!*!*!*!'
  
print a.strip('*!')
  
print a.lstrip('*!')
  
print a.rstrip('*!')
  执行结果为
adfasdff  
adfasdff
  
     adfasdff
  
adfadsfasdfasd
  
adfadsfasdfasd**********
  
**********adfadsfasdfasd
  
adfadsfasdfasd
  
adfadsfasdfasd*!*!*!*!
  
*!*!*!*!*!adfadsfasdfasd
  3.字符串变形方法
  lower()        将字符串转换为小写
  upper()        将字符串转换为大写
  capitalize()    首字母大写
  swapcase()     大小写之间转换
  title()        单词首字母大写(按空格等间隔符来区分单词,不能区分单词拼写是否正确)
a='Hello World,Python!'  
print a.lower()
  
print a.upper()
  
print a.capitalize()
  
print a.swapcase()
  
print a.title()
  
a='hello world,python!'
  
print a.capitalize()
  
print a.title()
  执行结果为
hello world,python!  
HELLO WORLD,PYTHON!
  
Hello world,python!
  
hELLO wORLD,pYTHON!
  
Hello World,Python!
  
Hello world,python!
  
Hello World,Python!
  4.字符串切分方法
  splitlines([keepends])返回一个列表,将字符串按行\n分隔.keepends:可选参数,若为True,会在列表中分割的子串中显示换行符\n;若为False不显示.默认为False。
  split([sep[,maxsplit]])返回一个列表,将字符串按某个字符从左向右分隔
  rsplit([sep[,maxsplit]])返回一个列表,将字符串按某个字符从右向左分隔分隔
  sep:可选参数,按指定的字符分隔字符串,默认按空格、换行、制表符等符号分隔
  maxsplit:可选参数,指定分隔的次数,默认是分隔全部的字符串。
  split和rsplit在不指定maxsplit参数的情况下是完全相同的效果。
a='hello world python \ni am comming \nabc123'  
print a.splitlines()
  
print a.splitlines(True)
  
print a.split()
  
print a.split(' ')
  
print a.split(' ',4)
  
print a.rsplit()
  
print a.rsplit(' ')
  
print a.rsplit(' ',4)
  执行结果为
['hello world python ', 'i am comming ', 'abc123']  
['hello world python \n', 'i am comming \n', 'abc123']
  
['hello', 'world', 'python', 'i', 'am', 'comming', 'abc123']
  
['hello', 'world', 'python', '\ni', 'am', 'comming', '\nabc123']
  
['hello', 'world', 'python', '\ni', 'am comming \nabc123']
  
['hello', 'world', 'python', 'i', 'am', 'comming', 'abc123']
  
['hello', 'world', 'python', '\ni', 'am', 'comming', '\nabc123']
  
['hello world python', '\ni', 'am', 'comming', '\nabc123']
  5.字符串连接方法
  join(seq)将字符串的值插入到seq参数提供的字符串中
  join() 函数的高效率(相对于循环相加而言)使它成为最值得关注的字符串方法之一
print '123'.join('abcdef')  
print 'Hello'.join('|||')
  执行结果为
a123b123c123d123e123f  
|Hello|Hello|
  6.字符串判断方法
  isalnum()判断是否为字母或数字,不包含其他字符,若是字母或数字返回True
  isalpha()判断是否为字母,若是字母,返回True
  isdigit()判断是否为数字,若是数字,返回True
  islower()判断字符串中的字母是否全部为小写,若是,返回True
  isupper()判断字符串中的字母是否全部为大写,若是,返回True
  isspace()判断是否是空格,若是空格,返回True
  istitle()判断首字母是否是大写,若是,返回True
print 'python!123'.isalnum(),'python123'.isalnum()  
print 'Python123'.isalpha(),'Python'.isalpha()
  
print 'python123'.isdigit(),'123'.isdigit()
  
print 'python'.islower(),'python123'.islower(),'Python'.islower(),'PYTHON'.islower()
  
print 'PYTHON'.isupper(),'PYTHON123'.isupper(),'Python'.isupper(),'python'.isupper()
  
print '   '.isspace(),'  python'.isspace()
  
print 'Python good'.istitle(),'python Good'.istitle(),'Python Good'.istitle()
  执行结果为
False True  
False True
  
False True
  
True True False False
  
True True False False
  
True False
  
False False True
  startswith(prex[, start[, end]])判断字符串是否是以prex参数的值开始的,若是,返回True。
  endswith(sux[,start[, end]])判断字符串是否是以sux参数的值结束的,若是,返回True。
  start:可省参数,指定字符串的开始游标,省略默认为0
  end:可省参数,指定字符串的结束游标,省略默认为截取到字符串结尾。
print 'Python123'.startswith('p'),'Python123'.startswith('P'),'Python123'.startswith('Py')  
print 'Python123'.startswith('th',2),'Python123'.startswith('h',3,5)
  
print 'Python123'.endswith('123'),'Python123'.endswith('3')
  
print 'Python123'.endswith('on',2,6),'Python123'.endswith('123',4)
  执行结果为
False True True  
True True
  
True True
  
True True
  7.字符串查找方法
  count( sub[, start[, end]])统计sub参数在字符串中出现的次数
  find( sub[, start[, end]])查找sub参数在字符串中首次出现的位置,若没找到,返回-1
  index( sub[, start[, end]])查找sub参数在字符串中首次出现的位置,若没找到,报错
  start参数和end参数与startswith()方法的start,end参数使用方法相同。
a='012345678901234567890123456789'  
print a.count('3'),a.count('23',4,14)
  
print a.find('3'),a.find('23',14,24),a.find('e')
  
print a.index('3'),a.index('23',14,24),a.index('e')
  执行结果为
3 1  
3 22 -1
  
3 22
  

  
Traceback (most recent call last):
  
  File "C:\Users\Administrator\Desktop\123.py", line 4, in <module>
  
    print a.index('3'),a.index('23',14,24),a.index('e')
  
ValueError: substring not found
  8.字符串替换方法
  replace(old, new[,count])将字符串中old的值替换为new的值。
  replace()函数的 count 参数用以指定最大替换次数
a='012345678901234567890123456789'  
print a.replace('1','q'),a.replace('1','q',2)
  
print a.replace('123','qw'),a.replace('123','qw',2)
  执行结果为
0q234567890q234567890q23456789 0q234567890q234567890123456789  
0qw4567890qw4567890qw456789 0qw4567890qw4567890123456789
  9.字符串编码方法
  encode([encoding[,errors]])加码
  decode([encoding[,errors]])解码
  这是一对互逆操作的方法,用以编码和解码字符串。因为str是平台相关的,它使用的内码依赖于操作系统环境,而unicode是平台无关的,是Python内部的字符串存储方式。unicode可以通过编码(encode)成为特定编码的str,而str也可以通过解码(decode)成为unicode

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-549875-1-1.html 上篇帖子: python--基础知识 下篇帖子: Python编码格式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表