Python3.30
函数的返回值
1、一个函数,不管是否有return,它都有返回值,如果没有return,它的返回值是None
2、如果有return,函数的返回值是return后面的内容,切记:return 后面的代码是不能够执行的
函数返回值的价值是:把函数与函数能够建立一层关联关系
# 函数的返回值案例
def zhihulogin(username='zhanghong',password='78658'):
if username=='zhanghong'and password=='78658':
return '您已登陆成功,欢迎使用'
else:
return '用户名或密码错误,请重新登陆'
def profile(sessionid):
if sessionid=='您已登陆成功,欢迎使用':
print('登陆成功')
else:
print('登陆失败')
profile(sessionid=zhihulogin())
全局变量与局部变量:
全局变量:在一个Python文件中定义的变量
局部变量:在一个函数中定义的变量
优先级:
1、在Python文件中,调用变量,全局变量,全局变量优先级是高于局部变量的
2、在函数内部调用变量,局部变量的优先级是高于全局变量的
3、如果在函数内部想引用全局变量,那么使用关键字global--引用
# 全局变量优先于局部变量
name='zhanghong'
def func():
name='张红'
print(name)

#局部变量优先于全局变量
name='zhanghong'
def func():
name='张红'
print(name)
func()

内部函数:
# chr:数字转之母 只能转97-122之间的数字
print(chr(98))

# # ord:字母转数字
print(ord('z'))

# 获取这个范围里面的数字 如果是一个数字从0开始一直到这个数字的前一位,如果是2个数字,包前不包后
for item1 in range(5):
print(item1)

for item in range(1,5):
print(item)

# random这个是个库,库是需要导入的导入的关键是 import
import random
# 这个是指在1-100之间(包含1和100)随机输出一个数字(这个数字是整)
print(random.randint(1,100))

# 随机输出一个4位数的验证码
import random
list2=[]
for i in range(4):
# 随机输出97-122之间4位数放在r中
r=random.randint(97,122)
# 对r中的4位数转化成字母,添加在list2列表中
list2.append(chr(r))
#把列表中的数组格式转化为字符串的格式,然后输出
print(' '.join(list2))

str1='5+4'
# eval:表达式的转化,输出表达式的结果
print(eval(str1))

lambda:匿名函数---指的是它是一个函数,但是这个函数的名称可以是自定义的
# for example:
# a=lambda x,y:x+y
# :左边是参数的形式参数
# :右边是函数的表达式
# 相当于把多行函数 用1行写了
add=lambda x,y:x+y
print(add(2,8))
过滤函数:filter()--数据有序才能过滤
1、过滤对象,但是没有()
2、可迭代对象(可以被循环)
下列是常规的在这个列表中取出大于2的数
list1=[1,2,3,4,5,6,7,8]
list2=[]
def func():
for item in list1:
if item>2:
list2.append(item)
print(list2)
func()

以上问题的第二种方式:
list1=[1,2,3,4,5,6,7,8]
print(list(filter(lambda x:x>2,list1)))

第三种
list1=[1,2,3,4,5,6,7,8]
def func(a):
if a>2:
return True
print(list(filter(func,list1)))

map:针对所有对象同样的操作:
1、函数对象
2、可迭代对象
常规的对数组中的每个元素都添加10
list1=[1,2,3,4,5,6,7,8]
list3=[]
def func():
for i in list1:
list3.append(i+10)
print(list3)
func()

用map对数组中的每个元素都添加10
list1=[1,2,3,4,5,6,7,8]
print(list(map(lambda x:x+10,list1)))

异常处理:
异常的父类是BaseException
关键字:try: expect: else:finally
异常顺序:
1、正常逻辑:try---else---finally
2、异常逻辑:try---except---finally
#异常处理
def func(a,b):
try:
print(a/b)
# 这个过程叫捕获异常, 不管有什么异常都用这个捕获,如果是2个捕获与优先执行第一个,第二个不执行
except Exception as e:
# 这个是捕获异常的详细信息,.args[0]这个是官方的
print(e.args[0])
else:
print('try没有问题输出我')
finally:
print('无论咋样都输出我')
func(a=1,b=1)

while True:
try:
score=int(input('请输入学生成绩:\n'))
if score < 60:
print('差劲')
elif score >= 60 and score <=80:
print('成绩良好')
elif score >= 80 and score <= 90:
print('成绩优秀')
elif score >= 90 and score <= 100:
print('成绩很优秀')
# continue 什么都不写 但是想要程序继续
elif score==150:
break
else:
break
except Exception as e:continue

模块:
1、在Python中,每个Python文件都是一个模块(module)
2、包(package):在一个包里面有很多模块
3、包与文件夹的区别:
(1)包里面有_init_.py文件,文件夹没有
(2)包有洞,文件假没有
一个模块调用另外一个模块的文件的变量以及函数--不同包下面的模块可以 文件夹不可以
from package.module imput *
package:包的名称 module:模块的名称 *模块里面的所有东西
首先新键一个包:python package 新建一个包(起名为login,再在login这个包里键一个f1模块--这个可以自由取 这个只是方便下面的案例

在f1中输入代码: (这个可以自由输入)
name='this is a python'
def func():
print('this is a login module')
然后在你当前页面调用(只要是不同的模块都可以这样调用)
from login.f1 import *
print(name)
func()


全局变量与局部变量:
浙公网安备 33010602011771号