01-字符串操作

python中的字符串,只要是被单引号或是双引号所 括起来的,就都是字符串。

字符串是一种不可变的数据类型,对字符串进行的任何操作,都不会改变原字符串,而是新生成一个新的字符串。

一. 字符串的切片

字符串中的每一个元素,都可以通过切片来一一取出来。而切片的主要意义就是通过切片,对字符串进行一些处理,从而获得我们需要的数据。

切片的操作

对字符串进行切片,通常需要传递两个参数:起始的下标,和结束的下标。而对字符串进行切片时,还有第三个参数,这个参数代表着步长,这个参数可选参数,如果不填,那么就是默认的步长为。

切片的一般写法是:str[0:2],这表示从字符串str中取出下标从0到2的字符。

字符串切片的注意事项:

  1. 字符串切片,遵循一个原则:就是切片的时候,取头不取尾;
  2. 如果起始下标 没有写,那么就是从下标为0的字符,一直截取到结束下标为止;
  3. 如果结束下标不填,那就是从开始下标一直截取到字符串的末尾;
  4. 字符串的截取,如果是正序截取,那么下标是从0开始计算;但如果是倒序截取,那么下标就是从-1开始计算;
  5. 如果是倒序截取字符串,那么截取时,步长必须要填,且此时的步长是负数。
my_hobby = "Never stop learning!"
# 5. 截取从 位置2 ~ 位置6 的字符串
print(my_hobby[2:7])

# 6. 截取从 位置2 ~ 末尾 的字符串
print(my_hobby[2:])

# 7. 截取从 开始位置~ 位置6 的字符串
print(my_hobby[:7])

# 8.截取完整的字符串
print(my_hobby[::])

# 9. 从 索引3 开始,每2个字符中取一个字符
print(my_hobby[3::2])

# 10. 截取字符串末尾两个字符
print(my_hobby[int(len(my_hobby)) - 2:])

# 11. 字符串的倒序
print(my_hobby[::-1])

二. 字符串的常用方法

capitalize():
    首字母大写。
    s = "china"   
    s1 = s.capitalize()
    print(s1)   # China


lower():
    字符串中的大写英文变为小写。
    s = "chinA"
    s2 = s.lower()
    print(s2) # china 
    

upper():
    字符串中的小写英文变为大写.
    s = "chinA"    
    s3 = s.upper()
    print(s3) # CHINA


title():
    每个单词的首字母大写。
    s = "chinA is a strong country"
    s5 = s.title()
    print("s5=",s5) # s5= China Is A Strong Country
    

swapcase():
    大小写互换s
    s = "  chinA"
    s3 = s.upper()  
    print(s3) # CHINa


strip():
    去除字符串中的空格(默认去掉两边的空白,包括空格、\t、\n)
    也可以去除给定的内容。
    s = "  chinA"
    s6 = s.strip() # 默认去掉两边的空白(包括空格、\t、\n),
    print("s6=",s6) # chinA
    
    # 同样可以给定要去掉的内容
    s = "hello"
    print(s.strip("h"))     # ello
    

replace("字符串中原有的值","要替换的值"[,arg]):
    替换。
    参数解析:
        第一个参数表示字符串中原有的字符,也就是将要被替换掉的数据;
        第二个参数表示将要替换的字符,也就是取代字符串中原有字符的数据;
        第三个参数是个可选参数,表示替换的次数,默认是全部替换
    n = "李白,杜甫,苏轼,李清照,陆游"
    print(n.replace("李白","辛弃疾")) # 辛弃疾,杜甫,苏轼,李清照,陆游
    
    注意:
        替换之后的字符串,是一个新的字符串,元字符串没有改变。


split():
    从字符串的左边进行分隔。分隔出来的是一个列表。
    参数解析:
        第一个参数表示字符串中将以这个参数进行分隔;
        第二个参数表示分隔几次,是可选参数,默认是全部分隔。
    n1 = "李白_杜甫_苏轼_李清照_陆游"
    print(n1.split("_")) # ['李白', '杜甫', '苏轼', '李清照', '陆游']


rsplit():
    类似split(),只不过是从 字符串的右边开始分隔。


startswith():
    查找字符串是不是以传递的参数开头。
    n2 = "李白,杜甫,苏轼,李清照,陆游"
    print(n2.startswith("李"))  # True


endswith():
    查找字符串是不是以传递的参数而结尾。
    n2 = "李白,杜甫,苏轼,李清照,陆游"
    print(n2.endswith("游"))    # False


count():
    计算穿钉的参数在字符串中出现了几次。
    如果在字符串中存在传递的参数,那么返回这个参数在字符串中出现的次数;如果字符串中没有出现传递的参数,那么返回0.
    n3 = "I have a dream.But I want to kill you!!"
    print(n3.count("!")) # 2


find():
    查找传递的参数在字符串中的位置。
    如果有则显示这个参数在字符串中的下标;如果没有则返回-1.
    n4 = "I have a dream.But I want to kill you!!"
    print(n4.find("k")) # 29


index():
    类似find(),但是如果没有找到元素时,index()函数 会直接报错。


isdigit():
    判断字符串是否是有数字组成。


isalpha():
    判断字符串是否是有由字母组成。


isalnum():
    判断字符串是否是有数字和字母同时组成


isnumeric():
    判断字符串是否是由数字组成,这个方法类似isdigit(),但是这个方法可以区分中文中大写数字。


seq.join(index):
    以指定的字符,将字符进行拼接。
    一般是将一个列表中的元素进行拼接,但是注意,列表中的元素必须是字符串类型才可以拼接。
    参数解析:
        seq:分隔符,也就是字符串将以这个分隔符进行分隔。
        index:需要被分隔的字符串。
    并且,将 字符串分隔完毕之后,分隔符将不会出现在分隔出来的列表中。
    list = ["今天", "星期五", "明天星期六"]
    s =",".join(list)
    print(s)    # 今天,星期五,明天星期六


format():
    格式化。常用来对动态的拼接字符串内容。
    
        age = input("请输入年龄:")
        name = input("请输入姓名:")
        pirnt("我叫{},我今年{}岁了".format(name, age))
    
    还可以指定顺序:
        age = input("请输入年龄:")
        name = input("请输入姓名:")
        pirnt("我叫{0},我今年{1}岁了".format(name, age))
        
        这种情况可以重复使用:
        age = input("请输入年龄:")
        name = input("请输入姓名:")
        pirnt("我叫{0},我今年{1}岁了,{0}".format(name, age))
    
    还可以指定参数:
        age = input("请输入年龄:")
        name = input("请输入姓名:")
        pirnt("我叫{name},我今年{age}岁了".format(name=name, age=age))
posted @ 2020-06-08 21:17  康帅博丶  阅读(134)  评论(0编辑  收藏  举报