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

[经验分享] python字符串(二)

[复制链接]

尚未签到

发表于 2018-8-14 08:25:08 | 显示全部楼层 |阅读模式
  一、字符串具有不可改变的特性
>>> str1 = 'your'  
>>> str1 = str1 + 'name'
  
>>> str1
  
'yourname'
  当执行第二行的时候,在内存里又开辟了一个空间存储"yourname",而不是在原来存储“your”的地方修改,使得str1指向这个新地址
  
  二、切片
>>> str='my name is sam, and i love girl'  
>>> str[1]
  
'y'
  
>>> str[3:7]
  
'name'
  
>>> str[-4:]    #截取最后4个字符
  
'girl'
  
>>> str[-1:-5:-1]    #反序截取
  
'lrig'
  三、字符串长度
>>> str='my name is sam, and i love girl'  
>>> len(str)
  
31
  四、包含
>>> str='my name is sam, and i love girl'  
>>> 'name' in str       #  不存在则报错
  
True
  
>>> 'tiger' not in str
  
True
  
  五、循环
>>> str='your name'  
>>> for i in str:
  
...     print(i)
  
...
  
y
  
o
  
u
  
r
  
n
  
a
  
m
  
e
  六、字符串方法
  1. count
>>> 'your name, ming zi'.count('n')  
2
  
>>> 'your name, ming zi'.count('n',6)
  
1
  
>>> 'your name, ming zi'.count('n',6,8)
  
0
  2. capitalize
>>> "youy name".capitalize()  
'Youy name'
  3.  center
>>> "youy name".center(50,'-')  
'--------------------youy name---------------------'
  4. encode
>>> "youy name".encode(encoding='utf-8')  
b'youy name'
  5. endswith
>>> "youy name".endswith("me")  
True
  6. expandtabs
>>> "\tyouy name".expandtabs(10)  
'          youy name'
  7. format
>>> "I am %s, %d year old, I love %s" % ('Sam',12, 'dog')  
'I am Sam, 12 year old, I love dog'
  
>>> "I am {}, {} year old, I love {}".format('Sam',12, 'dog')
  
'I am Sam, 12 year old, I love dog'
  
>>> "I am {2}, {0} year old, I love {1}".format(12,'dog', 'Sam')
  
'I am Sam, 12 year old, I love dog'
  
>>> "I am {name}, {age} year old, I love {dong}".format(name='Sam',age=12, dong='dog')
  
'I am Sam, 12 year old, I love dog'
  注:%s字符串,%d整型,%f浮点数
  8. format_map
>>> 'My name is {name}, I am {age} year old'.format_map({'name': 'Sam', 'age': 23})  
'My name is Sam, I am 23 year old'
  9. find  左边找    rfind 右边找
>>> 'My name is Sam, I am 23 year old'.find('a')  # 左边找  
4
  
>>> 'My name is Sam, I am 23 year old'.find('a',5)
  
12
  
>>> 'My name is Sam, I am 23 year old'.find('a',13, 19)
  
18
  
>>> 'yui'.find('l')  # 找不到则返回-1
  
-1
  

  
>>> 'My name is Sam, I am 23 year old'.rfind('a')  # 右边找
  
26
  10. index
>>> 'My name is Sam, I am 23 year old'.index('a')  
4
  
>>> 'My name is Sam, I am 23 year old'.index('a',5)
  
12
  
>>> 'My name is Sam, I am 23 year old'.index('a', 13, 19)
  
18
  
>>> 'yui'.index('l')  # 找不到则,报错
  
Traceback (most recent call last):
  
  File "<stdin>", line 1, in <module>
  
ValueError: substring not found
  11. isalnum 检查判断字符串是否包含字母数字字符
>>> 'name'.isalnum()  
True
  
>>> '12'.isalnum()
  
True
  
>>> 'AAB'.isalnum()
  
True
  
>>> '!fff'.isalnum()
  
False
  12. isalpha  检测字符串是否只由字母组成
>>> 'asdf'.isalpha()  
True
  
>>> '1234'.isalpha()
  
False
  
>>> 'gh67'.isalpha()
  
False
  13. isdecimal  非负整数 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
>>> 'ghjjj'.isdecimal()  
False
  
>>> '12'.isdecimal()
  
True
  
>>> '12.7'.isdecimal()
  
False
  14. isdigit   非负整数     检测字符串是否以数字组成
>>> '12'.isdigit()  
True
  
>>> '12.8'.isdigit()
  
False
  
>>> '-12'.isdigit()
  
False
  
>>> '0'.isdigit()
  
True
  15.  isidentifier  检测字符串是否以字母开头
>>> 'hhh'.isidentifier()  
True
  
