str 常用操作

字符串切片
# 字符串切片  (字符串不可更改)
s = '123456789'
s1 = s[0:3]  # 顾头不顾尾
print(s1, type(s1))  # 123 <class 'str'> str 切换之后还是切片
s2 = s[-1]
print(s2)  # 9 取得最后一个数值
print(s[1:])  # 23456789 从索引1到末尾
print(s[0:-1])  # 12345678 获得从第1个元素到倒数第2个元素(顾头不顾尾)
print(s[-1:1:-2]) # 注意:从右往左,步长是-2(反方向步长)
# print(s[-1:1]) # 注意没有反向步长, 是空字符串
print(s[:5:2])  # 正方向步长
print(s[::])  # 全部取出来

字符串常用的操作方法

# replace 对字符串的任何修改都不会影响原字符串
t = '张三很高,张三很牛逼,张三很优秀'
t1 = t.replace('张三', '李四')  # 默认全部替换
print(t1)  # 李四很高,李四很牛逼,李四很优秀
print(t)  # 张三很高,张三很牛逼,张三很优秀
# 从左到右一次替换两个,此方法无法从中间开始替换
print(t.replace('张三', '李四', 2)) # 李四很高,李四很牛逼,张三很优秀


#  strip() 方法删除任何前导(开头的空格)和尾随(结尾的空格)字符  空格/tab/换行符都能去掉,中间的不能去掉
s = '  hello hello\t'
# print(s)
print(s.strip())  # hello hello
# 去掉指定字符 从左到右 从右到左,删除指定的字符,如果剩余的字符不再指定的删除范围内则不再继续删除,不会再删除中间的
s = 'HIH你H好HHK'
print(s.strip('KHI'))  # 你H好
print(s.strip('KI'))  # HIH你H好HH

# 重点:split 默认按照空格分割,注意:返回的是一个列表 str----->list
s = '路飞 索隆 乌索普'
l = s.split()
print(l)   # ['路飞', '索隆', '乌索普']

s = '路飞:索隆:乌索普'
print(s.split(':'))  # ['路飞', '索隆', '乌索普'] 指定字符分割

s = ':路飞:索隆:乌索普:'  # 有n个分割符,生成n+1个元素,注意首尾分割符是空字符串
print(s.split(":"))  # ['', '路飞', '索隆', '乌索普', '']

# 指定分割个数,剩余的不再分割
s = '路飞:索隆:乌索普:娜美'
print(s.split(":", 2))  # ['路飞', '索隆', '乌索普:娜美']


# 重点:join 可迭代对象都可用join(列表、字符串等)
s = '香克斯'
s = '+'.join(s)
print(s)  # 香+克+斯

# 列表转化为字符串的方式可用join(列表中的元素必须是字符串类型,否则会报错)
l = ["路飞", "索隆", "乌索普", "娜美"]
s = ':'.join(l)
print(s, type(s))  # 路飞:索隆:乌索普:娜美 <class 'str'>
print(l)  # ['路飞', '索隆', '乌索普', '娜美']




str1 = 'taiBai救急'
str2 = str1.upper()  # 不会对原来的字符串产生任何影响,都是产生一个新的字符串
print(str2)  # TAIBAI救急 全部转为大写,中文忽略
print(str1.lower()) # taibai救急

# 大小写举例应用,验证码忽略大小写
count = 0
code = "qwER"
while count < 3:
    username = input('输入用户名:')
    password = input('输入密码:')
    your_code = input('输入验证码')
    if your_code.upper() == code.upper():
        if username =='zhangsan' and password =='1234':
            print('登录成功')
            break
        else:
            print('用户名或者密码错误')
    else:
        print('验证码错误')
    count += 1

else:
    print('已经输入三次失败了')

# startwitch
t = 'hello'
print(t.startswith('he'))   # True
print(t.startswith('h', 0, 2))  # True
print(t.endswith('lo'))  # True

# format
s = '我是{}, 性别{},梦想{}'.format('路飞','男', '海贼王')
print(s)
# {}中的数字是索引,索引从0开始,可以重复利用
s = '我是{0}, 性别{1},成为{2},我依然是{0}'.format('路飞', '男', '海贼王')
print(s)  # 我是路飞, 性别男,成为海贼王,我依然是路飞

# 关键字
s = '我是{name}, 性别{sex},梦想{dream}'.format(name='路飞', sex='男', dream='海贼王')
print(s)  # 我是路飞, 性别男,梦想海贼王

s = 'qwe1234'
print(s.isdecimal())  # false 判断是否是十进制组成
print(s.isalpha())   # 判断是否都是字母(常用来判断用户输入的内容是否都是十进制数字)
print(s.isalnum())  # 判断是否是字母和数字


s = 'ABCADAE'
print(s.count('A'))  # 3 默认全部
print(s.count('A', 0, 5))  # 指定位置的个数 顾头不顾尾

s = '海贼王路飞'
print('海贼' in s)  # Ture
print('海贼路飞' in s)  # Fale  有间隔是不行的

猜你喜欢

转载自www.cnblogs.com/jnsn/p/12724667.html
str