函数返回值、变量和异常逻辑处理

一、函数返回值

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:匿名函数

他是一个函数,但是名称可以自定义

# 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()

1、函数对象,但是没有()

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()

 

四、函数异常逻辑处理

1、异常的父类是BaseException

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()

 

 

 

 

posted @ 2022-03-30 20:11  棠小梨  阅读(94)  评论(0编辑  收藏  举报