>>> '77'.isidentifier()
  
False
  
>>> '!@'.isidentifier()
  
False
  
>>> '7ggg'.isidentifier()
  
False
  16. islower
>>> 'AhhBgggG'.islower()  
False
  
>>> 'hhhhh'.islower()
  
True
  17.  isnumeric    检测字符串是否只由数字组成。这种方法是只针对unicode对象。
>>> '678'.isnumeric()  
True
  
>>> '678.9'.isnumeric()
  
False
  
>>> '678.0'.isnumeric()
  
False
  18.  isprintable    判断字符串中所有字符是否都属于可见字符
>>> 'hyyuuuu\nyyyyyy'.isprintable()  
False
  
>>> 'hyyuuuuyyyyyy'.isprintable()
  
True
  19.  isspace     检测字符串是否为空格
>>> 'jjjiiii'.isspace()  
False
  
>>> ' '.isspace()
  
True
  20.  istitle    判断字符串是否适合当作标题(其实就是每个单词首字母大写)
>>> 'Your Name'.istitle()  
True
  21.  isupper    判断字符串中所有字母字符是否都是大写字母
>>> 'fghhh'.isupper()  
False
  
>>> 'FGGGGG'.isupper()
  
True
  22.  join   字符串列表连接
>>> '+'.join('string')  
's+t+r+i+n+g'
  
>>> '+'.join(['i', 'am', 'your'])
  
'i+am+your'
  23.  strip lstrip rstrip  移除左右  空格  换行符
str = '  ggggggggggg    \n'  
print(str)
  
print(str.strip())
  
print(str.lstrip())
  
print(str.rstrip())
  
print('````````````')
  24. ljust  rjust   与center 类似
>>> 'name'.ljust(50, '*')  
'name**********************************************'
  
>>> 'name'.rjust(50, '*')
  
'**********************************************name'
  25. lower   将字符串的大写换成小写
>>> 'ASDF'.lower()  
'asdf'
  
>>> 'AS7766!DF'.lower()
  
'as7766!df'
  26.  maketrans  translate
>>> 'i am your hero sb'.translate({'abc': '123'})  
'i am your hero sb'
  
>>> tab = 'i your hero sb'.maketrans('abc','123')
  
>>> 'i am your hero sb'.translate(tab)
  
'i 1m your hero s2'
  27. partition   rpartition  如果分隔符包含在字符串中,返回一个元组,第一个为分隔符左边字符串,第二个为分隔符,第三个为右边字符串
>>> 'zxcvbnvbhjuu'.partition('vb')  # 匹配左边的  
('zxc', 'vb', 'nvbhjuu')
  
>>> 'zxcvbnvbhjuu'.partition('pp')
  
('zxcvbnvbhjuu', '', '')
  
>>> 'zxcvbnvbhjuu'.rpartition('vb') # 匹配右边的
  
('zxcvbn', 'vb', 'hjuu')
  
>>> 'zxcvbnvbhjuu'.rpartition('pp')
  
('', '', 'zxcvbnvbhjuu')
  28.  replace
>>> 'your name, i am a boy'.replace('a', 'B')  
'your nBme, i Bm B boy'
  
>>> 'your name, i am a boy'.replace('a', 'B', 1)
  
'your nBme, i am a boy'
  29. split  rsplit
>>> 'your name, i am a boy'.split('a')  
['your n', 'me, i ', 'm ', ' boy']
  
>>> 'your name, i am a boy'.split('a',2)  # 从左边划分
  
['your n', 'me, i ', 'm a boy']
  
>>> 'your name, i am a boy'.rsplit('a',2)  # 从右边划分
  
['your name, i ', 'm ', ' boy']
  30.  splitlines
>>> '''My name\n is Sam, I am\n 23 year old'''.splitlines()  
['My name', ' is Sam, I am', ' 23 year old']
  31.  startswith
>>> 'My name is Sam, I am 23 year old'.startswith('My',4,10)  
False
  
>>> 'My name is Sam, I am 23 year old'.startswith('me',4,10)
  
False
  
>>> 'My name is Sam, I am 23 year old'.startswith('ame',4,10)
  
True
  32.  swapcase
>>> 'ASfrtAAggg'.swapcase()  
'asFRTaaGGG'

  33.>>>> 'you name'.title()  
'You Name'
  34. upper
>>> 'i am your hero sb'.upper()  
'I AM YOUR HERO SB'
  35.  zfill
>>> "youy name".zfill(50)  
'00000000000000000000000000000000000000000youy name'

运维网声明 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-551404-1-1.html 上篇帖子: 修改python原文件中的from、to字段 下篇帖子: python smtp发送邮件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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