python字符串比较

Python源码剖析--Pyc文件解析

我的梦境 提交于 2019-12-14 10:54:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1. PyCodeObject 与 Pyc 文件 通常认为, Python 是一种解释性的语言,但是这种说法是不正确的,实际上, Python 在执行时,首先会将 .py 文件中的源代码编译成 Python 的 byte code (字节码),然后再由 Python Virtual Machine 来执行这些编译好的 byte code 。这种机制的基本思想跟 Java , .NET 是一致的。然而, Python Virtual Machine 与 Java 或 .NET 的 Virtual Machine 不同的是, Python 的 Virtual Machine 是一种更高级的 Virtual Machine 。这里的高级并不是通常意义上的高级,不是说 Python 的 Virtual Machine 比 Java 或 .NET 的功能更强大,更拽,而是说和 Java 或 .NET 相比, Python 的 Virtual Machine 距离真实机器的距离更远。或者可以这么说, Python 的 Virtual Machine 是一种抽象层次更高的 Virtual Machine 。 我们来考虑下面的 Python 代码: [demo.py] class A : pass def Fun ():

正则表达式(re模块)基础

半世苍凉 提交于 2019-12-11 00:51:40
正则表达式 动机 文本处理已经成为计算机常见工作之一 对文本内容的搜索,定位,提取是逻辑比较复杂的工作 为了快速方便的解决上述问题,产生了正则表达式技术 简介 定义 即文本的高级匹配模式,提供搜索,替换等功能。其本质是由一系列字符和特殊符号构成的字串,这个字串即正则表达式。 原理 通过普通字符和有特定含义的字符,来组成字符串,用以描述一定的字符串规则,比如:重复,位置等,来表达某类特定的字符串,进而匹配。 目标 熟练掌握正则表达式元字符 能够读懂常用正则表达式,编辑简单的正则规则 能够熟练使用re模块操作正则表达式 元字符使用 普通字符 匹配规则:每个普通字符匹配其对应的字符 e.g. In : re.findall('ab',"abcdefabcd") Out: ['ab', 'ab'] 注意事项:正则表达式在python中也可以匹配中文 或关系 元字符: | 匹配规则: 匹配 | 两侧任意的正则表达式即可 e.g. In : re.findall('com|cn',"www.baidu.com/www.tmooc.cn") Out: ['com', 'cn'] 匹配单个字符 元字符: . 匹配规则:匹配除换行外的任意一个字符 e.g. In : re.findall('张.丰',"张三丰,张四丰,张五丰") Out: ['张三丰', '张四丰', '张五丰'] 匹配字符集

String的用法及例子

让人想犯罪 __ 提交于 2019-12-10 22:29:08
string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。 其中使用的代码多数都是来自cpp官网。 声明和初始化方法: 想使用string首先要在头文件当中加入< string > 声明: string s ; //声明一个string 对象 string ss [ 10 ] ; //声明一个string对象的数组 初始化: 使用等号的初始化叫做拷贝初始化,不使用等号的初始化叫做直接初始化。 #include < bits / stdc ++ . h > using namespace std ; int main ( ) { ios : : sync_with_stdio ( false ) ; string s ; //默认初始化,一个空字符串 string s1 ( "ssss" ) ; //s1是字面值“ssss”的副本 string s2 ( s1 ) ; //s2是s1的副本 string s3 = s2 ; //s3是s2的副本 string s4 ( 10 , 'c' ) ; //把s4初始化 string s5 = "hiya" ; //拷贝初始化 string s6 = string ( 10 , 'c' ) ; //拷贝初始化,生成一个初始化好的对象,拷贝给s6 //string s(cp

高质量的Python代码--优化

▼魔方 西西 提交于 2019-12-10 15:22:24
小伙伴你的程序还是停留在糊墙吗?优化代码可以显示程序员的素质欧! 普及一下基础了欧: 一层for简写:y = [ 1, 2, 3, 4, 5, 6], [(i* 2) for i in y ] 会输出 [2, 4, 6, 8, 10, 12] ,标准形式为: [ 对i的操作 for i in 列表 ] 两层for循环:[对i的操作 for 单个元素 in 列表 for i in 单个元素], 例子: y_list = [ 'assss', 'dvv'] [print(i) for y in y_list for i in y] 输出:a s s s s d v v 相当于: y_list = ['assss','dvv']for y in y_list: for i in y: print(i) Python 代码优化常见技巧   代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗 80% 的工作量。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。 改进算法,选择合适的数据结构   一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进。在算法的时间复杂度排序上依次是: O(1) -> O(lg n) -> O(n lg n) -> O

