python笔记(三)函数的参数
来源:互联网 发布:csgo 知乎 编辑:程序博客网 时间:2024/06/03 14:16
python本身官方已经提供了很多函数,向常见的数学运算,进制转换,打印图像的操作python都已经内置了相应的API,我们使用的时候只要调API就好了,当然python更广为人知的特点是广而强大的第三方库支持。python内置了一个help()
函数。
只需要通过输入要使用的函数名字,help(fun_name),就可以查询到fun_name函数的用法。但一般是对内置的函数才有用。
python其实可以说是面向API编程,这就需要了解下常见的API调用出错的情况。
- 参数数量不对
>>> abs(1, 2)Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: abs() takes exactly one argument (2 given)
当参数的数量不对的时候
python会在最后明确指出这个函数最有多少个参数,同时用户输出(given)了几个
- 参数类型错误
>>> abs('a')Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: bad operand type for abs(): 'str'
当输入的参数类型错误的时候
python会在最后指出函数中错误的参数类型是字符串
当同时出现错误时,会优先指出参数数量错误
内置函数中有许多类型转换函数,要注意是函数不是转换符.
比如:
int('123')#字符串转intfloat('11.34')#字符串转floatstr(100)#int转字符串bool(1)#int转bool,结果为Truehex(10)#10进制int转16进制
定义函数
python中定义一个函数
一般按照如下格式:
def my_add(x,y): return x+y#def fun_name(param...): function_body return xx
返回空结果可以使用none 或者直接return。python中也有pass关键字作为空语句,pass不做任何事情
参数检查python无法为我们自动进行参数类型检查。需要我们自己去实现
可以使用内置函数isinstance()来实现检查
def my_add(x,y): if not isinstance(x,(int,float)) raise TypeError('bad operand type') elf not isinstance(x,(int,float)) raise TypeError('bad operand type') else return x+y#只允许int和float类型
多个返回值,python的函数可以返回多个值,以元组tuple
来返回。
函数的参数
python中的函数参数分为5种,必须按照声明顺序依次为:必选参数,默认参数,可变参数,命名关键字参数和关键字参数
①必选参数:就是调用时必须传入的参数这个不难理解
def my_add(x,y): return x+y
②默认参数:就是在定义函数时,我们可以在参数中填入默认值,这样当调用函数时,如果没有为默认参数传入参数,则python会使用默认值
def my_add(x,y=1): return x+y#my_add(1)#输出2
③可变参数:如果想要把函数设计成可以传入任意数量参数,可以在变量前面加一个*
比如:
def add_array(*nums): sum=0 for n in nums: sum = sum +n return sum
在调用含有可变参数的函数时,在调用时把输入参数组装为一个tuple类型,
④关键字参数:前面说到可变参数,会在函数内部组装成一个tuple类型,如果我们希望组装成一个字典(dict)类型,可以使用关键字变量,在参数前面加入**
使用如下:
def add_phone_number(**number): return numberadd_phone_number(xiaoming='156222xxxxx')#输出{'xiaoming':'156222xxxxx'}
⑤命名关键字:关键字参数可以输入任意数量的关键字参数,但如果我们希望指导传入的key有哪些,就需要在函数内部查询
比如:
def add_phone_number(**number): if 'xiaoming' in number: pass if 'xiaohong' in number: pass
总的来说
*number是可变参数,number接收的是一个tuple.
**number是关键字参数,number接收的是一个dict.
但python中习惯上对两者是有对应的命名的,*args
可变参数,**kw
关键字参数
参考资料:廖雪峰python教程
- python笔记(三)函数的参数
- Python的函数参数笔记
- python笔记5--函数的参数定义
- 学习笔记:Python函数的参数
- Python学习笔记 - 函数参数
- Python学习笔记:函数参数
- 【Python学习笔记】函数参数
- python 函数参数学习笔记
- python学习笔记12(函数三): 参数类型、递归、lambda函数
- Scala 学习笔记(三)------定义具有可变参数的函数
- [python]函数的参数
- python 函数的参数
- Python的函数参数
- Python--函数的参数
- python 函数的参数
- python--函数的参数
- Python函数的参数
- python函数的参数
- 双色Hanoi塔问题
- Twincat3
- leetcode Add to List 637. Average of Levels in Binary Tree
- C++动态规划算法之0-1背包问题
- 欢迎使用CSDN-markdown编辑器
- python笔记(三)函数的参数
- Android的工厂模式
- 电子书收藏
- cJSON的模拟实现
- linux 笔记(五)(Shell基础)
- 《程序员》2014年11月刊:电商峰值系统架构设计
- LINQ教程
- 类似淘宝页面的星星评价可复用
- 剑指offer_10 矩形覆盖