美文网首页
06-Python之路-进阶-函数进阶

06-Python之路-进阶-函数进阶

作者: 程序记录日志 | 来源:发表于2022-04-25 22:15 被阅读0次

函数和返回值

作用

  • 函数根据有没有参数以及有没有返回值,可以相互组合,一个四种组合形式:(无参数、无返回值),(有参数、有返回值),(有参数、无返回值),(有参数、有返回值)
  • 定义函数时,是否接收参数,或者是否返回结果,是根据实际功能需求决定的
  • 如果函数内部处理的数据不确定,可以接收外部数据以参数形式传递到函数内部
  • 如果希望一个函数执行完,向外界发送结果,可以增加返回值

不可变和可变参数

  • 无论传递的参数是可变还是不可变只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用。如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同样会影响到外部数据

缺省参数

  • 定义函数时,可以给某个参数指定一个默认值,具有默认值的参数就叫做缺省参数,调用函数时,如果没有传入缺省参数的值,则在函数内部使用定义函数时指定参数的默认值。将常用的参数设置缺省值,从而简化函数的调用

注意事项

定义

  • 必须保证带有默认值的缺省参数在参数列表末尾

调用带有多个缺省参数的函数

  • 在调用函数时,如果有多个缺省参数,就需要指定参数名

多值参数

定义

  • 一个函数能够处理的参数个数是不确定的,这时候就可以使用多值参数

多值参数

  • 参数名前增加一个*可以接受元组
  • 参数名前增加两个*可以接受字典

多值参数习惯名字

  • *args存放元组参数,
  • **kwargs存放字典参数
  • args是arguments缩写,有变量的含义,kw是keyword的缩写,kwargs可以记忆键值对参数

字典和元组的拆包

  • 在调用带有多值参数的函数时,如果希望将一个元组变量,直接传递给args将一个字典变量,直接传递给kwargs就可以使用拆包,简化参数的传递。
  • 拆包方式是:在元组变量前,增加一个*在。字典变量前,增加两个*

递归

  • 函数调用自身的编程技巧称之为递归
  • 一个函数内部调用自己。函数内部可以调用其他函数,也可以在函数内部调用自己

代码特点

  • 函数内部的代码是相同的,只是针对参数不同,处理结果不同
  • 当参数满足一个条件时,函数不再执行

