字符串是python非常重要的数据类型,它是一个序列(列表和元组也是序列),有下标,可以通过下标遍历字符串序列;同时字符串也是一个不可变数据类型,每次使用"+"拼接字符串时都会产生一个新的字符串付给变量
一.字符串的定义
(1)使用引号包含的都是字符串,单引号,双引号,三引号
name1 = 'hehe' name2 = "hehe" name3 = '''hehe''' print(type(name1)) print(type(name2)) print(type(name3)) 输出结果 <class 'str'> <class 'str'> <class 'str'>
(2)input()函数输入的为字符串类型
name = input("pls input your name:") print(type(name)) 输出i结果如下(输入yangbuhui) pls input your name:yangbuhui <class 'str'>
(3)str()转换的为字符串类型
age = 19 print(type(age)) print(type(str(age))) 输出结果如下: <class 'int'> <class 'str'>
二.使用下标遍历字符串
0,1,2,3,4即为该字符串的下标,使用str1[0]可以获得a,str1[1]可以获得b,...
for i in "abcde": print(i, end="") 输出结果如下 abcde # enumerate可以让下标和元素对应 print() for i, j in enumerate("abcde"): print(i, j) # 打印:下标i 元素j 输出结果如下 0 a 1 b 2 c 3 d 4 e
三.字符串的切片和倒序
str1 = "abcdefg" # 切片 print(str1[2:5]) # cde print(str1[0:2]) # ab print(str1[0:-1]) # abcdef print(str1[2:-2]) # cde print(str1[:]) # abcdefg print(str1[:3]) # abc print(str1[3:]) # defg print(str1[1:5:2]) # bd print(str1[:3:-1]) # gfe print(str1[::-2]) # geca print("================") # 倒序 str2 = "123456789" print(str2[::-1]) # 987654321 输出结果如下 cde ab abcdef cde abcdefg abc defg bd gfe geca ================ 987654321
四.字符串的常见操作
# 字符串的常见操作 str1 = "abcdefg" # 字符串的长度 str1.__len__() len(str1) # 固定10个字符,不够的补* str1.center(10, '*') # 一共10个字符,str1居中,不够位补"*" str1.ljust(10, '*') # 一共10个字符,str1居左,不够位补"*" str1.rjust(10, '*') # 一共10个字符,str1居右,不够位补"*" # 判断字符串是否以"xxx"结尾或开头,"xxx"表示任务字符串 str1.startswith("abc") str1.endswith("bbc") # 判断字符'a'在字符串里共出现了多少次 str1.count('a')
其他字符串方法
abc = "abcdefg" print(abc.capitalize()) # 整个字符串的首字母大写 print(abc.title()) # 每个单词的首字母大写 print(abc.upper()) # 全大写 print(abc.lower()) # 全小写 print("HAHAhehe".swapcase()) # 字符串里大小写互换 print(" haha ".strip()) # 删除字符串左边和右边的空格或换行 (常用,处理文件的换行符很有用) print(" haha ".lstrip()) # 删除字符串左边的空格或换行 print(" haha ".rstrip()) # 删除字符串右边的空格或换行 print(abc.find("nice")) # 找出nice在字符串的第1个下标,找不到会返回-1 print(abc.rfind("e")) # 找出最后一个e字符在字符串的下标,找不到会返回-1 print(abc.index("nice")) # 与find类似,区别是找不到会有异常(报错) print(abc.rindex("e")) # 与rfind类似,区别是找不到会有异常(报错) print(abc.isalnum()) # 判断是否为数字字母混合(可以有大写字母,小写字母,数字任意混合) print(abc.isalpha()) # 判断是否全为字母(分为纯大写,纯小写,大小写混合三种情况) print(abc.isdigit()) # 判断是否为纯数字 print(abc.islower()) # 判断是否为纯小写字母 print(abc.isspace()) # 判断是否为全空格 print(abc.upper().isupper()) # 先把abc字符串全转为大写,再判断是否为全大写字母,结果为Tru
五.字符串习题
# 1. 输入一行字符,统计其中有多少个单词,每两个单词之间以空格隔开。 # 如输入: This is a python program. 输出:There are 5 words in the line. string = input("pls input a string:") str_list = string.split(' ') print("There are {} words in the line.".format(str_list.__len__()))