字符串
字符串:
string, 一种基本的数据类型
也属于一种容器, 可以放入数据, 是str类型
字符串一旦被创建就不能被修改, 除非赋予新的字符串
-
字符串拼接
# 1.字符串拼接, 使用+号拼接, 使用占位符拼接, 使用format()函数拼接 s = "你好!" + "马云" + "花呗我不想还了!" print(s) # %s 通用占位符, %d 拼接整型, %f 拼接浮点型 string = "%s: %dcm, %s: %.1fkg" % ("身高", 226, "体重", 122.5) print(string) # format()函数拼接 strings = "好好学习, {}向上".format("年年") str1 = "{name}: 好好学习, {time}向上".format(time="月月", name="王翠花") name = input("请输入您的姓名: ") time = input("请输入一个时间量词: ") str2 = f"{name}: 好好学习, {time}向上" print(strings) print(str1) print(str2)
-
字符串取值
# 2.字符串的取值, 字符串也是有索引的, 类似列表, 从0开始 str3 = "山重水复疑无路, 柳暗花明又一村." w = str3[1] # 在字符串变量后边写[] 里面填索引 print(w) print(str3[7]) print(str3[8]) # 3.字符串切片.[开始位置(默认为0):结束位置(默认是字符串最大的索引值+1)] 取左不取右, rang(), 结尾数字取不到. 左闭右开, 取前不取后. # 切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作 。 # 切片的语法:[起始:结束:步长] # 注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束( 不包含结束位本身)。 s = str3[:4] s1 = str3[4:] s2 = str3[9:13] print(s) print(s1) print(s2)
-
字符串常用函数
# 4.len(): 计算容器的长度 length = len(str3) print(length) # 5.index()函数: 返回字符串中元素的索引值.如果该元素存在多个, 返回第一个元素的索引, 如果要查询的元素不存在则会报错: ValueError: substring not found # 第一个参数: 是目标字符串, 第二个参数, 匹配的开始索引, 第三个参数: 匹配的结束索引 string1 = "年年岁岁花相似, 岁岁年年花不同" y = string1.index("花", 6, 15) # s = string1.index("就") print(y) # print(s) # 6.count()函数: 计算字符串中元素的个数 c = string1.count("年") print(c) # 7.find()函数: 返回索引值, 在字符串匹配第一个字符 # 括号中第一个参数填元素值, 第二个查询的起始位置, 第三个填查询的结束位置 print("--------------------") f = string1.find("相似,") b = string1.find("不") # 如果在这个范围内没有这个元素则返回-1 # 如果在这个范围内有这个元素,或者有多个返回第一个元素的索引值 y = string1.find("年", 5, 15) print(f) print(b) print(y) # TypeError: string indices must be integers s = string1[1:6:2] # 切片查询, 跳查询, 第三个参数是步长, 每隔几个元素取一个元素 print(s)
-
字符串处理函数
# 8.upper(): 让字符串中小写的字母变成大写, lower(): 让字符串中大写的字母变成小写. string2 = "life is short, You need python" result = string2.upper() print(result) res = result.lower() print(res) # 9.strip(): 当括号中没有填参数默认去掉首位的空格, 可以去掉字符串首尾的符号 s3 = " 飞流直下三千尺 - 疑是银河落九天. " res = s3.strip() print(res) res = res.strip(".") print(res) res = res.strip("天") print(res) # 10.replace(): 第一个参数填要被替换的元素, 第二个参数填替换的新的元素, "" 或者 '' 空字符串 # 如果函数返回值还是原来类型, 就可以在结尾调用其他的函数 res = s3.replace("直", " ").replace("千尺", "万丈").strip() print(res) # 11.split(): 分割字符串, 括号中填用来分割的字符, 分割结果返回一个列表. s3 = "熊大, 熊二, 吉吉国王, 光头强, 萝卜头, 肥波, 毛毛, 翠花" res = s3.split(", ") print(res) # 12.join(): 可以起到拼接字符串的作用, 括号中是可迭代的数据, 如字符串,列表 # TypeError: can only join an iterable(迭代) j = "".join("字符串") print(j) print(type(j)) l = ",".join(['熊大', '熊二', '吉吉国王', '光头强', '萝卜头', '肥波', '毛毛', '翠花']) print(l) print("明日复明日,明日何其多".replace("日", "年")) s = "明日复明日,明日何其多"
-
补充函数(不常用)
# title 把字符串每个单词的首字母大写 a = "hello world" print(a.title())
# startswith 检查字符串是否是以某个字符串开头, 是则返回True, 不是返回False a = "https://www.baidu.com" if a.startswith("https"): print("是https协议") else: print("不是https协议")
# endswith 检查字符串是否是以某个字符串开头, 是则返回True, 不是返回False a = "https://www.baidu.com" if a.endswith("com"): print("com网页") else: print("其他网页")
# lower 转换字符串中所有大写字母为小写 a = "Hello World" print(a)
# upper 转换字符串中小写字母为大写 a = "hello world" print(a)
# center 文本居中, 两端填充指定个数的指定字符串 name = "至尊宝" name = name.center(8, "*") print(name)
# isalpha 如果字符串所有字符都是字母 则返回True, 否则返回False a = "hello" if a.isalpha(): print("是字母") else: print("不是字母")
# isdigit 如果字符串只包含数字则返回True否则返回False a = "123456" if a.isdigit(): print("是数字") else: print("不是数字")
# isalnum 如果字符串都是字母或者数字则返回True, 否则返回False a = "asdfghjkl741852963" if a.isalnum(): print("是字母数字混合") else: print("不是数字字母混合")
# isspace 如果字符串中包含空格, 则返回True, 否则返回False a = " " if a.isspace(): print("是空格") else: print("不是空格")
# join 字符串中每个字符后面插入str, 构造出一个新的字符串 a = "" print(a.join(['a', 'b', 'c', 'd']))