字符串
1. 字符串的定义和遍历
字符串是 Python 中最常用的数据类型。我们可以使用引号 ’ 或 " 来创建字符串。
str1 = "hello python"
str2 = '你好啊!"python"'
print(str2)
print(str1[6])
for char in str2:
print(char)
2. 字符串的统计
hello_str = "hello hello"
# (1)统计字符串长度
print(len(hello_str))
# (2)count(x,start,end)统计某一个小(子)字符串出现的次数
print(hello_str.count("llo"))
print(hello_str.count("abc"))
print(hello_str.count("llo",6,11))
# (3)index(x,start,end)某一个子字符串出现的位置
print(hello_str.index("llo"))
print(hello_str.index("llo",6,11))
# 注意:如果使用index方法传递的子字符串不存在,程序会报错 ValueError: substring not found
# print(hello_str.index("abc"))
3. 字符串的判断方法
# 1. 判断空白字符
space_str = " "
str1 = "hahahah "
# 如果字符串中只包含空白,则返回 True,否则返回 False.
print(space_str.isspace())
print(str1.isspace())
# 2. 判断字符串中是否只包含数字
# 1> 都不能判断小数
# num_str = "1.1"
# 2> unicode 字符串
# (1)isdecimal方法检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。这种方法只存在于unicode对象。
# 注意:定义一个十进制字符串,只需要在字符串前添加 'u' 前缀即可。
str1 = "runoob2016"
str2 = "23443434"
str3 = "1.1"
str4 = "\u00b2"
str5 = "一千零一"
print(str1.isdecimal()) #False
print(str2.isdecimal()) #True
print(str3.isdecimal()) #False
print(str4.isdecimal()) #False
print(str4.isdecimal()) #False
# (2)isdigit方法检测字符串是否只由数字组成。如果字符串只包含数字则返回 True 否则返回 False。
print(str1.isdigit()) #False
print(str2.isdigit()) #True
print(str3.isdigit()) #False
print(str4.isdigit()) #True
print(str5.isdigit()) #False
# (3)isnumeric方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。
# 指数类似 ² 与分数类似 ½ 也属于数字。
print(str1.isnumeric()) #False
print(str2.isnumeric()) #True
print(str3.isnumeric()) #False
print(str4.isnumeric()) #True
print(str5.isnumeric()) #True
4. 字符串的查找和替换
hello_str = "hello world"
# (1)判断是否以指定字符串开始,是返回True,否则返回False
# 可以指定范围:如果beg 和 end 指定值,则在指定范围内检查。
print(hello_str.startswith("hello"))
print(hello_str.startswith("o",7,11))
# (2) 判断是否以指定字符串结束
print(hello_str.endswith("world"))
print(hello_str.endswith("w",4,7))
# (3) 查找指定字符串
# index同样可以查找指定的字符串在大字符串中的索引
print(hello_str.find("llo"))
print(hello_str.find("llo",1,4))
# index如果指定的字符串不存在,会报错
# find如果指定的字符串不存在,会返回-1
print(hello_str.find("abc"))
# (4) 替换字符串
# replace方法执行完成之后,会返回一个新的字符串. replace(old, new [, max])
# 注意:不会修改原有字符串的内容
print(hello_str.replace("world", "python"))
print(hello_str)
5. 字符串文本对齐
# 假设:以下内容是从网络上抓取的
# 要求:顺序并且居中对齐输出以下内容
poem = ["\t\n登鹳雀楼",
"王之涣",
"白日依山尽\t\n",
"黄河入海流",
"欲穷千里目",
"更上一层楼"]
print(poem)
for poem_str in poem:
# (1)strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
# (2)再使用center方法居中显示文本 str.center(width[, fillchar]) center()方法返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格。
print("|%s|" % poem_str.strip().center(10, " "))
6. 字符串的拆分和拼接
# 假设:以下内容是从网络上抓取的
# 要求:
# 1. 将字符串中的空白字符全部去掉
# 2. 再使用 " " 作为分隔符,拼接成一个整齐的字符串
poem_str = "登鹳雀楼\t 王之涣 \t 白日依山尽 \t \n 黄河入海流 \t\t 欲穷千里目 \t\t\n更上一层楼"
print(poem_str)
# (1)拆分字符串 str.split(str="", num=string.count(str))
# str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
# num -- 分割次数。默认为 -1, 即分隔所有。如果第 num 有指定值,则分割为 num+1 个子字符串。
poem_list = poem_str.split()
print(poem_list)
# (2) 合并字符串 join方法用于将序列中的元素以指定的字符连接生成一个新的字符串
result = ",".join(poem_list)
print(result)
7. 转义字符
# 打印反斜杠符号
print('\\')
# 打印单引号
print('\'')
print("\'")
print("'")
# 打印双引号
print("\"")
print('\"')
print('"')
# 换行
print("123\n456")
#
print('这是一串添加单引号的\'字符串\'')
print("这边是另一串添加了双引号的\"字符串\"")