- 函数是组织好的,可重复使用的,用来实现特定功能的代码片段。函数声明完成之后,必须调用才会执行,使用函数名(参数) 调用,如果函数定义有参数,则必须传参数,没有则不需要传。 语法:
def 函数名(参数):
函数体,函数内逻辑
return 返回值
函数名()
用法如下:
def my_len(data):
count = 0
for item in data:
count += 1
print(f"{data}的长度是:{count}")
name = "王拿铁"
name2 = "小李"
my_len(name)
my_len(name2)
- 实现两数相加:
def addsum(num1, num2): # num1和num2称为形参,表明函数需要两个参数,多个参数之间用’,‘分隔 ,参数个数是不受限制的
return num1 + num2
print("计算完成") # return之后的代码是不会执行的
sum1 = addsum(2, 3) # 函数有返回值才可以赋值给其他变量,否则直接调用就可以
sum2 = addsum(5, 6) # 函数内部使用的num1和num2称为实参,表示函数执行的时候正在需要使用的参数值,传入的时候按照顺序依次写入
print(sum1)
print(sum2)
- 函数如果没有返回值会返回一个特殊的字面量:none,类型是 <class "NoneType">, 函数返回none表示没有返回有意义的内容,返回了空的意思。
def say_hellow():
print("hellow!")
str = say_hellow()
print(str) # None
print(type(str)) # <class 'NoneType'>
- None可用于if判断。
def check_age(age):
"""
check_age函数接收一个参数,判断是否成年
:param age: int类型,表示年龄
:return: 成年返回SUCCESS,未成年返回None
"""
if age >= 18:
return "SUCCESS"
else:
return None
isChild = check_age(20)
if not isChild: # not isChild 同等于 isChile == None
print("不是哥们,你还是小孩啊!")
else:
print("你不是小孩,你是哥们")
- 函数嵌套:
def fun_a():
print(2)
def fun_b():
print(1)
fun_a()
print(3)
fun_b()
- 函数的作用域:函数的作用域指的是变量的作用范围,在哪里可用,在哪里不可用。主要分为全局作用域和局部作用域。
- 全局变量就是在函数体内外都可以使用的变量
- 局部作用域则表示在函数内部使用的变量,只在函数体内部生效。作用:临时保存变量,当函数调用完成后,则销毁局部变量
def text():
name = "王拿铁"
print(name)
text()
print(name) # 报错:NameError: name 'name' is not defined
- global关键字,可以在函数中使用全局作用域的变量并修改。
number = 200
def fun_1():
print(number)
def fun_2():
global number # 声明number是全局变量
number = 500
print(number)
fun_1() # 200
fun_2() # 500
print(number) # 500