一.函数初识

定义:满足某一个方法 满足某一个功能#(1)功能(包裹一部分代码 实现某一个功能 达成某一个目的)#(2)可以反复调用,提高代码的复用性,提高开发效率,便于维护管理#(3)函数的基本格式:#定义一个函数def函数名():code1code2

#调用函数函数名()

#例子:(最简单的一个函数)

#函数的定义处

def func():

print("我是一个大帅哥")

#函数的调用处

func()

#(4)函数的命名规则

字母数字下划线 首字符不能为数字严格区分大小写 且不能使用关键字函数命名有意义 且不能使用中文哦

这样方便记忆

#小记:

驼峰命名法:(1)大驼峰命名法:myfunc => MyFunc应用在面向对象程序当中的类名(2)小驼峰命名法 :myfunc => myFunc用在函数上(不做强制要求)(3)下划线命名法:myfunc => my_func (推荐)

#函数的定义处 def

def Multiplication_table():

for i in range(1,10):

for j in range(1,i+1):

print("%d*%d=%2d " % (i,j,i*j),end="")

print()

#函数调用处

Multiplication_table()

for k in range(1,10):

Multiplication_table()

k+=1

二.函数的参数

参数:形参+实参形参:形式参数 在函数的一定处实参:实际参数 在函数的调用处形参:普通形参(位置形参),默认形参,普通收集形参,命名关键字形参,关键字收集形参实参:普通实参,关键字实参形参 和 实参 要一一对应

1.带有参数的函数:普通形参(位置形参)

#例:

#函数的定义处hang lie叫做普通形参 或者 叫做 位置形参

def small_star(hang,lie):

i = 0

while i

j = 0

while j

print("*",end="")

j+=1

print()

i+=1

#函数的调用处10,10叫普通实参

small_star(10,10)

print("===============")

small_star(5,8)

2.默认参数

如果不写任何的实参,那么使用默认形参的值如果写了自定义的实参,那么使用实际参数#例:#函数的定义处hang = 10 lie = 10默认形参

def small_star(hang=10,lie=10):

i = 0

while i

j = 0

while j

print("*",end="")

j+=1

print()

i+=1

#函数的调用处3 4普通实参

small_star()

small_star(3)

small_star(3,4)

3.普通实参+默认形参

普通形参 必须 放在默认形参的前面#例:print('---------------')

def small_star(hang,lie=10): #就是hang要放在lie=10之前

i = 0

while i < hang:

j = 0

while j < lie:

print("*",end="")

j+=1

print()

i+=1

small_star(3,4)

4.关键字实参

(1)如果是用来关键字实参进行调用,顺序随意(2)如果定义时是普通形参,但调用时是使用了关键字实参调用,那么这个参数的后面所有参数都必须使用关键字实参#例:def small_star(hang,a,b,c,lie=10):

print(hang,a,b,c,lie)

i = 0

while i

j = 0

while j

print("*",end="")

j+=1

print()

i+=1

#small_star(3,b=5,lie=90,a=4,c=6)

small_star(3,a=4,b=5,c=6,lie=12)

#默认形参 与 关键字实参的区别

#函数的定义处top middle bottom ..默认形参

def five_class_xiongda_team(top="皇子",middle="狐狸",bottom="寒冰",jungle="瞎子",support="琴女"):

print("top上单选手:{top}".format(top=top))

print("middle中单选手:{middle}".format(middle=middle))

print("bottom下路选手:{bottom}".format(bottom=bottom))

print("jungle打野选手:{jungle}".format(jungle=jungle))

print("support辅助选手 最后的希望vip:{support}".format(support=support))

#函数的调用处

# five_class_xiongda_team() top middle bottom ...关键字实参

five_class_xiongda_team(top="奥拉夫",middle="亚索",bottom="德莱文",jungle="蜘蛛")

#在函数的调用处给参数赋值 top = '' middle = '' 等

#关键字实参的内容可以将默认形参进行修改,如果关键字实参没有,那么函数内的参数就使用默认形参

5.收集参数

收集参数:(1)普通收集参数(2)关键字收集参数#(1)普通收集参数(可变参数)

语法:def func(*参数):pass参数前面加一个*的就是普通收集参数;普通收集参数专门用于收集多余的,没人要的普通实参,形成一个元组#例:def func(a,b,c,*arg):

print(a,b,c) #1,2,3

print(arg) #()

func(1,2,3,4,5,6)

arg => argument 参数

# 计算任意长度的累加和

# 函数的定义处

def mysum(*arg): #*args接受了三个参数

total = 0

print(arg)

for i in arg:

total +=i

print(total)

mysum(1,5,7,1000)

