python函数与字符串,异常处理

函数

所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用

定义函数时,函数的先后顺序不重要,重要的是 函数在什么位置被调用

创建函数

def 函数名(参数列表):  # 具体情况具体对待,参数可有可无
	"""函数说明文档字符串"""
    函数封装的代码
    ……

函数名称的命名规则

可以由 字母、下划线 和 数字 组成   

不能以数字开头   

不能与关键字重名

函数的形参和实参

形参:定义 函数时,小括号中的参数,是用来接收参数用的,在函数内部 作为变量使用   

实参:调用 函数时,小括号中的参数,是用来把数据传递到 函数内部 用的

函数的返回值

返回值 是函数 完成工作后,最后 给调用者的 一个结果使用 return 关键字可以返回结果

也可以 使用变量 来 接收 函数的返回结果

调用函数

使用一对圆括号() 调用函数,如果没有圆括号,只是对函数的引用   

任何输入的参数都是必须放置在括号中

关键字参数

这种理念是 让调用者通过函数调用中的参数名字来区分参数     

这种规范允许参数不按顺序    

位置参数应写在关键字参数前面

匿名函数

取代return语句

一个完整的 lambda "语句"代表了一个表达式,这个表达式定义体必须和声明放在同一行

filter() 函数: 对数据进行过滤 

map() 函数:  对每个数据进行计算,不过滤

变量赋值

1. python支持链式多重赋值 

例如: x=y=10

2. 给列表使用多重赋值时,两个列表同时指向同一个列表空间,任何一个列表改变,另外一个随着改变 

例如: a=b=[1,2]    b=[-1]=3  a=[1,3]

3. python 的多元赋值方法 

例如: a,b=10,20  c,d='mn' e,f=(100,200)  m,n=['b','a']

4.在python中,完成两个变量值的互换 

例如: a,b = 100,200  a,b=b,a   a=200  b=100

变量作用域

全局变量

1.全局变量的使用  整个程序都可以使用

2.全局变量的一个特征是除非被删除掉,否则他们会存活到脚本运行结束,且对于所有的函数,他们的值都是可以被访问的

局部变量

1.局部变量只是暂时的存在,仅仅只依赖于定义他们的函数现阶段是否处于活动,局部变量只在函数内部起作用

2.如果局部变量与全局变量有相同的名称,那么函数运行时,局部变量的名称将会把全局变量的名称遮盖住

global 语句:声明局部变量为全局变量

查找变量或函数的顺序  临近原则:

首先在函数的内部去查找   

函数内部没有,然后去全局去查找,看是否定义   

全局也没有,最后会去内建函数中查找

生成器

Python 使用生成器对延迟操作提供了支持。所谓延迟操作,是指在需要的时候才产生结果,而不是立即产生结果

生成器函数:

1.常规函数定义,但是,使用 yield 语句而不是 return 语句返回结果   

2.yield 语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行

3.生成器的唯一注意事项就是:生成器只能遍历一次

自定义生成器函数的过程

1.在函数内部,有很多 yield 返回中间结果;   

2.程序向函数取值时,当函数执行到第1个yield时,会暂停函数运行并返回中间结果;     

3.当主程序再次调用函数时,函数会从上次暂停的位置继续运行,当遇到第2个yield,会再次暂停运行函数并返回数据;       

4.重复以上操作,一直到函数内部的yield全部执行完成为止

合法标识符

1.第一个字符必须是 字母或下划线 _   

2.剩下的字符可以是字母和数字或下划线    

3.大小写敏感

关键字

关键字列表和 iskeyword() 函数都放入了 keyword 模块以便查阅

内建函数

builtins 模块中包含str()、int()、dir()、id()、type(),max(),min(),len() 等,而 builtins 模块默认 在Python环境启动的时候就自动导入

startswith('*'):判断字符串是否以*开头

endswith('*'):判断字符串是否以*结尾

islower(): 是否全为小写字母

isupwer(): 是否全为大写字母

strip(): 去掉左右两边的空白字符

lstrip():去掉左边的空白字符

rstrip():去掉右边的空白字符

split(‘.’): 切割操作 以.切割字符串

'-'.join: 拼接操作  以-作为连接符

字符串 | 操作符

比较操作符:字符串大小按 ASCII 码值大小进行比较   

切片操作符:[ ]、[ : ]、[ : : ]   

成员关系操作符:in、not in

格式化字符 

可以传入任意类型的数据,如 整数、浮点数、列表、元组甚至字典,都会自动转成字符串类型

格式化字符转换方式
%s优先用str()函数进行字符串转换

format 格式化输出 

format() 功能更强大,该函数把字符串当成一个模板,使用大括号 {} 作为特殊字符代替 %

例如:     print("今天是{}的{}生日会".format("帅哥", 18))

结果:      今天是帅哥的18生日会

异常处理

异常是因为程序出现了错误,经过我们的处理可以让程序正常执行后面的代码的行为,这个行为又分为两个阶段: 

1.首先是引起异常发生的错误   

2.然后是检测(和采取可能的措施)阶段

语法如下:

try:
    # 尝试执行的代码
    pass
except 错误类型1:
    # 针对错误类型1,对应的代码处理
    pass
except (错误类型2, 错误类型3):
    # 针对错误类型2 和 3,对应的代码处理
    pass
except Exception as result:
    print("未知错误 %s" % result)

Python 中的异常

KeyboardInterrupt     Ctrl + C,会产生用户中断执行错误
EOFError               Ctrl + D,会产出此错误
Exception              捕获未知错误
ValueError             无效的输入错误
ZeroDivisionError      无效的输入错误

else 子句

在 try 范围中没有异常被检测到时,执行 else 子句  反之,则不执行  

finally子句

finally 子句是 无论异常是否发生,是否捕捉都会执行的一段代码

使用finally 可以保证文件总是能正常的关闭

自定义异常

抛出异常—raise

Python 中提供了一个 Exception 异常类

在开发时,如果感觉这段代码会出现错误,希望 抛出异常,可以:   

创建 一个 Exception 的 对象   使用 raise 关键字 抛出 异常对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值