Python基础(8)字符串

1 字符串的定义

字符串:就是 一串字符,是编程语言中表示文本的数据类型
语法格式:

变量名 =  '字符内容'
变量名 = "字符内容"
变量名 = ''' 字符内容'''
name = 'I am ' \
       'Tom'
name1 = "I am" \
        " Tom"
name2 = '''I 
am Tom''' # 会产生换行效果
print(name)
print(name2)
print(type(name))
print(type(name1))
print(type(name2))

I am Tom
I
am Tom
<class ‘str’>
<class ‘str’>
<class ‘str’>

2 下标

下标:
又叫索引,就是字符串中每个单个字符的编号。方便通过下标快速找到对应的数据

  • 字符串的下标是从0开始的
  • len()获取字符串的长度
  • 字符串.count(小字符串)输出小字符串在大字符串中出现的次数
  • 字符串[下标]:从字符串中获取单个下标对应的字符
  • 字符串.index(小字符串) :获取小字符串第一次出现的下标
    代码示例:
str = 'abcdefggssa'
print(len(str)) # 11
print(str[0]) # a
print(str[5]) # f
i = str.count('a')
print(i) # 2
j = str.index('g')
print(j) # 6

3 切片

切片 方法适用于 字符串、列表、元组

  • 切片 使用 下标 来限定范围,从一个大的 字符串 中 切出 小的字符串
  • 列表元组 都是 有序 的集合,都能够 通过下标 获取到对应的数据
  • 字典 是一个 无序 的集合,是使用 键值对 保存数据

在这里插入图片描述语法格式:

字符串[开始索引:结束索引:步长]
  1. 指定的区间属于 左闭右开 型 [开始索引, 结束索引)
开始索引 >= 范围 < 结束索引

起始 位开始,到 结束 位的前一位结束(不包含结束位本身)
2. 从头开始,开始索引 数字可以省略,冒号不能省略
3. 到末尾结束,结束索引 数字可以省略,冒号不能省略
4. 步长默认为 1 ,如果连续切片,数字和冒号都可以省略

顺序和倒序

  • 在 Python 中不仅支持 顺序索引,同时还支持 倒序索引
  • 所谓倒序索引就是 从右向左 计算索引
    tip:最右边的索引值是 -1,依次递减

演练需求 string = ‘0123456789’

  1. 截取从 2 ~ 5 位置 的字符串
  2. 截取从 2 ~ 末尾 的字符串
  3. 截取从 开始 ~ 5 位置 的字符串
  4. 截取完整的字符串
  5. 从开始位置,每隔一个字符截取字符串
  6. 从下标 1 开始,每隔一个取一个
  7. 截取从 2 ~ 末尾 - 1 的字符串
  8. 截取字符串末尾两个字符
  9. 字符串的逆序(面试题)
string = '0123456789'
print(string[2:6])  # 2345
print(string[2:])  # 23456789
print(string[:6])  # 012345
print(string[:])  # 0123456789
print(string[::2])  # 02468
print(string[1::2])  # 13579
print(string[2:-1])  # 2345678
print(string[-2:])  # 89
print(string[-1::-1])  # 9876543210

4 常用操作

4.1 查找替换

方法 说明
string.startswith(str) 检查字符串是否是以 str 开头,是则返回 True
string.endswith(str) 检查字符串是否是以 str 结束,是则返回 True
string.find(str, start=0,end=len(string)) 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string.rfind(str, start=0,end=len(string)) 类似于 find(),不过是从右边开始查找
string.index(str, start=0,end=len(string)) 跟 find() 方法类似,不过如果 str 不在 string 会报错
string.rindex(str, start=0,end=len(string)) 类似于 index(),不过是从右边开始
string.replace(old_str,new_str,num=string.count(old)) 把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次

代码示例:

string = '0123456789'
print(string.startswith('012'))  # True 012开头
print(string.endswith('756'))  #  false 789结尾不是756结尾
print(string.find('23'))  # 23出现第一次的下标为2
print(string.rfind('23'))  # 从右边寻找不影响下标
print(string.index('23'))  #  下标为2
print(string.rindex('56',4,8))  # 下标为5
string = '2323232323'
print(string.replace('23','你好',2))  # 重复替换两次输出你好你好232323
print(string)  # 字符串是不可变数据类型 仍旧输出2323232323

4.2 拆分和拼接

方法 说明
string.partition(str) 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str) 类似于 partition() 方法,不过是从右边开始查找
string.split(str="",num) 以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
string.splitlines() 按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表
string.join(seq) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

代码示例:

string = "hello world and i'm tom and nice to meet you!"
print(string.partition('tom'))  # 输出元组:("hello world and i'm ", 'tom', ' and nice to meet you!')
print(string.split('and',1))  # 输出列表并且 'and'被丢失了['hello world ', " i'm tom and nice to meet you!"]
string =''' i'm 
tom
cat
'''
print(string.splitlines())  #输出列表[" i'm ", 'tom', 'cat']
list1 = ["i'm",'tom','lian','he']
string = '...'
print(string.join(list1))  #输出字符串:i'm...tom...lian...he

4.3大小写转换

方法 说明
string.capitalize() 把字符串的第一个字符大写
string.title() 把字符串的每个单词首字母大写
string.lower() 转换 string 中所有大写字符为小写
string.upper() 转换 string 中的小写字母为大写
string.swapcase() 翻转 string 中的大小写
string = "hello world and i'm tom and nice to meet you!"
print(string.capitalize())  # Hello world and i'm tom and nice to meet you!
str1 =string.title()  #  Hello World And I'M Tom And Nice To Meet You!
print(str1)
print(str1.lower())  #  hello world and i'm tom and nice to meet you!
print(str1.upper())  # HELLO WORLD AND I'M TOM AND NICE TO MEET YOU!
print(str1.swapcase())  # hELLO wORLD aND i'm tOM aND nICE tO mEET yOU!

4.4 文本对齐

方法 说明
string.ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
string = "hello"
str1 = string.ljust(11,'.')  # hello......
str2 = string.rjust(11,'.')  # ......hello
str3 = string.center(11,'.')  # ...hello...
print(str1)
print(str2)
print(str3)

4.5 去除空白字符

方法 说明
string.lstrip() 截掉 string 左边(开始)的空白字符
string.rstrip() 截掉 string 右边(末尾)的空白字符
string.strip() 截掉 string 左右两边的空白字符
string = '   joker and batman     '
print(string)  
print(string.lstrip())
print(string.rstrip())
print(string.strip())

在这里插入图片描述

4.6 判断类型

方法 说明
string.isspace() 如果 string 中只包含空格,则返回 True
string.isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
string.isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdigit() 如果 string 只包含数字则返回 True,(全角数字 、 ⑴ 、 \u00b2)
string.isnumeric() 如果 string 只包含数字则返回 True,(全角数字 , 汉字数字)
str1 = ' '
print(str1.isspace())
str1 = 'abc12'
print(str1.isalnum())
str1 = 'abc'
print(str1.isalpha())
str1 ='123446'
print(str1.isdigit())
str1 = '12一456'
print(str1.isnumeric())  # true

发布了27 篇原创文章 · 获赞 5 · 访问量 492

猜你喜欢

转载自blog.csdn.net/qq_43685242/article/details/104688202