#(2)关键字收集参数#语法def func(**参数):pass参数前面加上**的就是关键字收集参数关键字收集参数:用于收集多余的,没人要的关键字实参,形成一个字典def func(a,b,c,**kwargs):passkwargs => keyword关键字arguments多个参数#例1:def func(a,b,c,**kwargs):

print(a,b,c)

print(kwargs)

func(1,2,3,f=11,d=13,zz=19) #将关键字实参形成一个字典

"""

输出结果为:

1 2 3

{'f': 11, 'd': 13, 'zz': 19}

#例2:

#打印任意长度的字符

# 班长:one

# 班花:two

def func(**kwargs):

dictvar = {"monitor":"班长","class_flower":"班花"}

strvar1 = ''

strvar2 = ''

print(kwargs) #这个kwargs是一个字典

for a,b in kwargs.items():

if a in dictvar:

strvar1 += dictvar[a] + ":" + b + "\n"

else:

strvar2 += "吃瓜群众:" + b + "\n"

print(strvar1)

print(strvar2)

func(monitor="one",class_flower="two",people1="three",people2="four")

运行后的结果为:

{'monitor': 'one', 'class_flower': 'two', 'people1': 'three', 'people2': 'four'}

班长:one

班花:two

吃瓜群众:three

吃瓜群众:four

6.命名关键字

#语法:def func(参数1,参数2,*,参数3,参数4):pass#(1)在函数的定义处,*号后面的参数就是命名关键字参数#(2)在函数的定义处,在普通收集参数和关键字收集参数之间的命名关键字参数def func(*args,命名关键字参数,**kwargs)命名关键字必须使用关键字实参的形式进行调用

#形式1:

def func(a,b,*,c):

print(a,b,c)

func(1,2,c=4)

结果为: 1 2 4

#形式2:

如果命名关键字指定了默认值,那么在调用时,可以不指定实参,默认使用自己的值

def func(a,b,*,c=5):

print(a,b,c)

func(1,2,c=6) #有实参先用实参,没有实参才使用默认形参

结果: 1 2 6

#形式3:

def func(*args,d,**kwargs):

print(args) # 1 2 23

print(kwargs) # {'c':1,'f':2}

print(d) # 3

func(1,2,23,c=1,f=2,d=3)

结果:写在每行输出的#后面了

#(3)*和**的魔术用法

*和**在函数的定义处,负责打包(把实参都收集过来,放在元组或字典中)

#例1:

def func(a,b,c):

print(a,b,c)

listvar = [1,2,3]

# *一般修饰列表更多一些(负责把列表里面的元素一个个拿出来的进行函数调用)

func(*listvar) #<==> func(1,2,3)

#结果输出: 1 2 3

#可以这样用func(*(1,2,3))

#例2:

def func(a,b,c,*,d,e,f):

print(a,b,c)

print(d,e,f)

listvar = [1,2,3]

dic = {"d":4,"e":5,"f":6} #func(d=4,e=5,f=6)

# ** 一般修饰字典,(负责把字典里面的键值对变成d=4,e=5的形式,进行函数调用)

func(1,2,3,**dic) #<===>d = 4,e = 5,f = 6

#* 和 **的解包操作

func(*listvar,**dic)

#函数参数的默认顺序:必须按照如下的参数顺序进行定义:普通形参(位置形参) ->默认形参->普通收集参数->命名关键字参数->关键字收集参数#例:

def f1(a,b,c=0,*args,**kw):

print('a =',a,'b =',b,'c =',c,'args =',args,'kw =',kw)

def f2(a,b,c=0,*,d,**kw):

print('a =',a,'b =',b,'c =',c,'d =',d,'kw =',kw)

print("=============分隔=============")

#(一)

f1(1,2) #a=1 b=2 c=0 args=() kw={}

f1(1,2,c=3) #a=1 b=2 c=3 args=() kw={}ffffffffffffff

f1(1,2,3,'a','b')#a=1 b=2 c=3 args=('a','b') kw={}

#f1(1,2,3,'a','b',x=99) #a=1 b=2 c=3 args=('a','b') kw={'x':99}

#f2(1,2,d=99,ext=None) #a=1 b=2 c=0 d=99 kw={'ext':None}

#(二)

print("=============分隔=====二========")

args = (1,2,3,4)

kw = {'d':99,'x':'#'}

f1(*args,**kw) #a=1 b=2 c=3 d=99 args=(4,) kw={'x':'#'}

#*args ==> f1(1,2,3,4)

#**kwargs ==> f1(d=99,x="#")

#(三)

print("=============分隔=====三========")

def f2(a, b, c=0, *, d, **kw):

print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

myargs = (1,2,3)

mykw ={'d':88,'x':'#'}

f2(*myargs,**mykw) #a=1 b=2 c=3 d=88 kw={'x':'#'}

#(四)

#定义处

print("=============分隔=====四========")

def f1(a,b,c=0,*args,d,**kw):

print('a =',a,'b =',b,'c =',c,'args =',args,'kw = ',kw)

print('d=',d)

#调用处

f1(1,2,3,'a','b',d=67,x=99,y=77)

#a=1 b=2 c=3 args=('a','b') kw={'x':99,'y':77}

#d=67

#普通收集形参 和 关键字收集形参 可以接受到所有种类的参数# *args,**kwargs都是可变长参数,参数的长度不限制def func(*args,**kwargs):pass

python入门之函数结构函数的参数_Python 基础之函数初识与函数参数相关推荐

  1. python调用c函数传字符串参数_Python使用ctypes模块调用DLL函数之传递数值、指针与字符串参数...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

  2. python中非可选参数_python基础教程函数参数

    python里有很多的内置函数给我们的工作带来了很多发便利,在我们实现某些功能或者优化代码的时候,可以自己定义一个函数,同时我们在定义一个类的时候也会用到函数的一些知识去构造一个方法,这里就涉及到一些 ...

  3. python入门之函数调用第3关_Python入门到入土!史上最详细的函数教程!

    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明. ...

  4. python如何查看函数的参数_python 如何查看自带函数的默认参数?

    python 为什么默认参数不能放在必选参数前面 关于python带默认值的参数只能放在后面的问题曾经不信一见钟情,遇见了你遗失了心:曾经不信爱有多真,遇见了你迷失自己. Python函数里的默认参数 ...

  5. python中panel不接受参数_Python基础之只接收关键字参数的函数

    当我们希望函数的某些参数强制使用关键字参数时,可以将强制关键字参数放到某个*后面就能得到这种效果.比如: def recv(maxsize, *, block): """ ...

  6. python入门之函数调用第一关_零基础学习 Python 之与函数的初次相见

    写在之前 大家好,这是首发在我公众号「Python空间」的第 26 篇文章,欢迎关注. 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具 ...

  7. python中函数的定义实例_Python基础之函数的定义与使用实例

    此文实例介绍了Python基础之函数的定义与使用.推荐给大伙学习一下,内容如下: Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表): 函数体 让我们使用函数来输出 ...

  8. python中高阶函数map怎么用_python六十课——高阶函数之map

    1.高阶函数: 特点:函数的形参位置必须接受一个函数对象 分类学习: 1).map(fn,lsd1,[lsd2...]): 参数一:fn --> 函数对象 参数二:lsd1 --> 序列对 ...

  9. python基础函数及用法意思_Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...

