首页 > 其他分享 >六、函数(一)

六、函数(一)

时间:2023-03-24 17:48:17浏览次数:29  
标签:函数 元组 传递 参数 实参 name

自定义函数

1.函数定义
def 函数名(<形参1>,<形参2>,<形参3>...):
  函数体
  return <表达式>
函数可以有返回值,也可以没有,没有就是返回None。当有返回值时,应该有变量接收函数的返回值。

2.参数传递
2.1不可变类型参数传递和可变类型参数的传递
数值,字符串,元组时不可变类型;
当不可变类型的数据当作参数传递时,实际传递的是值,所以当在函数内发生修改,改的是复制的对象,原值不变(类似C语言的值传递)
列表,集合,字典是可变类型
当可变类型的数据当作参数传递时,实际传递的时数据的地址,所以在函数内发生修改,则原值也被修改了(类似C语言的地址传递)

2.2位置参数
要求实参的数量,顺序必须和形参的数量,顺序一一对应。
>>> def getinfo(name,age,sex):
>>> getinfo("lily",12,"M")

2.3默认值参数
是在函数定义时给参数指定一个值,有默认值的形参必须放在形参列表的最后面。
函数调用时:该形参没有对应的实参传递,则取定义时的值;该形参有对应的实参传递,则取实参值。
>>> def getinfo(name,age,sex='M'):
>>> getinfo("lily",12)
>>> getinfo("tom",13,"F")

2.4关键字参数
是在函数调用时,一一指定形参名的值,这样就不要考虑参数传递的顺序。
>>> def getinfo(name,age):
>>> getinfo(name="tom",age=13)
>>> getinfo(age=13,name="tom")

2.5不定长参数
参数的长度可变,可以根据需要传递任意个实参。主要是元素的个数和字典的键值对。
不定长参数也必须放入位置参数,默认值参数后面。
2.5.1将元组作为不定长参数:定义时参数名前加*
>>> def findfriends(name,*fiends):
a.常量传递:
>>> findfriends("lily",'tom','jerry','lucy','bill','bruth','john') #第一个参数传给形参name,后面的都是不定长参数
b.元组传递:
>>> frs = ('tom','jerry','lucy','bill','bruth','john')
>>> findfriends(name,*frs)

2.5.2将字典作为不定长参数:定义时参数名前加**
>>> def multiargs(arg1,**args):
a.常量传递:
>>> multiargs(1,'name'='lily','age'=12) #关键字参数
>>> multiargs(1,**{'name':'lily','age':12}) #字典,**必须
b.字典传递:
>>> frs = {'name':'lily','age':12}
>>> multiargs(1,**frs)


【差异】
在定义函数时,元组类型的形式参数前是“*”,而字典类型的形式参数前是“**”;
在调用函数时,元组类型的实际参数(变量)前是“*”,而字典类型的实际参数(变量)前是“**”。
1.如果传递的实参是N个普通参数,此时实参不需要有*,则函数会把这些参数收集到一个元组里当作不定长参数处理;
2.如果传递的实参是元组/字典参数,此时实参前应该*,否则函数会把元组/字典当作普通参数处理,不会获取元组/字典里的数据。

 

 



标签:函数,元组,传递,参数,实参,name
From: https://www.cnblogs.com/twy5250/p/17252856.html

相关文章

  • override关键字表示该函数会覆盖基类中的虚函数
    override关键字表示该函数会覆盖基类中的虚函数,即在派生类中重新实现了基类中的同名虚函数。在C++中,派生类可以重载其父类的虚函数。使用override关键字可以很好地指出该......
  • 字符串操作函数
               ......
  • python函数递归例子
    tvs=["少年歌行:",['\t萧瑟:',['\t\t六皇子','\t\t萧楚河'],'\t无心','\t雷无桀']]defislist(sublist):foriinsublist:ifisinstance(i,list):#......
  • PHP array() 函数 //京鸿通信科技(深圳)有限公司//15507589165
    实例创建名为$cars的数值数组,赋三个元素给它,并打印包含数组值的文本:<?php$cars=array("Volvo","BMW","Toyota");echo"Ilike".$cars[0].",".$cars[1]."and......
  • python内置函数4
    round()math(模块)getattr()hasattr()setattr()delattr()eval()......
  • CreateThread——类内线程回调函数
    CreateThread的函数声明如下:点击查看代码HANDLEWINAPICreateThread(_In_opt_LPSECURITY_ATTRIBUTESlpThreadAttributes,_In_SIZE_TdwStackSize,_I......
  • Laravel 常用辅助函数
    阅读目录Laravel常用辅助函数辅助函数array_dot()辅助函数允许你将多维数组转换为使用点符号的一维数组array_get()函数使用点符号从多维数组中检索值public_path()返回......
  • AcWing 874. 筛法求欧拉函数
    \(AcWing\)\(874.\)筛法求欧拉函数一、题目描述给定一个正整数\(n\),求\(1∼n\)中每个数的欧拉函数之和。输入格式共一行,包含一个整数\(n\)。输出格式共一行,包......
  • malloc,calloc,realloc函数详解
    首先从思维导图大概了解一下malloc,realloc和calloc函数1.malloc函数函数功能:malloc能从堆区申请空间给与我们使用,同时返回那片空间所处的首位置的地址。从图我们也能看到mal......
  • python内置函数2
    sum()sorted()reversed()all()any()enumerate()zip()map()filter()......