python之函数

161 阅读2分钟
  1. 函数是组织好的,可重复使用的,用来实现特定功能的代码片段。函数声明完成之后,必须调用才会执行,使用函数名(参数) 调用,如果函数定义有参数,则必须传参数,没有则不需要传。 语法:
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)
  1. 实现两数相加:
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)
  1. 函数如果没有返回值会返回一个特殊的字面量:none,类型是 <class "NoneType">, 函数返回none表示没有返回有意义的内容,返回了空的意思。
def say_hellow():
    print("hellow!")


str = say_hellow()
print(str)  # None
print(type(str))  # <class 'NoneType'>
  1. 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("你不是小孩,你是哥们")
  1. 函数嵌套:
def fun_a():
    print(2)

def fun_b():
    print(1)
    fun_a()
    print(3)

fun_b()
  1. 函数的作用域:函数的作用域指的是变量的作用范围,在哪里可用,在哪里不可用。主要分为全局作用域和局部作用域。
  • 全局变量就是在函数体内外都可以使用的变量
  • 局部作用域则表示在函数内部使用的变量,只在函数体内部生效。作用:临时保存变量,当函数调用完成后,则销毁局部变量
def text():
    name = "王拿铁"
    print(name)
text()
print(name) # 报错:NameError: name 'name' is not defined
  1. 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