最新文章

  1. 决策树模型与学习《一》
  2. 阿里云弹性计算-图形工作站(公测)发布
  3. office插件开发_Visual Studio Code有哪些你常用的插件?
  4. Linux环境搭建Hadoop伪分布模式
  5. springboot配置文件的加载顺序(./config目录优先级最高)
  6. 通话录音_iOS14,通话录音终于来了!
  7. 1043:整数大小比较
  8. MONGODB 数据的存储顺序发现不是按_ID 的顺序存储的原因
  9. Uuntu16.04重装后u盘不识别问题解决
  10. 包与模块管理及面向对象初步
  11. mac securecrt程序无响应_在Mac上查看和终止进程的方法
  12. 【Python】Python运算符
  13. Java 并发 —— volatile 关键字
  14. [PHP 作为iOS后台Json格式HTTP通信及文件上传的实现]
  15. 为什么今日头条是技术牛人收割机(FW)
  16. 使用UniBeast安装Hackintosh(黑苹果)
  17. qt引入txt文件_QT 读取txt文件的几种方法
  18. Oracle函数——COALESCE
  19. 几何光学学习笔记(35)- 7.6 CIE标准色度学系统
  20. 信号处理:希尔伯特-黄变换

热门文章

  1. 另一个 OleDbParameterCollection 中已包含 OleDbParameter
  2. 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
  3. 乖离水机器人攻略_乖离性百万亚瑟王超弩级水机器人打法技巧分享
  4. nginx配置文件rewrite规则
  5. 华为手机显示android升级,华为手机总是提示“系统升级”,到底要不要升级?答案终于确认了...
  6. Python实现名片管理系统
  7. 正则表达式匹配标点符号
  8. matlab中的fscanf函数,matlab中fscanf函数
  9. 解聘未足额支付经济补偿如何确定劳动争议发生日
  10. 苹果电脑发布新版的MacBook Air