21天学通python学习笔记

此书把关于python重要、常用的知识都讲到了,并且每个知识点用代码说明的很清楚,非常适合初学者学习

字符串

1、字符串通常由单引号、双引号或三个单引号或三个双引号包围的一串字符组成

2、常见的转义字符

\n 换行符

\t 制表符

\r 回车

\\  \反斜杠

\'  单引号字符串中的单引号

\" 双引号字符串中的双引号

3、常用字符串操作

+  #连接字符串

len() #计算字符串长度,中文字符串按汉字数计算

string.count(子字符串[,开始位置,结束位置]) #计算子字符串在的数量
string.find(sub[, start[, end]])          #查找子字符串出现的起始位置
string.isdigit()      #检测字符串是否仅包含数字
string.join()   #使用参数字符串对原字符串进行连接
split(sep=None, maxsplit=-1)  #使用指定的字符对字符串进行分割,返回分割后的列表

异常处理

1、如果程序中引发了异常而不处理,脚本就会因为异常而终止程序运行。只有在程序中捕获异常,并进行相关的处理,才能使程序不会中断运行。

2、异常处理基本语法

try:
    可能产生异常的语句块
except 异常名1:
    异常处理语句块
except 异常名2:           #可省略
    异常处理语句块
......
else:                    #可省略
    未触发异常执行的语句块
finally:                 #可省略
    始终执行的语句块,一般用于释放资源等

3、 except的几种用法

except:            #捕获所有异常
except: 异常名      #捕获指定异常,发生了指定异常程序不中断,非指定的异常程序仍中断执行
except:(异常名1,异常名2):    #捕获异常1或异常2
except:异常名 as 数据         #捕获指定异常及附加数据
except:(异常名1,异常名2)as 数据:   #捕获异常1或异常2及附加数据

4、dir(__builtins__)  命令会显示所有的预定义异常。

5、常用异常名:

AttributeError 调用不存在的方法引发的异常

EOFError 遇到文件末尾引发的异常

ImportError 导入模块出错引发的异常

IndexError 下标越界引发的异常

IOError I/O操作引发的异常,如打开文件出错

KeyError 使用字典中不存在的key引发的异常

NameError 使用不存在的变量名引发的异常

ValueError 搜索列表中不存在的值引发的异常

ZeroDivisionError 除数为0引发的异常

6、手工抛出异常

程序中可以使用raise语句来引发指定的异常,并向异常传递数据。

#raise几种使用方式

raise 异常名
raise 异常名,附加数据
raise 类名

正则表达式

re模块是python提供处理正则表达式的标准库

1、元字符是正则表达式中具有特点含义的字符,常用的元字符如下:

例如:

[a-z]{2,3}  表示匹配2个或3个字母组成的字符串

2、re.match()函数从字符串第一个字符开始匹配,而re.search()函数可以从字符串的任一个字符开始进行匹配。

 import re
>>> s="Life can be good"
>>> print(re.match('can',s))
None                         #未匹配到,原因是match函数是从字符串第一个字符开始匹配
>>> print(re.search('can',s))
<re.Match object; span=(5, 8), match='can'>      #匹配到

3、re.compile()函数将正则表达式编译生成一个RegexObject对象实例,然后通过这个对象实例对字符串进行操作。

>>> r=re.compile('go*d')    #编译一个正则表达式对象,然后在下面使用
>>> r.match('Life can be good',12)
<re.Match object; span=(12, 16), match='good'>

4、园括号()可以将正则表达式分解成不同的组,在完成匹配后,匹配的分组结果为程序后续使用提供方便。

>>> import re
>>> s="电话:010-87654321"
>>> r=re.compile(r'(\d+)-(\d+)')
>>> m=r.search(s)
>>> m.groups()
('010', '87654321')  #提取出区号和电话号码
>>> m.group(1)
'010'

5、分组扩展用法

(?P<组名>)为组设置名称,例如:

>>> import re
>>> s="电话:010-87654321"
>>> r=re.compile(r'(?P<Area>\d+)-(?P<No>\d+)')
>>> m=r.search(s)
>>> m.groupdict()
{'Area': '010', 'No': '87654321'} #设置组名分别为Area和No

 匹配成功的分组方法有:

group() 参数为组的索引,返回字符串,当传递多个参数时返回值为元组

groups() 返回值为元祖

groupdict() 返回值为字典

start() 参数为组的索引,返回索引指定的组在字符串中的起始位置

end() 参数为组的索引,返回索引指定的组在字符串中的结束位置

span() 参数为组的索引,返回索引指定的组在字符串中的开始和结束位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值