Python中的函数接口与面向对象的三要素

一、Python中的函数

1.函数定义

格式:def 函数名(形式参数列表):
                   函数体
示例:

# 定义了 x  y 相加的函数   
def add(x, y):
    
    return x + y       

2.函数调用

格式:函数名(实际参数)

question: 实际参数与形式参数的关系?
answer: 形式参数是实际参数的一份临时拷贝

3.函数参数

①缺省参数:给形式参数一个默认值,当形式参数没有被传递的时候,会默认使用缺省值.

示例:

# 自我介绍函数
def info(name, age=18):

    print("my name is {}, age is {}".format(name, age))

info("小白")
info("李雷",5)

"""
运行结果:
my name is 小白, age is 18
my name is 李雷, age is 5
注意: 
    缺省值 必须从右往左一次填写.
"""

②不定长参数

        * :将多余的参数打包成元组使用
        ** : 将键值对儿类型元素打包成字典

示例:

# 自我介绍函数
def show(name, age, *hobby, **family):   # *将多余的参数打包成元组  **将参数打包成字典使用
    print("my name is ", name)
    print("age is ", age)
    print("hobby :", hobby)
    print("family :", family)

show("妮妮", 5, "超真实办家家酒", )
print("-----------------------------------")
show("野原新之助", 5, "动感超人", "娜娜子", "风间彻", father="野原广志", mother="野原美呀")

4.局部变量与全局变量

局部变量: 函数内部定义的变量
全局变量: 函数外部定义的变量

在函数内部修改全局变量的值:global var

示例:

money = 10

def set_money():
    global money # 声明使用全局变量的money
    money = 20

set_money()
print(money)  # 20

5.函数的返回值

python 语言中支持一个函数返回多个值.

格式 :def 函数名():
                    函数体
                    return value1, value2, value

示例:

def operation(x, y):
    add = x + y
    sub = x - y
    mul = x * y
    div = x / y
    return add, sub, mul, div
add, sub, mul, div = operation(10, 20)
print(add)  # 30
print(sub)  # -10
print(mul)  # 200
print(div)  # 0.5

6.递归函数

定义:在运行过程中,函数调用函数本身. 递归是把大问题分解成一个一个的小问题.

要求:需要有结束条件,且每递归一次都要向结束条件靠近.

使用原则:能想得到,并且不会对时间,空间造成太大的影响的时候就是用递归. 想不到就不用.

示例:

# 实现一个阶乘的计算.

def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)

ret = factorial(1500)
print(ret)

7.匿名函数

定义:函数本身没有名字,是一些轻量级的函数类别的 C语言中的 回调函数.

格式:lambda 形式参数列表: 函数体

示例:

# 定义两个数相加的匿名函数
sum = lambda x, y: x + y
print(sum(10, 20))  # 30

应用:排序(匿名函数指定比较方法)

stus = [
    {"name": "zhangsan", "age": 18},
    {"name": "lisi", "age": 19},
    {"name": "wangwu", "age": 17}
]
stus.sort(key = lambda x : x["name"])
print(stus)
#结果:[{'name': 'lisi', 'age': 19}, {'name': 'wangwu', 'age': 17}, {'name': '
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值