字符串类型的内置方法(二)

字符串类型的内置方法

 字符串类型的内置方法昨天已经讲了一部分了,今天来补充一下剩余的内置方法

移除字符串首尾的特定字符: strip()

    str_name = '###oliver-chance###'
    # 移除字符串首尾的指定字符,可以选择方向
    print(str_name.strip('#'))  # 去除首尾的字符,默认空格,可以括号里加指定字符
    print(str_name.lstrip('#'))  # 去除首的指定字符,默认空格,可以括号里加指定字符
    print(str_name.rstrip('#'))  # 去除尾的指定字符,默认空格,可以括号里加指定字符

字符串里的大小写相关方法

  • 大小写转换:upper()、lower()
    str_name = 'Oliver-Chance'
    print(str_name.lower())  # 将所有字母转换成小写
    print(str_name.upper())  # 将所有字母转换成大写
  • 判断字符串里的数字是否都是大写或者小写:islower()、isupper()
    str_name = 'Oliver-Chance'
    print(str_name.islower())  # 判断字符串是否全是小写
    print(str_name.isupper())  # 判断字符串是否全是大写,返回结果为布尔值 False
    ustr_name = str_name.upper()  # 将str_name 全部转换成大写并赋给ustr—name
    print(ustr_name.isupper())  # True
  • 应用问题:验证码忽略大小写的实现
     现实中注册账号或者有什么信息是需要本人确定的,一般就会向账户所有人发一个验证码,用来验证身份,不过现在的验证码一般是不区分大小写的。下面我们用python代码实现以下这个问题。
    real_code = 'Rs666'
    print('随机验证码是:%s' % real_code)
    user_code = input('验证码是:')  # 获取用户输入的验证码
    # 先把用户输入的验证码和系统的验证码都转换成小写再进行比较
    if real_code.lower() == user_code.lower():
        print('验证码正确')
    else:
        print('验证码错误')

判断字符串首尾是不是指定字符:startwith()、endwith()

    str_name = 'Oliver-Chance'
    print(str_name.startswith('O'))  # 判断字符串的开始是不是指定字符,结果是布尔值
    print(str_name.startswith('o'))
    print(str_name.endswith('E'))  # 判断字符串的开始是不是指定字符,结果是布尔值
    print(str_name.endswith('e'))

格式化输出:format()

  1. 上节课我们学习过一种用占位符%s%d进行格式化输出。回顾一下。
print('name is %s ,  age is %d'%('oliver', 23))

注:占位符%s能给任何类型数据占位,%d只能给数字类型数据展位

  1. format()格式化输出用法
  • 类似占位符的用法,可更改位置用{}占用,打印的字符串和替代信息之间的%.format替代
    # 默认依次索引,每个元素只能被索引一次
    print('my name is {} my hobby is {} '.format('oliver', 'music'))
    # 指定索引值,每个与纳斯可被多次索引
    print('my name is {0} {1} my hobby is {0} {1}'.format('oliver', 'music'))
  • 直接索引指定的值
    # 每个元素可被多次索引
    print('my name is {name} {name} my hobby is {hobby} '.format(name = 'oliver', hobby = 'music'))
  • 直接使用已经有的变量
    name = 'oliver'
    hobby = 'music'
    print(f'my name is {name} {name} my hobby is {hobby}')  # 变量名可以被多次使用

拼接字符串:不同的字符串用+,相同的字符串用*

    str_name1 = 'hey, baby '
    str_name2 = 'how are you?'
    print(str_name1 + str_name2)  # 用加号拼接字符串
    print(str_name1 * 3)  # 3个同一字符串拼接
    print((str_name1 + str_name2) * 2)  # 加号拼接和重复拼接可以混用,设定好先后顺序就好
    # 将指定字符插入字符串里,join内的内容必须都是字符串才可以,相当于对括号内的字符串的字符进行for循环
    print(','.join(str_name2))

替换字符串里的指定字符:replace()

    str_name = 'Oliver-Chance'
    print(str_name.replace('e', 'a'))  # 用第二个参数替换第一个参数,默认替换全部
    print(str_name.replace('e', 'a', 1))  # 第三个参数确定替换的个数,从左至右依次替换

判断字符串是否是纯数字:isdigit()

    str_name = 'oliver686'
    print(str_name.isdigit())  # 判断str_name是否是纯数字,结果是布尔值 False
    print('54321'.isdigit())  # True

查找指定字符所对应的索引值:find()

    str_name = 'oliver68686868'
    print(str_name.find('v'))  # 从左至右依次寻找,输出结果为-1时,说明字符串里并不含有这个字符
    print(str_name.rfind('8'))  # 从右至左,依次寻找
    print(str_name.find('6', 2, 12))  # 后两个参数指定寻找的起始索引值,从左至右
    print(str_name.rfind('6', 2, 12))  # 后两个参数指定寻找的起始索引值,从右至左
**附:另外index()与find()功能差不多,不过找不到数据时会报错,所以不推荐使用**
    str_name = 'oliver68686868'
    print(str_name.index('3'))  # 与find关键字一样的功能,不过当字符串内找不到该内容时,会报错,不推荐使用

文本改变位置:center()、ljust()、rjust()

    str_name = 'oliver68686868'
    """将字符串放在新字符串的中间,第一个参数是限定字符串的总字符个数,
        第二个参数是用什么字符把字符串补够位数,默认是空格
    """
    print(str_name.center(30, '#'))
    print(str_name.ljust(30, '#'))  # 将字符串放在左边
    print(str_name.rjust(30, '#'))  # 将字符串放在右边

特殊作用字符:换行符\n,制表符\t,响铃\a

print('oliver\nchance\tage\ahobby')
# \n表示换行,\t表示制表符,\a表示响铃(只有在cmd窗口运行才有效果)

字母大小写操作

  • 首字母大写:capitalize()
    str_name = 'hey baby, how are you?'
    print(str_name.capitalize())  # 使字符串的首字母大写
  • 大小写翻转:swapcase()
    str_name = 'Hey Baby, How Are You?'
    print(str_name.swapcase())  # 使字符串的大小写翻转过来,大写变小写,小写变大写
  • 字符串内每个单词的首字母大写:title()
    str_name = 'hey baby, how are you?'
    print(str_name.swapcase())  # 使字符串的每个单词的首字母大写
posted @ 2022-03-09 19:59  Oliver-Chance  阅读(44)  评论(0编辑  收藏  举报