""" 异常: python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会 创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止, 并显示一个traceback。 """ """ 有了except,用户看到的是一条友好的错误信息,而不是traceback。 如果try-except代码块后面还有其他代码,程序将接着运行,因为已经告诉了Python如何处理这种错误。 """ """ 发生错误时,如果程序还有工作没有完成,妥善地处理错误就尤其重要。这种情况经常会出现在要求用户提供输入的程序中,; 如果程序能够妥善地处理无效输入,就能再提示用户提供有效输入,而不至于崩溃。 """ """ 如果用户怀有恶意,他会通过traceback获悉你不希望他知道的信息。他将知道你的程序文件的名称,还将看到部分不能 正确运行的代码。训练有素的攻击者可根据这些信息判断出可对你的代码发起什么样的攻击。 """ """ try-except-else 结构 """
""" 正则: """ """ 文字处理、网页表单的填写、来自数据库转储的信息流、股票报价信息、新闻源,将这些文本或者数据已某种可被 计算机识别和处理的模式表达出来。 正则表达式为高级的文本模式匹配、抽取、与/或文本形式的搜索????和替换功能提供了基础,使一些由字符和 特殊符号组成的字符串 """ #Python通过标准库中的re模块来支持正则表达式 """ 搜索和匹配: 搜索即在字符串任意部分搜索匹配的模式;而'匹配'是指判断一个字符串能否从起始处全部或者部分匹配某个模式。 搜索通过search()函数实现,匹配通过match()函数实现 """ #Regular Expression """ [A-Za-z]\w+ 字符集:第一个字符要么是A~Z,要么是a~z \w+匹配一次或多次前面出现过的正则表达式,\w就是字母或者数字或下划线字符 """ """ 正则表达式是包含文本和特殊字符的字符串,该字符串描述一个可以识别各种字符串的模式。 正则表达式字母表,对于通用文本,用于正则表达式的字母表是所有大小写字母及数字的集合。 """ #正则表达式的强大之处在于引入特殊字符来定义字符集、匹配字组和重复模式 #正则表达式的强大之处在于引入特殊字符来定义字符集、匹配字组和重复模式 """ 特殊符号和字符即所谓的元字符。 """ #符号: #1,匹配字面值 #2,| # 3,. 匹配任何字符,(除了\n之外) # 4,^ 字符串起始部分,后面接要匹配的值 # 5,$ 结束部分 # 6,* 匹配0次或多次 之前的(一位设定) # 7,+ 1次或多次 # 8,? 0次或1次 # 9,{N} 重复N次 例:[0-9]{3},--将0~9这个选择重复3次,有3位 # 10, {M,N} M~N次 例:[0-9]{5,9} 前面-,后面逗号 # 特殊字符: # 1,\d 数字 # 2,\w 匹配任何数字、字母和下划线,等同于[A-Za-z0-9] # 3,\s 任何空格字符[\n\t\f\v] # 4,\b 单词边界 """ 使用择一匹配符号匹配多个正则表达式模式 择一匹配的管道符号(|),从多个模式中选择其一,用于分割不同的正则表达式。 """ # .. 匹配任意两个字符 # 要显示匹配一个句点符号本身,必须使用反斜杠转义句点符号的功能,例如'\.'。 # 因为一旦引入了re模块,这些特殊符号就已经有了其他的意义。 """ \b 和 \B: 这些模式指定了位置或方位,存在匹配和搜索之间的差别。'边界绑定' 匹配边界,\B匹配出现在一个单词中间的模式(即不是单词边界) """ # \bthe 任何以the开始的字符串 # \bthe\b the单词本身 # \Bthe 任何包含the但不以the作为起始的字符串 # 若想要匹配任何以美元符号结尾的字符串:.+\$$ """ 创建字符集:尽管句点可以用于匹配任意符号,但某些时候,可能想要匹配某些特定字符。正因如此,发明了方括号。 字符集的方法只适用于单个字符 """ # [cr][23][dp][o2] 和 r2d2|c3po 是完全不同的逻辑 """ 限定范围和否定: 限定范围只能在字符集中,按照字母顺序[A-Za-z0-9] 如果脱字符紧跟在作坊括号后面,这个符号就表示不匹配给定字符集中的任何一个字符。 """ """ 使用闭包操作符实现存在性和频数匹配: 最常用的正则表达式符号: (*)匹配其左边的正则表达式出现零次或者多次的情况(在计算机编程语言中和编译原理中,该操作称为闭包) 还有大括号操作符{},里面或者是单个只或者是一对由逗号分隔的值。这将最终精确地匹配前面的正则表达式N次 * + ?都是对左边的临近一个模式做的规定 """ # [dn]ot? do dot no not # 0?[1-9] 匹配月份 # </?[^>]+> 匹配全部有效的(和无效的)HTML标签 """ 表示字符集的特殊字符: [0-9] 等价于 d [A-Za-z0-9] 等价于 \w [^0-9] 等价于 \D """ # [A-Za-z]\w* 几乎等价于Python中的有效表示符 # \d{3}-\d{3}-\d{4} 美国电话 # \w+@\w+\.com 简单电子邮件 # 见到 + * ? 就分开 # + 是 至少一个 # 单纯的全字母、不分大小写还是只有一种表示方式:[A-Za-z] # --------华丽的分割线----------- """ 正则表达式和Python语言: re模块允许多个线程共享同一个已编译的正则表达式对象 re模块核心函数和方法: 对象方法: match(pattern,string,flags = 0) 尝试使用带有可选的标记的正则表达式的模式来匹配字符串。 如果匹配成功,就返回匹配对象;如果失败,就返回None search() 搜索第一次出现的正则表达式模式 split(pattern,string,max = 0) 根据模式分隔符将字符串分割成列表,成功返回列表,分割醉倒操作max次, (默认分割所有匹配成功的位置) 对象的方法: ????? sub(pattern,repl,string,count = 0) 使用repl替换所有模式在字符串的位置,默认count替换所有 """ """ match()方法: """ import re m = re.match('foo','foo') #此处的变量保存的是整个函数体的返回值 if m is not None: print(m.group())