字符串是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 = ""
print(str2[::-1]) # 输出结果如下
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\n".strip()) # 删除字符串左边和右边的空格或换行 (常用,处理文件的换行符很有用)
print(" haha\n".lstrip()) # 删除字符串左边的空格或换行
print(" haha\n".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__()))