数字序列之字符串
字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。单引号丶双引号,三引号都可以来定字符串。三引号形式的字符串支持换行。
# 单引号 a = 'hello ' # 双引号 b = "TOM" # 三引号 c = '''i am TOM'''
“下标”
又叫“索引”
,就是编号。比如火车座位号,座位号的作用:按照编号快速找到对应的座位。同理,下标的作用即是通过下标快速找到对应的数据。下标从0开始
- 下标-1表示最后一个数据,依次向前类推
- 选取方向为从左到右。但是-1步长:从右向左选取
代码示例
# 序列名[开始位置的下标:结束位置的下标:步长] str1 = '012345678' print(str1[2:5:1]) # 234 # 步长为2 print(str1[2:5:2]) # 24 # 默认步长唯一 print(str1[2:5]) # 234 # 如果不写开始,默认从0开始选取 print(str1[:5]) # 01234 # 如果不写结束,表示选取到最后 print(str1[2:]) # 2345678 # 如果不写开始和结束,表示选取所有 print(str1[:]) # 012345678 # 如果步长为负数,表示倒叙选取 print(str1[::-1]) # 876543210 # 下标-1表示最后一个数据,依次向前类推 print(str1[-4:-1]) # 567 # 终极测试 print(str1[-4:-1:1]) # 567 # 选取方向默认为从左到右,但是-1步长:从右向左选取 print(str1[-4:-1:-1]) # **** 如果选取方向(下标开始到结束的方向) 和 步长的方向冲突,则无法选取数据 print(str1[-1:-4:-1]) # 876
字符串常用操作方法之查找
所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数。 开始和结束位置下标可以省略,表示在整个字符串序列中查找
find( ):检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。使用方式:
rfind(): 和find()功能相同,但查找方向为右侧开始。
代码示例
mystr = "hello world and Java and PHP and Python" # 开始和结束位置下标可以省略,表示在整个字符串序列中查找。 print(mystr.find('and')) # 12 # 在指定范围里查找 print(mystr.find('and', 15, 30)) # 21 # 查找不存在的字串 print(mystr.find('ands')) # -1
index( ):检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。使用方式:
rindex( ):和index()功能相同,但查找方向为右侧开始。
mystr = "hello world and Java and PHP and Python" # 开始和结束位置下标可以省略,表示在整个字符串序列中查找。 print(mystr.index('and')) # 12 # 在指定范围里查找 print(mystr.index('and', 15, 30)) # 21 # 查找不存在的字串 print(mystr.index('ands')) # 报错
count( ):返回某个子串在字符串中出现的次数。使用方式:
mystr = "hello world and Java and PHP and Python" # 开始和结束位置下标可以省略,表示在整个字符串序列中查找。 print(mystr.count('and')) # 3 # 在指定范围里查找 print(mystr.count('and', 0, 20)) # 1 # 查找不存在的字串 print(mystr.count('ands')) # 0
字符串常用操作方法之修改
所谓修改字符串,指的就是通过函数的形式修改字符串中的数据
replace( ):替换,replace函数有返回值,返回值是修改后的字符串。使用方式:
mystr = "hello world and Java and PHP and Python" # 默认情况下全部替换 new_str = mystr.replace('and', 'he') print(new_str) # hello world he Java he PHP he Python # 替换次数1 new_str = mystr.replace('and', 'he', 1) # hello world he Java and PHP and Python print(new_str) # 替换次数如果超出子串出现的次数,表示替换所有这个子串 new_str = mystr.replace('and', 'he', 10) print(new_str) # hello world he Java he PHP he Python # 字符串是不可变类型 print(mystr) # hello world and Java and PHP and Python
split( ):按照指定字符分割字符串。使用方式:
num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。
# split() -- 分割,返回一个列表, 丢失分割字符 list1 = mystr.split('and') print(list1) # ['hello world ', ' Java ', ' PHP ', ' Python'] list2 = mystr.split('and', 1) print(list2 ) # ['hello world ', ' Java and PHP and Python']
join( ):用一个字符或子串合并字符串,即是将多个字符串合并为一个新的字符串。使用方式:
# join() -- 合并列表里面的字符串数据为一个大字符串 mylist = ['aa', 'bb', 'cc'] new_str = '...'.join(mylist) print(new_str) # aa...bb...cc
capitalize( ):将字符串第一个字符转换成大写
title( ):将字符串每个单词首字母转换成大写
lower( ):将字符串中大写转小写
upper( ):将字符串中小写转大写。
lstrip( ):删除字符串左侧空白字符。
rstrip( ):删除字符串右侧空白字符。
mystr = "hello world " # 1. capitalize() 字符串首字母大写 new_str = mystr.capitalize() print(new_str) # Hello world # 2.title(): 字符串中每个单词首字母大写 new_str = mystr.title() print(new_str) # Hello World # 3. upper():小写转大写 new_str = mystr.upper() print(new_str) # HELLO WORLD # 4. lower(): 大写转小写 new_str = mystr.lower() print(new_str) # hello world mystr = " hello world " # 1. lstrip(): 删除左侧空白字符 new_str = mystr.lstrip() # 2. rstrip(): 删除右侧空白字符 new_str = mystr.rstrip() # 3.strip():删除两侧空白字符 new_str = mystr.strip()
ljust(长度, 填充字符 ):返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度 的新字符串。
字符串常用操作方法之判断
所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False
startswith( ):检查字符串是否是以指定子串开头,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查
endswith( ):检查字符串是否是以指定子串结尾,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。
isalpha( ):如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False。
isdigit( ):如果字符串只包含数字则返回 True 否则返回 False。
isalnum( ):如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False。
isspace( ):如果字符串中只包含空白,则返回 True,否则返回 False。