字符串类型的内置方法(二)
字符串类型的内置方法
字符串类型的内置方法昨天已经讲了一部分了,今天来补充一下剩余的内置方法
移除字符串首尾的特定字符: 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()
- 上节课我们学习过一种用占位符
%s
和%d
进行格式化输出。回顾一下。
print('name is %s , age is %d'%('oliver', 23))
注:占位符%s
能给任何类型数据占位,%d
只能给数字类型数据展位
- 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)) # 后两个参数指定寻找的起始索引值,从右至左
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()) # 使字符串的每个单词的首字母大写