python3 基础 廖雪峰教程笔记-2 函数

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167832686474803d3d2b7d4d6499cfd093dc47efcd0001.函数    Python内置了很多有用的函数,我们可以直接调用。        要调用一个函数,需要知道函数的名称和参数

https://docs.python.org/3/library/functions.html                  Built-in Functions(内置函数)            abs()  dict() help() min()  setattr()            all()  dir()  hex()  next() slice()            any()  divmod()   id()   object()   sorted()            ascii()    enumerate()    input()    oct()  staticmethod()            bin()  eval() int()  open() str()            bool() exec() isinstance()   ord()  sum()            bytearray()    filter()   issubclass()   pow()  super()            bytes()    float()    iter() print()    tuple()            callable() format()   len()  property() type()            chr()  frozenset()    list() range()    vars()            classmethod()  getattr()  locals()   repr() zip()            compile()  globals()  map()  reversed() __import__()            complex()  hasattr()  max()  round()            delattr()  hash() memoryview()   set()2.定义函数    1)定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,        然后,在缩进块中编写函数体,函数的返回值用return语句返回            def my_abs(x):                if x >= 0:                    return x                else:                    return -x    2) 返回值        函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。          因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。        如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。

return None可以简写为return。

3.空函数    1)如果想定义一个什么事也不做的空函数,可以用pass语句:        def nop():             pass    2)pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,        比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。        缺少了pass,代码运行就会有语法错误。

4.参数检查    1)调用函数时,如果参数个数不对,Python解释器会自动检查出来,并抛出TypeError:        >>> my_abs(1, 2)        Traceback (most recent call last):          File "<stdin>", line 1, in <module>        TypeError: my_abs() takes 1 positional argument but 2 were given

2)但是如果参数类型不对,Python解释器就无法帮我们检查。试试my_abs和内置函数abs的差别:        >>> my_abs(‘A‘)        Traceback (most recent call last):          File "<stdin>", line 1, in <module>          File "<stdin>", line 2, in my_abs        TypeError: unorderable types: str() >= int()        >>> abs(‘A‘)        Traceback (most recent call last):          File "<stdin>", line 1, in <module>        TypeError: bad operand type for abs(): ‘str‘    3)当传入了不恰当的参数时,内置函数abs会检查出参数错误,而我们定义的my_abs没有参数检查,        会导致if语句出错,出错信息和abs不一样。所以,这个函数定义不够完善。            def my_abs(x):                if not isinstance(x, (int, float)):                    raise TypeError(‘bad operand type‘)                if x >= 0:                    return x                else:                    return -x

添加了参数检查后,如果传入错误的参数类型,函数就可以抛出一个错误:            >>> my_abs(‘A‘)            Traceback (most recent call last):              File "<stdin>", line 1, in <module>              File "<stdin>", line 3, in my_abs            TypeError: bad operand type

5.返回多个值    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

但其实这只是一种假象,Python函数返回的仍然是单一值:

原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,    按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

6.函数的参数
时间: 2024-10-19 17:16:32

python3 基础 廖雪峰教程笔记-2 函数的相关文章

python3 基础 廖雪峰教程笔记-4

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318447437605e90206e261744c08630a836851f51830001.模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里. 在Python中一个.py文件就称为一个模块 模块的好处: 1.大大提高代码的可维护性 2.一个模块编写完毕,可以被其他模块引用 3.使用模块还可以避免函数

python3 基础 廖雪峰教程笔记-3

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317568446245b3e1c8837414168bcd2d485e553779e000 在Python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好. 基于这一思想,我们来介绍Python中非常有用的高级特性,1行代码能实现的功能, 决不写5行代码.请始终牢记,代码越少,开发效率越高.高级特性

廖雪峰教程笔记:js中map和reduce的用法

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4,

javascript学习笔记(一)-廖雪峰教程

一. 基础 1.for in,for of和forEach 遍历的是对象的属性,由于数组也是对象,其内部的元素的索引就是其属性值,用该方式遍历数组就是获取了数组中的每一个元素的索引值(从0开始). 而for of 则是直接遍历集合中的元素值本身.map.set和array都属于iterable类型的数据,都可以用for of来遍历: var oMap = new Map([['anna',1],['mike',2],['betty',3]]); for(var x of oMap){ alert

python廖雪峰教程 学习笔记

如何用字符来描述字符: \d匹配数字   digit \w匹配字母或数字  word \s可以匹配空格 space * 表示任意个字符, +表示至少一个字符  ?表示0个或1个字符, {n} 表示n个字符, {n,m}表示n-m个字符 .可以匹配任意字符 例如: Kongxiangyu \w{11} 如何做到更精确的匹配? 规定数字.字母或者下划线 [0-9a-zA-Z\_]可以匹配一个数字.字母或下划线 [a-zA-Z\_] ^ 表示行的开头 $ 表示行的结束 re模块 python的 r前缀

Php廖雪峰教程学习与实战

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 目录 Python教程 Python简介 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 面向对象编程 面向对象高级编程 错误.调试和测试 IO编程 进程和线程 正则表达式 常用内建模块 常用第三方模块 virtualenv 图形界面 网络编程 电子邮件 访问数据库 Web开发 异步I

廖雪峰py笔记4,循环。

for...in循环 sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum) 这段代码的意思是,提取x从in后面的列表里,一个一个提取,直达全部提取完. range函数,生成一个随机数表,语法是range(x,y,z),其中x是开始的数,z是结束的数,y是步长.注意:前闭后开,比如range(0,100)实际上是从0到99,是不包括100的,默认步长是1 list(range(5)) [0, 1, 2,

廖雪峰py笔记5之dict

dict,字典 dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95注意观察括号,与查找方法.语法要看懂,上面这段代码给dict放入数据是是初始化指定放入的. 把

廖雪峰Python笔记

△命令行模式和Python交互模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:\>:在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>.在Python交互模式下输入exit()并回车,就退出了Python交互模式,并回到命令行模式. △Python文件名只能是英文字母.数字和下划线的组合.(但是实践证明中文也是可以的,但是不建议.)print()会依次打印每