Python 字符串方法详解

≯℡__Kan透↙ 提交于 2019-12-10 02:18:46
Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客( http://blog.csdn.net/lanphaday ),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息。 在编程中,几乎90% 以上的代码都是关于整数或字符串操作,所以与整数一样,Python 的字符串实现也使用了许多拿优化技术,使得字符串的性能达到极致。与 C++ 标准库(STL)中的 std::string 不同,python 字符串集合了许多字符串相关的算法,以方法成员的方式提供接口,使用起来非常方便。 字符串方法大约有几十个,这些方法可以分为如下几类(根据 manuals 整理): 类型 方法 注解 填充 center(width[, fillchar]) , ljust(width[, fillchar]), rjust(width[, fillchar]), zfill(width), expandtabs([tabsize]) l fillchar 参数指定了用以填充的字符,默认为空格 l 顾名思义,zfill()即是以字符0进行填充,在输出数值时比较常用 l expandtabs()的tabsize 参数默认为8。它的功能是把字符串中的制表符(tab)转换为适当数量的空格。 删减 strip([chars]), lstrip([chars]), rstrip([chars])

python中的正则匹配

守給你的承諾、 提交于 2019-12-09 21:27:53
对于一个文本的字符串多行处理,如果使用split()函数,需要逐行处理,处理的代码也会比较复杂而且阅读体验感不是很好。re模块提供了的匹配函数,但是需要正则化相关的知识。 对于正则表达式样式使用 Python 的原始字符串表示法;在带有 'r' 前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此 r"\n" 表示包含 '' 和 'n' 两个字符的字符串,而 "\n" 则表示只包含一个换行符的字符串。 样式在 Python 代码中通常都会使用这种原始字符串表示法来表示。 特殊字符 '.'在默认模式,匹配除了换行的任意字符。 '^'匹配字符串的开头, 多行模式匹配换行后的首个符号。 '$'匹配字符串尾或者换行符的前一个字符,多行模式匹配换行符的前一个字符。 ' '对它前面的正则式匹配0到任意次重复, 尽量多的匹配字符串。 ab 会匹配 'a', 'ab'。 '+'对它前面的正则式匹配1到任意次重复。 ab+ 会匹配 'a' 后面跟随1个以上到任意个 'b',它不会匹配 'a'。 '?'对它前面的正则式匹配0到1次重复。 ab? 会匹配 'a' 或者 'ab'。 “{m}”对其之前的正则式指定匹配 m 个重复;少于 m 的话就会导致匹配失败。比如, a{6} 将匹配6个 'a' , 但是不能是5个 {m,n}?前一个修饰符的非贪婪模式,只匹配尽量少的字符次数。比如,对于

python常用语法

主宰稳场 提交于 2019-12-08 04:45:12
(请点击目录) 前段时间学习,总是学到新的python语法类,库类的知识,遇到的就写一篇博客,有点散落,今天花写时间整理成一篇python基础小杂烩,之后遇到的类似的问题会持续更新下面。 字符串替换replace() 将“hello world”替换为“hello python” str = "hello world" str.replace("world","python") //hello python 字符串查找find() find用于字符串查找,不存在返回值为-1。 str = "123" str.find('0') //-1 join()函数的用法: 函数描述 python join()方法用于将序列中的元素以指定的字符连接成一个新的字符串。 语法 s.join(sequence) 参数 sequence :要连接的元素序列 。 s : 连接的方式 返回值 返回通过指定字符连接序列中元素后生成的新字符串。 实例 # -*- coding:utf-8 -*- s = '*' seq = ( "a" , "b" , "c" ) #字符串序列 print s . join ( seq ) 输出: a *b *c 输出中文 #python2.7 # -*- coding: utf-8 -*- print u'许娜' zfill()语法 函数描述 Python zfill()

Python 常用语法函数整理

折月煮酒 提交于 2019-12-08 04:39:54
Python 常用语法函数 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 廖学峰python官网,比较全 http://www.runoob.com/python/python-tutorial.html 通过网上的一些在线资料,整理了一些常用到的python函数以及使用方法 http://www.iplaypy.com/sys/open.html open()函数文件打开模式参数常用值有哪些? 刚才打开文件过程中用到了‘r’这个参数,在文件打开过程中还会用到很多操作方法,都有不同的参数来表示。’r’读模式、’w’写模式、’a’追加模式、’b’二进制模式、’+’读/写模式。 python文件写入操作 f = open(‘a.txt’, ‘w’) f.write(‘hello,’) f.write(‘iplaypython’) f.close() 第一行:用写的方式打开a.txt这个文件,并赋给f (python变量命名规则) 第二行:f.write方法写入( )括号内的内容 第三行:同第二行意义相同,重点要说明下f.write写入的内容会追加到文件中已存在的数据后,也就是就此时的’iplaypython’是在’hello,’后边显示的。 第四行

AI 学习之路——轻松初探 Python 篇(三)

荒凉一梦 提交于 2019-12-06 16:12:29
喜欢小之的文章的可以关注公众号「WeaponZhi」持续关注动态 这是「AI 学习之路」的第 3 篇,「Python 学习」的第 3 篇 Python 字符串使用和 C 语言比较类似,但还有一些我们值得注意的地方需要关注,用这篇文章来帮助大家掌握 Python 的字符串吧! 编码 不论什么语言,我们都需要考虑一下这个语言的编码问题。「ASCII」编码是我们最熟悉的编码,但它只有 127 个字符被编码到计算机里面了,显然,像中日韩这类国家,语言文字比较特殊,就需要自己来指定编码格式。 比如,中国自己就制定了「GB2312」编码,韩文则是「EUC_KR」,俄语是「KOI8-R」,显然,如果每一个国家都需要制作一个适配的编码,那我们的计算机世界就要乱套了,不同国家之间信息的传输将变的寸步难行。如果电脑里没有某个语言的编码,那就会产生乱码冲突,这是相当麻烦的。 所以,大家商量了一下,就做出了「Unicode」这么个编码格式,它干脆把所有的编码都统一了,只要你用 Unicode 它就能保证没有乱码问题。 但 Unicode 也有缺点。比如如果一个文件是纯英文来写的,那所有的字符实际上都可以用过 ASCII 的 8 位二进制来表示。我们知道 Unicode 是通过补 0 来表示一些低位数的字符的,这样,为了保持兼容性,你实际上白白浪费了两倍的空间。 UTF-8 就是为了解决这样一个问题而出现的

python 学习笔记

冷暖自知 提交于 2019-12-06 13:56:08
python由荷兰人吉多·范罗苏姆在1991年发布。 编译型语言,是统一编译打包执行。编译型语言在window操作系统编译,编译成的文件只能在window操作系统中运行。 解释型语言,是同时编译同时执行。不同平台安装不同的解释器,就可以跨平台。 Python 设计目标: 一门简单直观的语言并与主要竞争者一样强大。 开源,以便更多人为它贡献。 代码像纯英语那样容易理解。 适用于短期开发的日常任务。 1.Python 程序扩展名通常都是 .Py 2. 每一行代码负责完成一个动作 3. 单行注释 以 # 号开头,后面全部为注释(为保持整齐 # 号后面加一个空格) 多行注释 ”””注释””” 4. 在 python 中‘ * ’还可以用于字符串 print(‘你好’*50) ; 5.python 变量不需要指定的类型,解释器会根据右侧值自动推导 6. 字符串可以根据 ’+’拼接成新的字符串 7.input 输入 : Password=input(“ 请输入银行密码 :”) 注意用户输入的任何内容, python 都会认为它是一个字符串 8. 数据类型转换 int(x) 将 x 转换为一个整数 float(x) 将 x 转换为一个浮点数 9. 变量的格式化输出 %s 字符串 %d 整形数 %f 单精度浮点数 %% 输出 % print(“ 账号: %f 密码: %f ”%( 账号,密码 ))