python字符串 作者:马育民 • 2018-06-28 22:19 • 阅读:10404 需要掌握[ASCII、GBK、Unicode、UTF-8编码](http://www.malaoshi.top/show_1EF2PfTMBHiG.html "ASCII、GBK、Unicode、UTF-8编码") # 概述 人类的文明特征之一是 **文字**,计算机的重要使用场景之一就是 **处理文字**,在计算机中将文字成为“** 字符串** ” python中,str类型表示字符串,在内存中是Unicode编码,是 **不可变序列** 在常见开发语言中(C/C++/JAVA/C#),字符串都是重要且常用的数据类型 JAVA、C#,都采用Unicode编码 # 定义字符串 ### 单行字符串 ```python s='测试' ``` 等同于 ```python s="测试" ``` ### 多行字符串 ```python s='''这是 多行 字符串''' ``` 等同于 ```python s="""这是 多行 字符串""" ``` # 转义字符 ``` '\n' 是换行符 ``` ``` '\t' 是制表符 ``` ### 例子 ``` s = "窗前明月光\n疑是地上霜" # 写成一行 print(s) ``` 执行结果: ``` 窗前明月光 # 打印成两行 疑是地上霜 ``` ### 双 \ ``` '\\t' 对斜杠进行转义,此时只输出\t ``` # 字符串前面加:r/R 将转义字符变成普通字符 以r开头的字符,常用于正则表达式,对应着re模块。 ### 例子 ``` s = r"窗前明月光\n疑是地上霜" print(s) ``` # 字符串前面加:b 表示bytes类型,以字节序列的方式表示字符串 python3.x中的字符串是unicode编码,以字符为单位。 字符串前加b,```b'python'```是bytes类型,以byte(字节)为单位,是二进制。其内容可以直接使用ASCII码,但不能是汉字 # 处理字符串 ### 截取字符串 语法: ``` str[开始位置:结束位置] ``` 1. 开始位置 为正数时,从0开始,超过最大长度也不报错 为负数时,表示从右面往左数,-1表示从右面数第一个 2. 结束位置 截取字符串的位置,但不包含该元素。 为空时,表示末尾 为正数时,超过最大长度也不报错 为负数时,表示从右面往左数,-1表示从右面数第一个 # 不足位数补0 在电商平台生成订单号时,有位数要求,不足位数前面补0 ``` #不足8位补0 s="%08d"%1 print(s) ``` # 拆分字符串 ``` str.split(str="") ``` **参数:** - str:分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等 **返回值:**返回分割后的字符串列表 ### 例子 有下面字符串: ``` '李雷、韩梅梅、lucy、lili' ``` 通过编程算出有几个人? **分析:**人名是根据 `、` 间隔的,可以使用 `split()` 方法拆分字符串 ``` s = '李雷、韩梅梅、lucy、lili' l = s.split("、") print(l) count = len(l) print(count) ``` [](/upload/0/0/1IX5Kspz6ZQV.png) # 常用字符串方法 https://malaoshi.top/show_1IXtF4Th0xV.html # 练习 1. 字符串模板。在发送短信、app内部消息时、注册成功邮件、找回密码邮件等,一般使用字符串模板,如:“尊敬的XXX,您好,感谢您使用本app,您的登录名是XXX,密码是XXX” 编码:将上面的模板替换为自己的名字、手机号,出生年月日 1. 通过词频分析红楼梦后40回作者是否曹雪芹 原理:每个作者都有写作习惯,如:“之乎者也”这类虚词的使用频率。分析120回每个章节中“之乎者也”出现的频率,并对比前80回和后40回的次数,即可判断后40回作者是否曹雪芹 编程:通过使用字符串函数获取“之后者也”的出现次数 2. 有些软件会对文件格式做校验,校验方式之一是对文件名的后缀做比对,如判断是否图片,就是通过比对文件名后缀是“.jpg”、“.png”等 编程:判断“head.jpg”、“1.Png”、“绩效.doc”、“全家福.JPG”,哪些文件名是图片 3. 敏感词过滤。很多社交软件、弹幕、论坛等都会有敏感词过滤。 编程:分析一段话是否包含敏感词,并把敏感词替换成* 4. 判断字符串是否数字。在使用input()函数,需要用户填写年龄、年份或电话号时,需要判断输入的字符串是否是数字(作为一只有修养的程序猿,我们需要编码严谨) 编程:判断用户输入的字符串是否是数字(需要过滤前后空格),如果是数字,转换成int型 >提示: isdigit() isdecimal() isnumeric() 5. 很多程序有字符串长度限制,比如发微博、发短信等。 编程:当字符串超过10个字时,截取前10个 感谢帖子: https://blog.csdn.net/u010496169/article/details/70045895 原文出处:http://www.malaoshi.top/show_1EF1PjrKp8X7.html