python学习(7)函数、异常、模块、包

一、函数返回值:

1、一个函数,不管是否有return,它都是有返回值的。

如果没有return,它的返回值是None。

2、如果有return,函数的返回值是return后面的内容。

3、查看返回值,要print输出。

切记:return后面的代码是不能够执行的。

函数返回值的价值是:把函数与函数之间能够建立一层关联关系。

return用在函数内部,就是说当函数被调用时,返回值给到调用函数者。但是却没有承接返回值的变量,所以就没有输出。总结一下,我们需要调用这个函数要进行重写(或者说要对这个函数进行运用),那么这个函数要有return返回值。简单来说,就是把这个函数中的内容保存起来,需要的时候调用出来。

 

sessionid请求流程

客户端向服务器发送请求,会有一个返回值,之后客户端带着这个返回值去访问个人主页,服务器会核对这个客户端带的返回值和服务端的sessionID,用以区分用户。

(比如很多的人要去登录淘宝,服务器怎么知道是谁,就在登录的时候返回值,用户带着返回值与服务器的sessionID比对,就可以去访问自己的主页)

 

二、内部函数

1、数字转字母(数字最好是在 97到122)

chr

字母转数字(字母加引号)

ord

 

2、范围

range

range(参数)

从零开始的,不包含这个数字的一个范围。(表示一共有几个数)

 

range(参数1,参数2)

包含开始不包含结尾

 

3、random随机

random.randint(参数1,参数2)
  • 参数1、参数2必须是整数

  • 函数返回参数1和参数2之间的任意整数闭区间(包含开始和结束)

  • 需要先导入库(import    random)

例1:

随机的输出1到100 的数字(包含1和100):

 

例2:

随机生成四位字母:

 

 

 例3:

随机生成四位数字:

 

 

 (不能直接将数字列表 转为字符串,所以先将数字转为字符串加入列表,再将列表转为字符串

 

4、字符串转为表达式

eval(字符串)

 

 

5、匿名函数

lambda:匿名函数指的是它是一个函数,但是这个函数的名称可以是自定义的。相当于把多行函数用一行写成。 调用lambda函数时,要print。

如: a=lambda x,y : x+y

(a是函数名)

:左边是函数的形式参数

:右边是函数的表达式

 

 

6、过滤函数

(1)常规:

需求:过滤出list1中大于2的数字

 

(2)filter过滤

filter(函数对象,可迭代对象)

①函数对象:只写函数名称,不需要带括号()

②可迭代的对象(必须是可以被循环的)

③查看结果的类型不对时,需要强制转成list类型

A方法:

相当于把可迭代对象做为参数放在左边的函数对象中进行过滤。要强制转换为list类型。

return True 内部继续循环 

 

B方法:

lambda函数

 

 

7、针对所有对象做同样的操作

①map方法

map(函数对象,可迭代对象)

1、函数对象,只写函数名称,不需要带括号()

2、可迭代的对象(可以被循环)

相当于把可迭代对象做为参数放在左边的函数对象中做同样的操作。要强制转换为list类型。

 

 ②常规方法

 

8、全局变量和局部变量

全局变量:在一个python文件中定义的变量。作用范围为函数内部和外部都可以使用。

局部变量:在一个函数中定义的变量,局部变量使用global声明,这个变量实际上就变成了全局变量

优先级:

1、在python文件中,调用变量,全局变量优先级是高于局部变量的

2、在函数内部调用变量,局部变量的优先级是高于全局变量的

3、如果在函数内部项引用全局变量,那么使用关键字 global (引用变量到函数内部使用)

 

三、异常处理

异常的父类是:BaseException

异常捕捉使用的语句:

try:

except:

else:

finally

 

(通常我们要捕获的异常也不知道是什么类型的异常,Exception这个类型就包含了很多的异常类型,所以我们捕捉异常类型时,就用Exception这个类型,不用细分,就会捕捉到)

顺序:

1、正常逻辑:try :——> else : ——> finally:

2、异常逻辑:try :——>except:——> finally:

 

正常逻辑:try :——> else : ——> finally:

 

 异常逻辑:try :——>except:——> finally:

 

 

 例1:

 try 和except是必须输的,else和finally可以不输。以上的例子,我们的score是等于一个int类型的,但是如果输入的是字母类型,不能强制转换为int类型,所以这就是一个异常了,对于这个异常,我们在死循环中,进行捕获异常后,不做输出,continue继续程序,这种输入错误的异常就不会影响我们程序的进行。

  

四、模块和包

1、模块、包、文件夹

1、模块(module)

在python中,每一个python文件都是一个模块。自己写的python文件不能起名和python中要用的模块名一样,否则会调用不到函数和方法。

2、包(package):

在一个包里面会有很多的模块(如下图)

3、包与文件夹的区别:

包里面有_ init _.py 这个文件,文件夹没有

 

新建包:Python Package

新建文件夹:Directory

 

 

2、模块调用

在一个模块调用另一个模块文件的变量以及函数(实现各个模块之间代码的联系)

from package.module import  *

(package:包名       module:模块名 *代表所有)

 

例:

f1模块内容如下,有函数和变量:

 在另一个模块中from... ...调用login包的f1模块 ,这时执行这个模块其中的函数和变量,是可以得到结果的:

 

posted @ 2022-03-30 16:30  jia---  阅读(73)  评论(0)    收藏  举报