Python学习笔记__2.2章 定义函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记__2.2章 定义函数相关的知识,希望对你有一定的参考价值。

# 这是学习廖雪峰老师python教程的学习笔记

1、定义函数

定义一个函数需要有函数名、参数、函数体。函数体中最好还有 传入的参数判断

 

1.1、函数创建

定义一个函数用def,数据类型检查用isinstance。例子如下:

def my_abs(x):

    if not isinstance(x, (int, float)):    # 判断传入的参数,是否是 ××× 或 浮点形

        raise TypeError('bad operand type')  #  抛出错误

    if x >= 0:

        return x

    else:

        return -x

 

1.2、空函数创建

如果想定义一个什么事也不做的空函数,可以用pass语句

def nop():

    pass

pass语句什么都不做。在没想好代码怎么写时,用作占位符

 

1.3、函数的导入

用 import 可以从写好的.py 脚本中导入函数,也可导入系统的自带模块,以使用该模块里的函数

 导入系统模块

import math

导入 math模块后,我们就能用math.sqrt()函数

 从.py脚本导入(文件名不写后缀)

form test import quadratic

从test文件中,导入quadratic 函数

 

1.4、函数返回多个值

 定义函数

import math

 

def move(x, y, step, angle=0):

    nx = x + step * math.cos(angle)

    ny = y - step * math.sin(angle)

    return nx, ny

 调用

>>>x, y = move(100, 100, 60, math.pi / 6)

>>>print(x, y)

151.96152422706632 70.0

 解释

>>>r = move(100, 100, 60, math.pi / 6)

>>>print(r)

(151.96152422706632, 70.0)

返回的多个函数值,其实是一个tuple,在语法上,返回一个tuple可以省略括号

 

1.5、总结

定义函数时,需要确定函数名和参数个数;

 

如果有必要,可以先对参数的数据类型做检查;

 

函数体内部可以用return随时返回函数结果;

 

函数执行完毕也没有return语句时,自动return None。

 

函数可以同时返回多个值,但其实就是一个tuple。

 

2、例子

定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:

ax2 + bx + c = 0 的两个解。

提示:计算平方根可以调用math.sqrt()函数:

 

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import math

 

def quadratic(a,b,c):

    n = b*b - 4*a*c  # b*b == b**2。可类推 b**3,b**4 …..

    if n<0:

        print('无实解')

    elif n==0:

        x= -b/(2*a)

        return x

    else:

        x1=(-b + math.sqrt(n))/(2*a)

        x2=(-b - math.sqrt(n))/(2*a)

        return x1,x2

 

 

以上是关于Python学习笔记__2.2章 定义函数的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记__2.1章 调用函数

Python学习笔记__4.1.3章 sorted

Python学习笔记__2.3章 函数的参数

Python学习笔记__7.1章 使用__slots__

Python学习笔记__4.4章 装饰器(添加额外功能)

Python学习笔记__12.2章collections