欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python中的strip()应用

程序员文章站 2022-05-04 16:40:43
...

1.Python中的strip()
  Python中 strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
  注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
(1)语法

str.strip([char])

(2)参数
  char为移除字符串头尾指定的字符序列。
(3)返回值
  返回移除字符串头尾指定的字符生成的新字符串。
(4)实例

str = "000Hello000World000"
#"0"或"000"都行
print(str.strip("0"))

结果:

Hello000World

那有没有其他方法啊?其实有的。
我们可以利用切片操作,实现一个strim()函数。
方法一:

def trim(s):
    # 判断第一个字符是否为空格,若为真利用切片删除这个字符
    while s[:1] == " ":   
        s = s[1:]
    # 判断最后一个字符是否为空格,若为真利用切片删除这个字符
    while s[-1:] == " ":
        s = s[:-1]
    return s

str="  python  "
print(trim(str))

结果:

python

方法二:

def trim(s):
    # 判断第一个字符是否为空格
    if s[:1] == " ":        
        # 利用递归改变S并再次进行判断
        s = trim(s[1:])
    # 判断最后一个字符是否为空格
    if s[-1:] == " ":
        # 利用递归改变S并再次进行判断
        s = trim(s[:-1])
    return s

str="  python  "
print(trim(str))

结果:

python

错误方法:

def trim(s):
    while s[0] == " ":
        s = s[1:]
    while s[-1] == " ":
        s = s[:-1]
    return s

str = "  python  "
print(trim(str))

结果:

python

这里表面看似我们再次成功定义了一个trim()函数,但是为什么是错的呢?
当我们将str中的字符串改为空字符时会发现程序报错。
索引器错误:字符串索引超出范围。而我们使用方法一或者方法二均不会报错。
这是因为当序列是空序列,这时候用[:1]取第一个元素是空,不会报错,而用[0]取由于超过索引范围则会报错。是程序中s[0]和是s[:1]区别所导致的

相关标签: 学习练习 python