博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Python strip()方法

Posted on 2021-01-30 11:55  小翁好  阅读(120)  评论(0编辑  收藏  举报

描述

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法

strip()方法语法:

1
str.strip([chars]);

参数

  • chars -- 移除字符串头尾指定的字符序列。

返回值

返回移除字符串头尾指定的字符生成的新字符串。

实例

以下实例展示了strip()函数的使用方法:

1
实例(Python 2.0+)
1
2
3
4
5
6
7
8
9
#!/usr/bin/python
# -*- coding: UTF-8 -*-
  
str = "00000003210Runoob01230000000";
print str.strip( '0' );  # 去除首尾字符 0
  
  
str2 = "   Runoob      ";   # 去除首尾空格
print str2.strip(); 

以上实例输出结果如下:

1
2
3210Runoob0123
Runoob

从结果上看,可以注意到中间部分的字符并未删除。

以上下例演示了只要头尾包含有指定字符序列中的字符就删除:

实例

1
2
3
4
5
#!/usr/bin/python
# -*- coding: UTF-8 -*-
  
str = "123abcrunoob321"
print (str.strip( '12' ))  # 字符序列为 12

以上实例输出结果如下:

1
3abcrunoob3

  

3 篇笔记 写笔记

  • 只移除字符串头尾指定的字符,中间部分不会移除:
1
2
3
4
#!/usr/bin/python
 
str = "0000000this is string 0000example....wow!!!0000000";
print str.strip( '0' );

输出结果中间部分的 0 还是存在的:

1
this is string 0000example....wow!!!
  • 像 lstrip 和 rstrip 一样,strip() 也可以带多个字符参数,测试如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding:utf-8 -*-
 
str1 = '    iam string  '
 
print "str1:\'%s\'" %str1
print "str1.strip():\'%s\'" %str1.strip()
 
str2 = '@@@@@iamstring@@@@@'
print "str2:\'%s\'" %str2
print "str2.strip('@'):\'%s\'" %str2.strip('@')
print "str2.strip('@@'):\'%s\'" %str2.strip('@@')
print "str2.strip('@@@@@@'):\'%s\'" %str2.strip('@@@@@@')
print "str2.strip('@i'):\'%s\'" %str2.strip('@i')
print "str2.strip('@ag'):\'%s\'" %str2.strip('@g')

输出结果为:

1
2
3
4
5
6
7
8
str1:'  iam string  '
str1.strip():'iam string'
str2:'@@@@@iamstring@@@@@'
str2.strip('@'):'iamstring'
str2.strip('@@'):'iamstring'
str2.strip('@@@@@@'):'iamstring'
str2.strip('@i'):'amstring'
str2.strip('@ag'):'iamstrin'
  • 从第二个序列看出来好像并不是指定序列:
1
2
str = "123abcrunoob321"
print (str.strip( '12' )) # 字符序列为 12 ?

因为输出:

1
3abcrunoob3

结尾的难不成是从右向左寻找??

带着疑问我测试了几次,发现:

1
str = "123abcrunoob3221"print (str.strip( '32b1' ))

输出:

1
abcrunoo

看起来像是参数中每个字符 3 2 b 1 都是独立的,

在开头从左向右依次查找字符,如果是这几个中的一个就删除,继续往下找,若不是,就终止,所以开头保留到a 。

在结尾从右往左查找,同上,而且结尾的 22 可以重复删除。如果有不正确的地方期待指正。