Python基础—— Task05 函数与Lambda表达式
1. 函数
1.1 定义函数
语法:
def 函数名(参数列表):
函数体
- 默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的
- 如果没有return 语句,会返回None;return None 简写为return
实例
def print_welcome(name):
print("Welcome", name)
def SuccessEquation(factor1, factor2):
return str(factor1 + " Plus " + factor2 + " = Success")
print_welcome("IvanZhang")
X = 'Vision'
Y = 'Endeavor'
print(SuccessEquation(X, Y))
# Welcome IvanZhang
# Vision Plus Endeavor = Success
其他:
- 空函数:用pass语句作为占位符
- 数据类型检查可以使用内置函数
isinstance()
实现;
x = 'red'
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
# TypeError: bad operand type
1.2 函数调用
1.2.1 函数调用
首先,定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
其次,python支持非常灵活定义的函数,而且本身内置了很多有用的函数
使用方法:
- 官方文档 查询
help(func)
查看对应函数func的帮助文档
“函数名其实就是指向一个函数对象的引用”,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”
f = float
print(f(1.2342342352345235234234233984028953))
# 输出 1.2342342352345235
1.2.2 函数的返回值
Sample1:
def add(a, b):
return a + b
print(add(1, 2)) # 3
print(add([1, 2, 3], [4, 5, 6])) # [1, 2, 3, 4, 5, 6]
Sample2:
def back():
return [1, 'python practice', 3.14]
print(back()) # [1, 'python practice', 3.14]
Sample3:
def back():
return 1, 'python practice', 3.14
print(back()) # (1, 'python practice', 3.14)
Sample4:
def printme(str):
print(str)
temp = printme('hello') # hello
print(temp) # None
print(type(temp)) # <class 'NoneType'>
1.2.3 变量作用域
- Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的
- 定义在函数内部的变量拥有局部作用域,该变量称为局部变量
- 定义在函数外部的变量拥有全局作用域,该变量称为全局变量
- 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问
def discounts(price, rate):
final_price = price * rate
return final_price
old_price = float(input('请输入原价:')) # 98
rate = float(input('请输入折扣率:')) # 0.9
new_price = discounts(old_price, rate)
print('打折后价格是:%.2f' % new_price) # 88.20
- 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字
num = 1
def fun1():
global num # 需要使用 global 关键字声明
print(num) # 1
num = 123
print(num) # 123
fun1()
print(num)