一、函数返回值
1、一个函数,不管是否有return,都是有返回值,如果没有return,返回值是None
2、如果有return,函数的返回值是return后的内容,切记:return后面的代码是不能够执行的
函数返回值的价值
可以把函数与函数之间建立一层关联关系
# 函数返回值 def zhihulogin(username='wp', password='12345'): if username=='wp' and password=='12345': return '23vetr' else: return '账户名或密码不正确' def profile(sessionid): if sessionid=='23vetr': print('登录成功') else: print('请重新登录') profile(sessionid=zhihulogin())
chr:数字转字母
print(chr(98))——97-120为字母
ord:字母转数字
print(ord('g'))
range:包含开始但不包含结束
必须和循环一起使用,如果括号中仅有一个数字,即输出的为从0到数字的前一位
返回随机数:random
内部库,库都是需要导入的,导入关键字是import
randint——整型的范围
# 返回随机数以及返回值的范围 import random print(random.randint(3,64))
练习:验证码
# 验证码 import random list1=[] for yz in range(4): # 随机输出四个字母验证码 r=random.randint(97,120) # 将数字转为字母 list1.append(chr(r)) # 将列表转为字符串输出 print(''.join(list1))
eval:字符串转为表达式
不建议使用多个
# 字符串转为表达式 # 符号可以为"+、-、*、/" str1='66+22' print(eval(str1))
他是一个函数,但是名称可以自定义
# lambda:匿名函数 # x与y之间可以加减乘除 add=lambda x,y:x-y print(add(53,3))
二、函数
1、过滤函数:filter()
常规步骤
# 过滤函数 list1=[1,2,3,4,5,6,7,8] # 定义一个函数,假设>2,附加给item2 list2=[] def func(): for item in list1: if item>2: list2.append(item) print(list2) # 调用函数,因print输出的信息是在函数中 func()
filter()
2、可迭代的对象(可以被循环)
list1=[1,2,3,4,5,6,7,8] def func(w): if w>2: return True print(list(filter(func,list1))) print(list(filter(lambda w:w>2,list1)))
两种方式
2、针对所有对象做同样的操作:map
list1=[1,2,3,4,5,6,7,8]
# 常规方式:所有的对象都+10
list2=[]
def func():
for item in list1:
list2.append(item+10)
print(list2)
func()
# 简便方式
print(list(map(lambda w:w+10,list1)))
三、变量
1、概述
全局变量:在一个python文件中定义的变量
局部变量:在一个函数中定义的变量
# 全局变量 name='wp' def func(): # 局部变量 name='wp' print(name)
2、优先级
1、在python文件中,调用变量,全局变量优先级是高于局部变量
2、在函数内部调用变量,局部变量的优先级是高于全局变量的
3、如果在函数内部想引用全局变量,那么使用关键字:global
name='王潘' def func(): global name print(name) func()
四、函数异常逻辑处理
try:
expect:
else:
finally
2、异常顺序
1、正常逻辑:try——else——finally
先执行try,之后执行else,最后执行finally,后两个可以填写也可以不填写
2、异常逻辑:try——except——finally
先执行try。但异常逻辑中当try不可执行中,就跳过执行expect捕获异常原因,最后执行finally。其中try和expect必须填写,finally可以填写也可以不填写
3、实战练习
五、模块和包
1、概述
1.1、模块:在python中,每一个python文件都是一个模块(module)。
1.2、包(package):在一个包里面会有很多模块。
1.3、包与文件夹的区别:包里面有_init _.py文件;文件夹里没有
2、如何创建包和模块
2.1、创建包——如下图:包中有小孔
包里面有_init _.py文件
2.2、创建文件夹——如下图
3、模块间的调用
一个模块调用另一个模块中的所有的内容,前提是另一个模块是一个包中的,用的是from (包的位置).package.module import *(*代表所有内容)
name='this is a python' def func(): print('this is a login module')
from login.f1 import * print(name) func()