Python3学习笔记_字符串_20200416

Python3学习笔记_字符串_20200416

⑧ 字符串:以引号括起来的数据类型就是字符串
      引号可以是:
      单引号(只能是单行字符串)
      双引号(只能是单行字符串)
      三引号(可以是多行字符串,三引号可以是三个单引号,也可以是三个双引号)
     【三引号需要用到的时候为字符串,不用的即为注释】

字符串操作:
1、字符串运算:成员运算  in/not in
a='hello python' b="he" print(b in a)

2、len()--获取字符串的自然长度

3、连接操作:+,要相同的的数据类型【字符串的拼接】
a='hello python' b="~" print(a+b)

4、重复操作:*,后面加数字【字符串的重复次数】
a='hello python' print(a*2)

5、索引操作:获取某一个元素
表示方法:str[index]-index是从0开始的,不是从1开始的
超出索引范围的,报错:indexError
负数从-1开始,从右边开始取

a='hello python' print(a[5])


6、切片操作:获取多个元素------重点
取左不取右【左闭右开】
超出范围的不报错,依次取到最后
表示方法:str[start:end:step]
    默认step为1,可以省略步长
    start可以省略,表示索引为0或-1,即最开始的地方开始取
    end可以省略,表示一直取到最后

name[1:]  vs   name[1:-1]的区别?--name[1:] 可以取到最后一个值,name[1:-1]取不到最后一个值

    start和end可以同时省略,全部取完,从开始到最后
    print(name[:]) 和 print(name)的区别?---name[:]可以复制原来的文本

    start>end ,开始位置>结束位置,取不到结果,因为默认步长为1,从左向右取,但是start>end是从左向右取的,两个命令不知道听谁的,所以取不到结果
     	print(name[3:0])
     	print("打印结果:{}".format(name[3:0]))

    start>end ,开始位置>结束位置,取不到结果时,可以将step设为-1
        print(name[3:1:-1])
        print("打印结果:{}".format(name[3:0:-1]))

    start<end,step为-1,同样取不到结果,因为还是两个命令,不知道听谁的
        print(name[2:4:-1])

    step为负数,表示从右向左取

    start,end,step,全部是负数:--可以取到结果
        print(name[-2:-4:-1])

总结:什么时候才能取到数
        1、判断end-start是整数还是负数
        2、判断step是整数还是负数
        3、end-start是整数,step也为整数,则可以取到;end-start是负数,step也为负数则可以取到

a='hello python' print(a[2:4:2])
倒序显示:print(a[::-1])

7、字符串格式化输出:好处是变量可以是用户自己输入的
name=input("请输入用户名:")
age=input("请输入用户年龄:")
gender=input("请输入用户性别:")

---print("""
    用户名:{}
    年龄:{}
    性别:{}
    """.format(name,age,gender))

---print("""
    用户名:{}
    年龄:{}
    性别:{}
    """.format(name,age,gender,name))   #再加一个变量name也是OK的,没问题,不会出错

----print("""
    用户名:{}
    年龄:{}
    性别:{}
    兴趣:{}
    """.format(name,age,gender))   #这样的话就会出错

----print("""
    用户名:{0}
    年龄:{1}
    性别:{2}
    """.format(name,age,gender))   #这样输入索引也是可以的

----print("""
    用户名:{2}
    年龄:{1}
    性别:{0}
    """.format(name,age,gender))   #这样加了数字的话表示索引,按照索引取值

----print("""
    用户名:{2}
    年龄:{}
    性别:{2}
    """.format(name,age,gender))   #这样的话就会出错,所以索引值要传都传,要不传都不传,指令要是明确的

----print("""
    用户名:{name}
    年龄:{age}
    性别:{name}
    """.format(name,age,gender))   #这样的话是不行的,会报错

----print("""
    用户名:{username}
    年龄:{nianling}
    性别:{sex}
    """.format(username=name,nianling=age,sex=gender))  #这样的话也是可以的,一般情况下不用,除非加的东西太多了,怕记不住,数不清索引是多少,就一一对应的加上,这样就知道要传的参数是哪个, 一般适用于变量比较多的情况

8、字符串的函数:
大写转换:a="hello worlD"
print(a.upper())

小写转换:
print(a.lower())

转换成标题形式:-将每一个单词的第一个字符大写
print(a.title())

只首字母大写:
print(a.capitalize())

是大写转为小写,是小写的转换为大写:
print(a.swapcase())

replace()---替换某个字符
a="燕子真是666"
b=a.replace("燕子","小低调")   #将"燕子"替换为"小低调"
print(b)

find()----查找指定字符,得到的是找到的字符的索引开始位置
index=a.find("真是")
print(index)

find()----查找指定字符,如果找不到,返回-1,不会报错
index=a.find("是真")
print(index)


index==find---index 和 find是一样的
result=a.index("真是")

#index方法如果找不到就会报错,ValueError,值错误
result=a.index("是真")
print(result)   #这样是会报错的

至于index 和 find 具体用哪一个,如果想要报错就用index,不想报错就用find

count()---查找字符出现的次数
song="爱情是一种病,厉害的爱情,忠诚的爱情"
print(song.count("爱情"))

重点:join()---字符串拼接的高级用法
     split()---与join()是相反的,是把字符拆开
     strip()

#haha,mimi,dada----用逗号隔开的,得到的是CSV格式
a="$".join(["haha","mimi","dada"])
print(a)

#拆开----得到的数据类型是列表
b=a.split("$")

a=",".join(["http://ss.com/login","GET","lucky","123"])
b=a.split(",")

#strip()---去掉字符串左右两边的空格
word="     fas     "
c=word.strip()
print(c)  #将word首尾的空格去掉

#isdigital()---是否是正整数,得到的是布尔类型
c.isdigital()

#islower()---是否是小写,得到的是布尔类型
c.islower()
发布了5 篇原创文章 · 获赞 0 · 访问量 83

猜你喜欢

转载自blog.csdn.net/qq_31650691/article/details/105636716