python字符串与正则表达式学习笔记 1

字符串

        现在我们常见的编码格式主要有UTF-8、UTF-16、UTF-32、GB2312、GBK、CP936、base64、CP437等等。

        GB2312是我国制定的中文编码,使用1个字节表示英语,2个字节表示中文。

        UTF-8对全世界所有国家需要用到的字符进行了编码,以1个字节表示英语字符(兼容ASCII),以3个字节表示中文。

        1.现在的python 3.x支持中文字符,默认使用utf8编码格式。


 例如:        >>>姓名 = '张三'            #使用中文作为变量名

                    >>>print(姓名)              #输出变量的值

                    张三

        注意:引号类字符要使用英文字符。


        2.在Python中,字符串属于不可变序列类型。


例如:定义一个字符串,我们可以用字符串的下表来表示一个字符,但是不能用下边来改变这个字符(如下图一)。


图一

        3.Python字符串驻留机制:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。长字符串不遵守驻留机制。



例如:短字符的内存地址是一样的,长字符的内存地址不一样(这和python的内核实现有关)如图二:

图二



字符串格式化

        1.常用的格式字符(如图三)



图三

        2.使用format方法进行格式化


例如:第一个遍历使用map函数(可迭代的映射:把weather内的映射到formatter中)根据下标分别格式化到相应位置,第二个遍历是直接遍历weather。如下两图:

图四


图五

        3.python 3.6.x定义的新格式化方式Formatted String Literals


例如:Formatted String Literals,其含义与字符串对象的format()方法类似,但形式更加简洁。直接f ‘xxx’进行格式化。


图六

字符串常用方法

        1.find()、rfind()、index()、rindex()、count()

                find()和rfind方法分别用来查找一个字符串在另一个字符串指定范围(默认是整个字符串)中首次和最后一次出现的位置,如果不存在则返回-1;

                index()和rindex()方法用来返回一个字符串在另一个字符串指定范围中首次和最后一次出现的位置,如果不存在则抛出异常;

                count()方法用来返回一个字符串在另一个字符串中出现的次数。


例如:

图七

        2.split()、rsplit()、partition()、rpartition()

                split()和rsplit()方法分别用来以指定字符为分隔符,将字符串左端和右端开始将其分割成多个字符串,并返回包含分割结果的列表;

                partition()和rpartition()用来以指定字符串为分隔符将原字符串分割为3部分,即分隔符前的字符串、分隔符字符串、分隔符后的字符串,如果指定的分隔符不在原字符串中,则返回原字符串和两个空字符串。


例如:

图八


图九

        3. 字符串连接join


例如:

图十

        4.lower()、upper()、capitalize()、title()、swapcase()

                lower返回小写字符串

                upper返回大写字符串

                capitalize字符串首字母大写

                title每个单词首字母大写

                swapcase大小写互换


例如:

图十一

        5.查找替换replace()


例如:测试用户输入中是否有敏感词,如果有的话就把敏感词替换为3个星号***

(如图十三)。

图十二
图十三

        6.maketrans()与translate()

                maketrans()方法用来生成字符映射表,translate()方法用来根据映射表中定义的对应关系转换字符串并替换其中的字符,使用这两个方法的组合可以同时处理多个不同的字符,replace()方法则无法满足这一要求。


例如:创建映射表,将字符"abcdef123"一一对应地转换为"uvwxyz@#$"(图十四)。凯撒加密(图十五)。

图十四


图十五

        7.strip()、rstrip()、lstrip()

                strip() 删除字符两边的指定字符

                rstrip() 删除字符串右端指定字符

                lstrip() 删除字符串左端指定字符


例如:

图十六

        这三个函数的参数指定的字符串并不作为一个整体对待,而是在原字符串的两侧、右侧、左侧删除参数字符串中包含的所有字符,一层一层地从外往里扒。


图十七

        8.成员判断,关键字in

                测试一个字符中是否存在于另一个字符串中,关键字in左边的字符串作为一个整体对待。


例如:

图十八

        9.s.startswith(t)、s.endswith(t)

                判断字符串是否以指定字符串开始或结束


例如:

图十九

                实现文件的快速查找功能

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,727评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,694评论 19 139
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,691评论 0 4
  • 在挖掘分析的过程当中对字符串的处理是极为重要的,且出现也较为频繁,R语言作为当前最为流行的开源数据分析和可视化平台...
    果果哥哥BBQ阅读 6,162评论 0 8
  • 一、字符串在C#中,字符串是一系列不可修改的Unicode字符,创建字符串后,就不能修改它。要创建字符串,最常用的...
    CarlDonitz阅读 1,386评论 0 2

友情链接更多精彩内容