内置函数(Python 3.10.4)

  • abs(x):返回一个数的绝对值。参数可以是整数、浮点数或任何实现了abs()的对象。如果参数是一个复数,则返回它的摸
  • aiter(async_iterable):返回asynchronous的asynchronous iterator。相当于调用x.__aiter__()
  • all(iterable):如果iterable的所有元素均为真值(或可迭代对象为空),则返回True
  • any(iterable):如果iterable的任意元素为真值,则返回True。如果可迭代对象为空,则返回False
  • ascii(object):与repr()类似,返回一个字符串表示对象的可打印形式,但在repr()返回的字符串中,非ASCII字符会用\X、\u、\U进行转义
  • bin(x):将整数变为以"0b"前最的二进制字符串,如果不是int对象,必须定义index()方法
  • class bool([x]):返回布尔值,True或者Flash
  • breakpoint(*args,**kws):该函数会在调用时将你陷入调试器中
  • class bytearray([source[,encoding[,errors]]]):返回一个新的bytes数组。bytearray类是一个可变序列,包含范围为0 <= x < 256 的整数
  • class bytes([source[,encoding[,errors]]]):返回一个新的bytes对象,这是一个不可变序列,包含范围0 <= x < 256的整数
  • callable(object):如果参数object是可调用的就返回True,否则返回False。
  • chr(i):返回Ubicode码位为整数i的字符的字符串格式
  • @classmethod:把一个方法封装成类方法
  • compile(source,filename,mode,flags=0,dont_inherit=False,optimize=-1):将source编译成代码或AST对象,filename实参需要是代码读取的文件名,mode实参指定了编译代码必须用的模式,可选参数flags和dont_inherit控制应激活哪个funture特性,optimize实参指定编译器的优化级别,默认值-1选择与解释器的-0选项相同的优化级别
  • class complex([real[,imag]]):返回值为real+imag*1j的复数,或将字符串或数字转换为复数
  • delattr(object,name):setattr()相关的函数。实参是一个对象和一个字符串
  • class dict(**kwarg):创建一个新的字典,dict对象是一个字典类
  • dir([object]):如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表
  • divmod(a,b):以两个(非复数)数字为参数,在做整数除法时,返回商和余数
  • enumerate(iterable,start=0):返回一个枚举对象。iterable必须是一个序列,或iterator,或其他支持迭代的对象
  • eval(expression[,globals[,locals]]):实参是一个字符串,以及可选的globals和locals.globals实参必须是一个字典。locals可以是任何映射对象
  • exec(object[,global[,locals]]):如果省略了可选部分,代码将运行于当前作用域中。如果只提供globals,则必须为字典对象(而不能是字典的子类),同时用于存放全局和局部变量。如果提供globals和locals,则将分别用于全局变量和局部变量。locals可以是任意字典映射对象
  • filter(function,iterable):用iterable中函数function返回元素,构建一个新的迭代器
  • class float([x]):返回从数字或字符串x生成的浮点数
  • format(value[,format_spec]):将value转换为格式化后的形式,格式由format_spec进行控制
  • class frozenset([iterable]):返回一个新的frozenset对象,它包含可选参数iterable中的元素
  • getattr(object,name[,default]):返回对象命名属性的值。name必须是字符串如果该字符串是对象的属性之一,则返回该属性的值
  • globals():返回实现当前命名空间的字典
  • hasattr(object,name):该实参是一个对象和一个字符串。如果字符串是对象的属性之一的名称,则返回True,否则返回False
  • hash(object):返回该对象的哈希值(如果存在)。哈希值是整数。它们在字典查找元素时用来快速比较字典的键
  • help([object]):启动内置的帮助系统(此函数主要在交互式使用)
  • hex(x):将整数转换为以“0x”为前缀的小写十六进制字符串。如果不是int对象,则必须定义返回整数的index()方法
  • id(object):返回对象的“标识值”。该值是一个整数,在此对象的生命周期中保证是唯一且恒定的。两个生命周期不重叠的对象可能具备相同的id()值
  • input([prompt]):如果存在prompt实参,则将其写入标准输出,末尾不带换行符
  • class int([x,base=10]):返回一个基于数字或字符串x构造的整数对象,或者在未给出参数时返回0
  • isinstance(object,classinfo):如果object参数是classinfo参数的实例,或其(直接、间接或virtual)子类的实例,则返回True.如果object不是给定类型的对象,则返回False
  • issubclass(class,classinfo):如果class是classinfo的子类,则返回True
  • iter(object[,sentinel]):返回一个迭代器对象
  • len(s):返回对象的长度(元素个数)
  • class list([iterable]):list是一种可变序列类型
  • locals():更新并返回表示当前本地符号表的字典
  • map(function,iterable,...):返回一个将function应用于iterable中每一项并输出其结果的迭代器
  • max(iterable,*[,key,default]):返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的
  • min(iterable,*[,key,default]):返回可迭代对象中最小的元素,或者返回两个及以上实参最小的
  • next(iterator[,default]):通过调用其next()方法从迭代器中检索下一项
  • class object():返回一个不带特征的新对象。ibject是所有类的基类
  • oct(x):将一个整数转变成一个前缀为“0o”的八进制字符串
  • open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None):打开file并返回对应的file object
  • ord(c):对表示单个Unicode字符的字符串,返回代表它 Unicode码点的整数
  • pow(base,exp[,mod]):返回base的exp次幂,如果mod存在,则返回base的exp次幂对mod取余
  • print(*objects,sep=' ',end='\n',file=sys.stdout,flush=False):将object打印输出至file指定的文本流
  • class property(fget=None,fset=None,fdel=None,doc=None):返回property的属性。fget是获取属性值的函数。fset是用于设置属性值的函数。fdel是用于删除属性值的函数。并且doc为属性对象创建文档字符串
  • class range(start,stop[,step]):range是一个不可变的序列类型
  • repr(object):返回对象可打印形式的字符串
  • reversed(seq):返回一个反向的iterator
  • round(number[,ndigits]):返回number舍入到小数点后ndigits为精度的值
  • class set([iterable]):返回一个新的set对象,可以选择带有从iterable获取的元素
  • setattr(object,name,value):函数与getattr()相对应。其参数为一个对象、一个字符串和一个任意值
  • class slice(start,stop[,step]):返回一个slice对象,代表由range(start,stop,step)指定索引值的切片。其中参数start和step默认值为None
  • sorted(oterable,/,*,key=None,reverse=False):根据iterable中的项返回一个新的已排序列表
  • @staticmethod:将方法转换为静态方法
  • class str(object=b' ',ending='utf-8',errors='strict'):返回一个字符串
  • sum(iterable,/,start=0):从start开始自左向右对iterable的项求和并返回总计值。iterable的项通常为数字,而start值则不允许为字符串
  • class **super([type[,object-or-type]]):返回一个代理对象,它会将方法调用委托给type的父类或兄弟类
  • class tuple([iterable]):tuple是一个不可变的序列类型
  • class type(name,bases,dict,**kwds):传入一个参数时,返回object的类型。返回值是一个type对象,通常与object.class所返回的对象相同
  • vars([object]):返回模块、类、实例或任何其他具有dict对象的属性
  • zip(*iterables,strict=False):在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成的元组
  • import(name,globals=None,locals=None,fromlist=(),level=0):此函数由import发起调用。

相关文章

  • 06-Python之路-进阶-函数进阶

    函数和返回值 作用 函数根据有没有参数以及有没有返回值,可以相互组合,一个四种组合形式:(无参数、无返回值),(有...

  • Kotlin 进阶之路 目录

    Kotlin 进阶之路 目录 Kotlin 进阶之路1 基础语法Kotlin 进阶之路2 集合类型Kotlin 进...

  • 2018我的技术进阶之路

    2018我的技术进阶之路 2018我的技术进阶之路

  • Kotlin 进阶之路3 控制流与函数

    Kotlin 进阶之路 目录 1.控制流 2.函数 3.初识lambda与高阶函数

  • android进阶之路精简版

    《android进阶之路精简版》 转载注明出处: android进阶之路精简版

  • Kotlin 进阶之路9 高阶函数

    Kotlin 进阶之路 目录 高阶函数的基本概念 传入或者返回函数的函数 函数引用 ::println 带有Rec...

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • Python函数高阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • 17 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

网友评论

      本文标题:06-Python之路-进阶-函数进阶

      本文链接:https://www.haomeiwen.com/subject/yjvqyrtx.html