字符串类str
1.python基础之注释2.python语言学习路线(基础)3.python源码结构4.python发展史及python应用场景5.变量6.bug及debug7.常见数据类型及其转换8.字符串格式化9.转义符10.字符串在货币、日期、精度的处理11.字符编解码12.字符编解码及其相互转换13.内置函数-help-帮助文档14.内置函数print-输出15.内置函数input16.运算符17.int的缓存策略(特别容易混)18.判断语句19.random模块20.判断语句+ random的应用-剪刀石头布游戏21.三元运算符(if else的简写)22.循环语句-while23.循环语句-while-练习题24.循环语句for循环25.循环语句 + else
26.字符串类str
27.正则在字符串中的简单应用28.列表(List)29.列表list的sort方法的坑30.列表综合应用-8个教室随机分配到3个教室31.元组32.自动组包 & 自动解包33.字典34.集合35.公共操作36.公共操作-推导式(集合、列表、字典)37.函数定义、调用、闭包38.拆包和交换变量值39.函数的变量作用域、返回值、参数40.函数递归41.匿名函数(lambda表达式)0142.内置函数abs43.内置函数round44.内置函数abs0245.高阶函数46.内置高阶函数map47.内置高阶函数reduce48.内置函数reduce49.学生管理系统-函数&循环&运算符综合练习50.文件操作之语法51.文件操作2-最佳实践52.文件操作之seek53.文件及文件夹操作54.面向对象基本概念55.面向对象之类、对象的定义56.添加和获取对象属性57.面向对象之魔法方法58.魔法函数 __repr__() 和 __str__()的区别59.魔法方法__len__60.魔法方法之__getitem__(self, key)、__setitem__(self, key, value) 和 __delitem__(self, key) 61.魔法方法之__iter__(self) && __next__(self)62.TypeError: iter() returned non-iterator of type 'MyIterable'63.魔法方法之__contains__()64.魔法方法之__call__65.魔法方法之__getattr__(), __setattr__(), 和 __delattr__66.__eq__(), __lt__(), 和 __gt__() 67.案例:烤地瓜68.案例:给房子置办家具69.继承70.继承之子类复用父类的属性、方法71.继承的分类72.MRO73.继承之子类重写父类同名属性和方法74.⼦类调⽤⽗类的同名⽅法和属性75.私有属性&&方法的定义&访问限制76.setter&getter方法访问私有属性77.__mro__属性78.python 面向对象3大特征详解79. 类属性和实例属性80.类属性和实例属性最佳实践81.类方法82.静态方法83.异常基础84.多组异常处理基础85.多组异常处理86.使用Python内置的错误信息87.捕获所有异常88.手动抛异常(raise)89.try-except-else-finally90.断言assert在异常中应用91.自定义异常类92.模块93.常见的5种模块导入94.模块的定位顺序95.__all__变量限制、明确导入范围96.包97.时间模块datetime98.多任务编程之并发、并行概念99.进程实现多任务(进程概念、单进程、多进程执行多任务)1 ''' 2 1. 在Python中,str是内置类,代表字符串(即文本数据)。字符串是Python中最常用的数据类型之一,它允许您存储和操作文本数据。 3 2. 字符串类str是不可变类。即不管怎么操作,原字符串还是存在的,像replace、大小写转换等操作只是创建一个新的字符串 4 5 官网参考资料: 6 https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str 7 ''' 8 9 # 1. 通过内置函数help查看内置类str的docstring 10 # help(str) 11 12 # 2. 字符串字面值: 您可以使用单引号 '、双引号 " 或三引号 ''' 或 """ 来创建字符串字面值。 13 single_quoted_string = 'Hello, World!' # 单引号 14 double_quoted_string = "Hello, World!" # 双引号 15 triple_quoted_string = '''Hello, 16 World!''' # 3个单引号,支持换行,而不用添加\n。即所见即所得,并且注释只能放在最后代码的,不能放在14行 17 18 ''' 19 输出: 20 Hello, 21 World! 22 ''' 23 print(triple_quoted_string) 24 25 # 3. 转义字符: 字符串中的转义字符以反斜杠 \ 开头,用于表示特殊字符或字符序列。 26 my_string = "Hello, \"World!\"" 27 # 如果外面使用单引号,内部就可以直接使用双引号了。同理外面使用双引号,内部就可以直接使用单引号。否则需要转义处理 28 my_string = 'Hello, "World!"' 29 print(my_string) # 输出: Hello, "World!" 30 31 # 4. 字符串索引: 字符串中的每个字符都有一个索引,索引从0开始,可以使用方括号 [] 来访问特定索引位置的字符。 32 my_string = "Hello, World!" 33 print(my_string[0]) # 输出: "H" 34 print(my_string[7]) # 输出: "W" 35 36 # 5. 切片操作: 使用切片操作可以获取字符串的子串,语法为 [start:end:step],不包括end 37 my_string = "Hello, World!" 38 print(my_string[0:5]) # 输出: Hello 39 print(my_string[7:]) # 输出: World! 40 print(my_string[::-1]) # 输出: !dlroW ,olleH(字符串反转) 41 print(my_string[-3:-1]) # 输出: ld 42 43 # 6. 字符串的拼接和拆分 44 45 # 6.1 字符串拼接: 可以使用 + 运算符或字符串的 join() 方法来拼接字符串 46 first_name = "John" 47 last_name = "Doe" 48 full_name = first_name + " " + last_name 49 print(full_name) # 输出: "John Doe" 50 51 words = ["Hello", "World", "!"] 52 sentence = "_".join(words) # "_"为指定链接的链接符,可根据需求自行定义 53 print(sentence) # 输出: "Hello_World_!" 54 55 # 6.2 拆分: 56 my_string = "Hello,Wo,rl,d!" 57 words = my_string.split(",") 58 print(words) # 输出: ['Hello', 'Wo', 'rl', 'd!'] 59 60 words = my_string.split(",", 1) # 如果存在拆分字符,则会生成 n + 1个元素的列表即此例2个元素的列表 61 print(words) # 输出: ['Hello', 'Wo,rl,d!'] 62 63 my_string = "Allen" 64 words = my_string.split(",", 1) # 输出: ['Allen'],不存在拆分字符,则返回一个1元素的列表。 65 print(words) # 输出: ['Allen'] 66 67 # 7. 字符串格式化: 使用字符串的 format() 方法或 f-string(格式化字符串字面值)进行字符串的格式化。 68 name = "XX" 69 age = 25 70 message = "My name is {} and I'm {} years old.".format(name, age) 71 print(message) # 输出: "My name is XX and I'm 25 years old." 72 73 name = "Allen" 74 age = 30 75 message = f"My name is {name} and I'm {age} years old." 76 print(message) # 输出: "My name is Allen and I'm 30 years old." 77 78 # 8. 字符串的检查和验证:使用字符串的相关方法进行检查和验证,例如 isdigit()、isalpha()、islower()、isupper() 等。 79 80 # 8.1 判断是否是数字型字符串 81 num = "123" 82 print(num.isdigit()) # 输出: True 83 num = "123.456" 84 print(num.isdigit()) # 输出: Talse,因为有个. 85 86 # 8.2 是否是纯字母 87 name = "Alice" 88 print(name.isalpha()) # 输出: True 89 90 # 8.3 是否是数字、字母组成,无其他字符 91 name = "Allen7788XX" 92 print(name.isalnum()) # 输出: True 93 94 # 8.4 判断字母是不是全部是小写.可以包含非字母字符 95 my_string = "hello" 96 print(my_string.islower()) # 输出: True 97 98 my_string = "hello88!" 99 print(my_string.islower()) # 输出: True 100 101 my_string = "hello88A" 102 print(my_string.islower()) # 输出: Talse 103 # isupper方法判断是否是纯大写字母 104 print(my_string.isupper()) # 输出: Talse 105 106 # 8.5 判断字符串以什么开头或结尾,支持指定区间判断 107 my_string = "Hello, World!" 108 print(my_string.startswith("Hello")) # 输出: True 109 110 my_string = "Hello, World!" 111 print(my_string.endswith("World!")) # 输出: True 112 113 my_string = "Hello, World!" 114 print(my_string.endswith("World!", 0, 7)) # 输出: False 115 116 # isspace():如果字符串中只包含空⽩,则返回 True,否则返回 False 117 print(my_string.isspace()) 118 # 用于检查字符串是否只包含十进制数字字符。它返回一个布尔值,如果字符串只包含十进制数字字符,则返回 True,否则返回 False。 119 my_string = "A18b" 120 print(my_string.isdecimal()) # 输出: False 121 122 my_string = "18" 123 print(my_string.isdecimal()) # 输出: True 124 age = input("请输入年龄:") 125 if age.isdecimal(): 126 age = int(age) 127 if age >= 18: 128 print("你是一个成年人") 129 else: 130 print("你还未成年") 131 else: 132 print("请输入一个有效的数字") 133 134 # 9. str():将其他数据类型转换为字符串类型。 135 num = 10 136 string_num = str(num) # 将整型转为字符串类型 137 print(string_num) # 输出: "10" 138 139 # 10. 计算:字符字符串的长度,计算子串的个数 140 141 # 10.1 len(): 返回字符串的长度。 142 my_string = "Hello, World!" 143 print(len(my_string)) # 输出: 13 144 145 # 10.2 146 147 child_string = "Allen" 148 parent_string = "Allen123Allen456All" 149 print(parent_string.count(child_string)) # 输出: 2 150 151 # 11. 字母转换: 字母全部转换为大写或小写、字符大小写转换、字符串的首字母大写,其他字符小写。 152 # 原字符串不变,新生成一个新的字符串 153 print(child_string.lower()) # 输出: allen 154 print(child_string.upper()) # 输出: ALLEN 155 child_string = "allenhao" 156 print(child_string.upper()) # 输出: ALLEN_HAO 157 child_string = "allen_hao" 158 159 print(child_string.capitalize()) # 输出: Allen_hao 160 child_string = "allen hao" 161 print(child_string.capitalize()) # 输出: Allen hao即第1个字符是字母的就处理为大写 162 child_string = "8allen hao" 163 print(child_string.capitalize()) # 输出: 8allen hao即第1个字符是字母的就处理为大写,否则就不处理 164 165 # 单词首字符大写 166 print(child_string.title()) # 输出: 8Allen Hao 167 child_string = "allen_hao" 168 print(child_string.title()) # 输出: Allen_Hao 169 170 # 大写变小写,小写变大写 171 name = "AllEn" 172 print(name.swapcase()) # aLLeN 173 174 175 # 12. replace(old, new):将字符串中的旧子字符串替换为新的子字符串。 176 my_string = "Hello, World!" 177 new_string = my_string.replace("Hello", "Hi") 178 print(new_string) # 输出: "Hi, World!" 179 180 181 # 13. 去除前后空格: lstrip、rstrip、strip 182 # 1. 这些方法只删除字符串开头和结尾的空格,不会删除字符串中间的空格。 183 # 2. 这些方法只删除空格字符,不会删除其他的空白字符,如制表符和换行符。如果需要删除其他空白字符,可以使用 replace() 方法。 184 # 3. 注意这些方法返回一个新的字符串,而不会修改原始字符串。如果需要修改原始字符串,可以将结果赋值给原始变量。 185 # 4. 这些方法只能删除字符串开头和结尾的空格,如果需要删除其他字符,可以考虑使用 replace() 方法或使用正则表达式来替换 186 187 # 13.1 去除字符串头部空格即字符串开头是空才去除,不管几个空格,都去除。否则啥也不处理 188 ''' 189 输出结果: 190 Hello, World! 191 Hello, World! 192 Hello, World! 193 ''' 194 s = " Hello, World! " 195 print(s.lstrip()) # 输出 "Hello, World! " 196 197 # 13.2 去除字符串结尾出空格即字符串结尾是空才去除,不管几个空格,都去除。否则啥也不处理 198 s = " Hello, World! " 199 print(s.rstrip()) # 输出 " Hello, World!" 200 201 # 13.3 等价于lstrip + rstrip 202 s = " Hello, World! " 203 print(s.strip()) # 输出 "Hello, World!" 204 205 s = "\t Hello, World! " 206 print(s.strip()) # 输出 Hello, World!,\t处理了 207 print(s) # 输出 Hello, World! 208 209 s = '''Hello, 210 World!''' 211 print(s.strip()) # 输出 换行没有处理 212 ''' 213 Hello, 214 World! 215 ''' 216 217 # 14. 对齐或说字符串进行填充操作 218 # ljust(width, fillchar) 方法在原始字符串的右侧填充字符,使得新字符串总长度为指定的 width。 219 # 如果所需填充的长度小于 width,则可以使用指定的 fillchar 进行填充。 220 # 如果所需填充的长度大于 width,则直接显示字符串即不需要填充,如果用于对齐,一定要算出width的值。 221 s = "Hello" 222 print(s.ljust(10, "*")) # 输出 "Hello*****" 223 print(s.ljust(3, "*")) # 输出 "Hello" 224 225 # rjust(width, fillchar) 方法在原始字符串的左侧填充字符,使得新字符串总长度为指定的 width 226 s = "Hello" 227 print(s.rjust(10, "*")) # 输出 "*****Hello" 228 print(s.rjust(3, "*")) # 输出 "Hello" 229 # center(width, fillchar) 方法在原始字符串的两侧填充字符,使得新字符串总长度为指定的 width。 230 s = "Hello" 231 print(s.center(10, "*")) # 输出 "**Hello***" 232 print(s.center(3, "*")) # 输出 "Hello" 233 234 # 15. 查找find、rfind、index 、rindex 235 # 15.1 find(substring, start, end) 方法在目标字符串中从左至右查找子字符串。substring 是要查找的子字符串,start 和 end 是可选参数,用于指定查找范围。 236 s = "Hello, World!" 237 print(s.find("o")) # 输出 4 首次出现的位置,从左边开始,索引从0开始 238 print(s.find("o", 5, 10)) # 输出 -1,查找范围为 s[5:10] 239 240 # rfind(substring, start, end) 方法在目标字符串中从右至左查找子字符串,首次找到即停,输出下标。与 find() 方法类似,只是方向相反 241 s = "Hello, World!" 242 print(s.rfind("o")) # 输出 8 243 244 # index(substring, start, end) 方法与 find() 方法类似,但未找到子字符串时会引发 ValueError 异常 245 s = "Hello, World!" 246 print(s.index("o")) # 输出 4 247 print(s.index("o", 5, 10)) # 找不到引发 ValueError 异常 248 249 s = "Hello, World!" 250 print(s.rindex("o")) # 输出 8 251 print(s[10]) 252 print(s[12]) 253 print(s.rindex("o", 10, 12)) # 找不到会引发 ValueError 异常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!