Python基础函数

一、什么是函数

函数是最基本的一种代码抽象的方式,是组织好的可重复使用的,用来实现单一或相关联功能的代码段。

函数是对做相似的事情或相似的动作进行封装,它能提高应用的模块性和代码的重复利用率。我们要封装好一个函数,首先要学会对事务进行抽象,抽象是数学中非常常见的概念。

举个例子:

计算阶乘,比如:1 *2 * 3 * ... * 10,写起来十分不方便,我们为了简便可以写成10!。再如求和公式  等同于1 + 2 + 3 + ... + 100;

抽象非常强大,借助抽象,我们不用关心底层的具体计算过程,而直接在更高的层次上思考问题。

写计算机程序也是一样,函数就是最基本的一种代码抽象的方式。

Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用,如 print() 能输出任何对象,len()能计算不同类型对象的长度。

二、函数的定义

定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

定义函数格式:

def   函数名(参数1,参数2,....):
         函数体
        return  返回值

示例:求两个数的最大值

# 定义一个函数,接收两个参数,返回其最大值
def max(a, b):
    if a >= b:
        return a  # 返回a
    else:
        return b  # 返回b  
注意:函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。
如果没有return语句,函数执行完毕后会返回None

示例2 :一元二次方程求解 

def quadratic_equation(a, b, c):
    import math
    t = math.sqrt(b * b - 4 * a * c)
    v1 = (-b + t) / (2 * a)
    v2 = (-b - t) / (2 * a)
    return v1, v2

print(quadratic_equation(4, -5, 0))
print(quadratic_equation(1, -12, 6))
注意:函数可以返回多个值,它返回值是个元组

示例3:一元二次方程求解 , 需要考虑到多种情况 a=0 和 

def quadratic_equation(a, b, c):
    if a == 0:  # a 为0时只有一个值
        return -c / b
    else:
        import math
        t = math.sqrt(b * b - 4 * a * c)
        if t == 0:  # △=0 时也只有一个值
            return -(b / (2 * a))
        else:
            v1 = (-b + t) / (2 * a)
            v2 = (-b - t) / (2 * a)
            return v1, v2


print(quadratic_equation(0, -5, 1))
print(quadratic_equation(5, 10, 5))
print(quadratic_equation(1, -12, 6))

三、函数调用

Python内置了很多有用的函数,我们可以直接调用。

要调用一个函数,需要知道函数的名称和参数,比如求长度函数len(),它接收一个参数。

调用内部函数len()示例:

lenght=len('abcdefj')  # 使用变量接收函数返回值
print(lenght)  # 结果 7
len([1, 2, 3, 4], 'abc')  # 函数的参数类型或者参数数量不正确会抛出 TypeError 错误
注意:调用函数式我们传入的参数数量或者类型不正确会抛出 TypeError 错误

调用外部函数示例:

def max(a, b):
    if a >= b:
        return a  # 返回a
    else:
        return b  # 返回b

c = max(4, 5)  # 调用max函数
print(c)  # 打印结果5
print(max('A', 'a')).

四、Python带默认参数的函数

定义函数时我们可以给参数传递默认值,当调用函数时没有传递该参数的值时使用默认值。

带默认值的参数称为默认参数,而无默认值的参数为必需参数;函数调用时必需参数必填,默认参数选填。

默认参数只能定义在必需参数的后面。

示例1:

def power(x, n=2):  # n有默认值
   return x ** n

print(power(5))  # 调用函数不传递n的值,使用默认值,结果为25
print(power(3, 3))  # 调用函数传递n的值,使用传递值,结果为27
注意:由于函数的参数按从左到右的顺序匹配,所以 默认参数只能定义在必需参数的后面

示例2:

带多个默认参数函数的调用,注意最后。

def per_info(name, sex='男', age=32):
   print(name, sex, age)

per_info('woodman')
per_info('Helen', '女')
per_info('Bobo', age=28)  # 要用后面的默认参数,需要给出参数名
per_info(age=28, sex='女', name='Baby')  # 使用参数名传递参数,对参数位置没要求

tuple = ('Peter', '男', 45)
per_info(*tuple)  # 要将列表或元组中值当参数传入函数,我们可在前面加上*
注意:第6行Bobo的代码, sex参数使用默认值,我们需要传递age参数时需要指定参数名;
第7行Baby代码,我们可以给所有传递值带上参数名称,带上参数名称后对参数可以在任意位置;
最后1行,在元组前加‘*’,表示将列表或元组中值当参数传入函数,注意参数的顺序和个数.
输出结果:
woodman 男 32
Helen 女 32
Bobo 男 28
Heli 女 28
Peter 男 45
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值