资讯专栏INFORMATION COLUMN

python学习笔记-定义函数

CoderStudy / 3504人阅读

摘要:空函数如果想要定义一个什么都不做的函数,那么可以用语句。为函数添加参数检查我们对作一些改写。此时调用函数时传入错误的参数则会抛出。函数返回多个值支持返回多个值。

python中定义函数的关键词是def,例如定义一个叫my_function的函数我们可以这么定义, 其中括号内的xy为传入的参数。

def my_function():
    # function body
返回值

函数可以用关键字return返回数据。函数执行到return即返回不再执行函数。没用写return语句的函数,默认返回None
return None可以简写成return

空函数

如果想要定义一个什么都不做的函数,那么可以用pass语句。
例如

def do_nothing()
    pass

pass起的是占位符的作用。如果这个函数具体内容不需要定义就可以使用pass

参数检查

前一篇文章介绍过内置函数会对传入的参数的个数和数据类型进行检查。那么对于自定义函数,python是怎么处理的呢?
我们定义一个函数

def my_function(x,y):
    return x*y

调用:my_function(1,2,3)

报错:

Traceback (most recent call last):
  File "/Users/W/Code/Python/LearnPython/DataType.py", line 4, in 
    my_function(1,2,3)
TypeError: my_function() takes exactly 2 arguments (3 given)

调用:my_function(1,"abc")

报错:不返回错误信息。事实上我们希望my_function传入的两个参数应该是整数活着浮点数才对。

为函数添加参数检查

我们对my_function作一些改写。

def my_function(x, y):
    if not (isinstance((x,y),(int,float)) and isinstance(y,(int,float))):
        raise TypeError("Bad operand type")
    return x*y

此时调用my_function函数时传入错误的参数则会抛出TypeError

函数返回多个值

Python支持返回多个值。Python其实是通过返回一个tuple实现的。
我们可以通过简单的demo验证:

def func():
    return 2, 3
print func()

则会输出(2,3)这么一个tuple。
在语法上,返回一个tuple可以省略括号,即多个变量可以同时接收一个tuple,按位置赋给对应的值。例如
x,y = func()

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

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

相关文章

  • python学习笔记 函数

    摘要:一等函数在中,函数是一等对象。匿名函数关键字在表达式内创建匿名函数然而,简单的句法限制了函数的定义体只能使用纯表达式,即函数的定义体中不能赋值,不能使用等语句。匿名函数适合用于作为函数的参数 一等函数 在python中,函数是一等对象。编程语言理论家把一等对象定义为满足以下条件的程序实体: 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传给函数 能作为函数的返回结果 在p...

    Scorpion 评论0 收藏0
  • Python装饰器学习笔记

    摘要:前言最近跟着流畅的和学习,看到装饰器部分,有些头大倒不是因为概念难以理解,而是书和网上文章中有些地方有些矛盾之处在简单学习和实践之后,整理出我对装饰器的理解如下装饰器的定义在不同语境下,装饰器有不一样的含义,我大致认为有种定义一种把另一个对 前言 最近跟着《流畅的Python》和《Python Cookbook》学习,看到装饰器部分,有些头大倒不是因为概念难以理解,而是书和网上文章中有...

    Cristalven 评论0 收藏0
  • python学习笔记- python中的类

    摘要:是一个类型是一个的实例,那么他是一个类型。那么我们自定义类一直数据类型叫,包含了年龄性别各科成绩等。我们自己将这一类数据归纳成一种数据类型叫做。在用创建类的时候,接收三个参数,要创建的类名要继承的父类,用一个表示。 动态语言与静态语言的最大的不同就是,函数和类的定义,不是在编译的时候创建的,而是在运行的时候创建的。例如我们写了一个叫demo.py的模块,在里面定义了一个类: class...

    Mr_zhang 评论0 收藏0
  • python学习笔记之一(.py文件里输入中文报错)

    摘要:定义默认参数要牢记一点默认参数必须指向不变对象尾递归调用函数本身,但是的返回值不包含表达式。而尾指针相当于把常规的递归反过来,增加一层递归的同时释放前一个递归指针,所以能够始终保持只有一个栈帧在使用中。 教程 1、python大小写敏感 如果字符串里面有很多字符都需要转义,就需要加很多,为了简化,Python还允许用r表示内部的字符串默认不转义 >>> print ...

    heartFollower 评论0 收藏0
  • python学习笔记-类和实例

    摘要:面向对象最重要的概念应该就是类和实例了。记得以前学习的时候,有一个比较简单的例子来解释类和实例。构造函数类中可以定义一个构造函数。构造函数的意思就是类在创建的时候会执行的函数。在实例中通过构造函数添加的或者在类外动态添加的属性可以。 面向对象最重要的概念应该就是类(class)和实例(instance)了。记得以前学习java的时候,有一个比较简单的例子来解释类和实例。在汽车制造过程中...

    Richard_Gao 评论0 收藏0

发表评论

0条评论

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