python复习之函数 function

什么是函数:

    函数是可以重复执行的语句块,可以重复使用,提高代码的重用性。

函数语法:

    def 函数名(参数列表):

        语句块

def语法说明:

    1.函数名就是语句块的名称。

    2.函数的命名规则与变量相同

    3.函数名是一个变量

    4.函数有自己的命名空间,要让函数处理外部数据需要用参数给此函数传入一些数据。

    5.函数不需要传入参数,则参数列表可以为空

    6.语句部分不能为空,如果为空需要填充pass语句

def say_hello():
    print("hello world!")

函数调用:

    函数名(实际调用传递参数)

函数的调用说明:

    函数调用是一个表达式

    没有return语句,函数执行完毕后返回None

    函数如果需要返回其他值对象需要用到return语句

def mymax(a, b):
    if a > b:
        print("a 比 b 大!")
        return a
    else:
        print(" a 小于等于 b")
        return b

mymax(100, 101)

return 语句

语法:

    return [表达式]

作用:只能在函数内部,用于结束当前函数的执行,返回到调用此函数的地方,同时返回一个值对象的引用关系

说明:

    1.return语句后跟的表达式可以省略,省略相当于 return None

    2.如果函数内没有return语句,则函数执行完最后一条语句后返回None(相当于在最后加了一条return None)

    3.函数调用只能返回一个对象引用

def myadd(x, y):
    s = x + y
    return s

a = int(input("请输入第一个数:"))  # 100
b = int(input("请输入第二个数:"))  # 200
print("您输入的两个数的和为:", myadd(a, b))

函数的参数传递:

位置传参

    实际参数的对应关系与形式参数的对应关系是以位置来依次对应的。

def myfun1(a, b, c):
    print("a 的值是:", a)
    print("b 的值是:", b)
    print("c 的值是:", c)


# 位置传参
myfun1(1, 2, 3) # 实际参数的个数必须与形式参数的个数完全相同

序列传参:

    序列的元素个数必须与参数个数相同

def myfun1(a, b, c):
    "这是一个函数参数的示例:"
    print("a 的值是:", a)
    print("b 的值是:", b)
    print("c 的值是:", c)

s1 = [11, 22, 33]
s2 = (44, 55, 66)
s3 = "ABC"

myfun1(*s1)
myfun1(*s2)
myfun1(*s3)
myfun1(*"XYZ")
# 序列的位置信息对应相应的参数位置

关键字传参:

    是指传参时,按着形参的名称给形参赋值 ,实参和形参名称进行匹配

说明:实参可以不按位置给定

def myfun1(a, b, c):
    "这是一个函数参数的示例:"
    print("a 的值是:", a)
    print("b 的值是:", b)
    print("c 的值是:", c)

myfun1(b=22, c=33, a=11)  # a->11, b->22, c->33

字典关键字传参:

    通过字典进行匹配,字典的值传递给键对应的形式参数

def myfun1(a, b, c):
    "这是一个函数参数的示例:"
    print("a 的值是:", a)
    print("b 的值是:", b)
    print("c 的值是:", c)

d1={"c": 33, "b": 22, "a": 11}
myfun1(**d1) # 11->a 22->b  33->c

说明:

    1.字典的键名和形参名必须一致

    2.字典的键名必须为字符串

    3.字典的键名要在形参中存在

可变/不可变类型的实参的参数传递的区别

传参说明:

    1.不可变类型的数据作为函数参数传入时,函数内部不会改变变量的原数据的值,是安全的

    2.可变类型的数据作为函数传入时,函数内部可以改变原数据,多用于返回更多函数执行的结果

def read_number(o, e):
    while True:
        x = int(input("请输入一个数:"))
        if x < 0:
            break
        if x % 2 == 1:
            o.append(x)
        else:
            e.append(x)


odd = []  # 奇数列表:
even = []  # 偶数列表
read_number(odd, even)
print(odd)
print(even)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值