资讯专栏INFORMATION COLUMN

Python - 函数

fengxiuping / 2755人阅读

摘要:例如是函数的别名二函数定义语法形式定义关键字。中将函数的声明和定义视为一体,函数由声明的标题行和定义体组成。函数名参数列表函数体注意函数的返回值用关键字进行返回。中不允许在函数未声明定义前,对其进行引用或者调用。使用语句函数名。


函数,function,是一段代码的集合体。是Python为了代码最大程度的重用、减小代码冗余而提供的最基本的程序结构。
Python是一门面向对象的编程语言,对函数进行分类和封装,由对象实现对方法的调用。


一、函数调用

在此之前,我们已经接触过一部分Python的Built-in内建函数,例如abs()、max()、min()、int()等。
要实现调用一个函数,必须先知道函数的名称以及所需要的参数信息。对于内建函数,可以通过命令help(func_name)查看函数的帮助信息。
通过函数名实现调用,其中的函数名其实就是指向一个函数的对象引用,可以把函数名赋给任何一个变量,相当于给这个函数起了一个别名。
例如:

>>> a = abs    # a 是函数abs()的别名
>>> a(-1)
1
二、函数定义

语法形式

定义关键字def。Python中将函数的声明和定义视为一体,函数由声明的标题行和定义体组成。

def 函数名(参数列表):
    函数体
    return sth.

【注意】:

函数的返回值用return关键字进行返回。若没有显示的使用return,则默认返回None。

函数的返回值是一个tuple类型的值。返回一个值时,括号省略;返回多个值时,为同一个tuple接收,把位置赋给相应的值。如果要返回一个list的值,则需要显示地使用“[]”进行修改。

前向引用。Python中不允许在函数未声明定义前,对其进行引用或者调用。

【例子一】自定义一个求绝对值的函数为例:

>>> def my_abs(x):  
... if x>= 0:         
...  return x       
... else:           
...  return –x    
>>> my_abs(-3)    
3

定义一个空函数

如何定义一个空函数?使用pass关键字。
pass语句用来作为占位符。
什么时候使用呢?一般是比如说这段代码还没想好怎么写,可以使用pass让代码能运行起来。

def nop():
    pass
三、import 调用

函数定义完成后,把函数写入到***.py文件中保存。进入到该存放路径下,启动Python解释器。
使用语句“from py_file_name import 函数名”。

import 语句可以导入需要的Python模块,例如 import time;
也可以从模块中导入某部分,from time import sleep,ctime;
也可以导入某个自定义的模块或者模块中的函数等。

有时候工程模块存在层级目录结构,而只需要导入工程中下的某文件的某部分,则可以使用“.”进行导入,例如:
from 工程名层级.test_function import TestFunc

四、调用函数参数检查

调用函数时,需要对函数的参数列表进行检查。
如果参数个数不对,python解释器会自动检查出来,并抛出TypeError。但如果参数类型不对,python解释器就无法帮助检查。

内置函数

内置函数参数类型不对时:

>>> abs("a")
Traceback (most recent call last):
File "", line 1, in 
TypeError: bad operand type for abs(): "str"

自定义函数

若函数定义没有参数检查,则出错信息在下一句,与内置函数不一样,说明函数定义不够完善。

def my_abs(x):
    if x>= 0:
        return x
    else :
        return -x
>>> my_abs("a")
Traceback (most recent call last):
File "", line 1, in 
File "D:Python_project	est1.py", line 2, in my_abs
if x>= 0: (if语句报的错)
TypeError: ">=" not supported between instances of "str" and "int"

改为如下:

def my_abs1(x):  
    if not isinstance(x,(int , float )):  # 参数类型检查
        raise TypeError("not the type")    # 抛出错误并提示“not the type”
    if x >=0:
        return x
    else:
        return -x
>>> my_abs1("a")
Traceback (most recent call last):
File "", line 1, in 
File "D:Python_project	est1.py", line 11, in my_abs1
raise TypeError("not the type")
TypeError: not the type    # (错误和异常的处理)

❤ thanks for watching, keep on updating...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42318.html

相关文章

  • 100 个基本 Python 面试问题第二部分(21-40)

    摘要:为我们提供了许多内置函数,例如并提供了创建用户定义函数的能力。会将该变量视为函数级作用域中的局部变量。回到目录中函数的用途是什么是中的内置函数之一。请注意,这种类型的参数语法不允许将命名参数传递给函数。函数接受一个称为的可选参数。 ...

    2450184176 评论0 收藏0
  • 100 个基本 Python 面试问题第二部分(41-60)

    摘要:回到目录评论区抽粉丝送书啦欢迎大家在评论区提出意见和建议抽两位幸运儿送书,实物图如下开发从入门到精通内容简介案例教学。 ? 作者主页:海拥 ? 作者简介:?CSDN...

    Tikitoo 评论0 收藏0
  • Python 调用 C 动态链接库,包括结构体参数、回调函数

    摘要:调用以回调函数地址为参数的函数这个主题就稍微绕一些了,也就是说在接口中,需要传入回调函数作为参数。这个问题在中也可以解决,并且回调函数可以用定义。代码代码很简单回调函数的传入参数为,返回参数也是。 项目中要对一个用 C 编写的 .so 库进行逻辑自测。这项工作,考虑到灵活性,我首先考虑用 Python 来完成。 研究了一些资料,采用 python 的 ctypes 来完成这项工作。已经...

    NickZhou 评论0 收藏0
  • C++开发python windows版本的扩展模块示例

    摘要:主要是库文件头文件文件不一致的问题。定义模块函数其中函数参数是模块自身,是传递的参数列表,返回值定义了一个整形数,这里会申请空间增加引用计数,交由来管理这个引用。 C++开发python windows版本的扩展模块示例测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0VS版本:vs2015社区版(免费)相关工具下载:VS版本vs2015社区版(免费)...

    junfeng777 评论0 收藏0
  • C++开发python windows版本的扩展模块示例

    摘要:主要是库文件头文件文件不一致的问题。定义模块函数其中函数参数是模块自身,是传递的参数列表,返回值定义了一个整形数,这里会申请空间增加引用计数,交由来管理这个引用。 C++开发python windows版本的扩展模块示例测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0VS版本:vs2015社区版(免费)相关工具下载:VS版本vs2015社区版(免费)...

    Meathill 评论0 收藏0
  • Python 2.x 与 Python 3.x 的区别

    摘要:官方也宣布在停止对的维护。并且在很多面试过程中,面试官都会问与的区别。的版本,常被称为,或简称。与部分地支持这种形式的语法。捕获异常的语法由改为。在中,表示八进制字面量的方式只有一种,就是。已经支援新的模组。 前言 如果你是刚接触 Python 的初学者,那你可能是直接学习 Python 3.x 版本。对于 Python 2.x 的版本是不会有所接触。官方也宣布在 2020 停止对 P...

    LittleLiByte 评论0 收藏0

发表评论

0条评论

fengxiuping

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<