什么是函数?
函数这个名称起源与数学当中,但是这里的函数跟数学当中的函数是不一样的,在java语言当中我们称之为method在我们编程语言当中函数
,也称之为方法。
函数的定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
函数分为两大类别:
1.第一种python自带的,叫做内建函数如print type等都是python自带的叫做内建函数。
2.第二种叫做自定义函数,是由程序员自己编写的方法定义的函数叫做自定义函数
在 Python 中定义一个函数需要遵循以下规则:
1.函数代码块以 def 关键词开头,后接函数名称和小括号( ),小括号后的冒号:表示函数体的开始;
2.任何传入参数和自变量必须放在小括号中间;
3.函数的第一行语句可以使用注释语句编写函数说明;
4.函数体遵循缩进语法;
5.函数以 return 语句结束,用于返回结果给调用方
一丶定义一个函数
def function():
print("hello word")
function()
1.def 定义一个函数
2.function函数的名称
3.:表示函数体的开始
4.print("hello word")是函数体部内容
5.function()调用这个函数方法
4、函数的三种调用方式
a、在本模块中调用
b、if __name__ == ‘__main__‘: 在当前模块调用
c、主函数调用,在其他模块中调用
为什么要使用if __name__ == ‘__main__‘:?
1.我们在调用一个模块的时候,他是一个模块对象且有一个属性叫做__name____name__就是当前模块名,当模块直接被运行他就叫做__main
2.那么我们在当前模块打印的时候他的__name__属性就是==__main,那么在其他模块进行调用打印被调用的函数模块名称的时候,他的模块名
称不等于main就不会运行__name__ == ‘__main__‘:下面的代码
总结:if __name__ == ‘__main__‘:可以保证脚本在被导入的时
候,进行调用时不会主动执行最外层的代码
"""
1.形式参数:也叫形参:定义函数时的参数变量
2.实际参数:也叫实参:调用函数时,使用的参数变量
从名字就可以看出,实参是一个实实在在存在的参数,是实际占用内存地址的,而形参只是意义上的一种参数,在定义的时候是不占内存地址的,
如在上面例子中,name就定义的时候是不占内存地址的,如在上面例子中,name就是一个形参,尼古拉斯赵四是我在调用函数时传入的一个实
参,它的值被存储在形参name中。
函数的调用中,可能存在多个实参,在给函数传递参数的时候只要有两种方式,位置实参和关键字实参,每个实参都由变量名和值组成,实
参还可以是列表、字典
3.位置参数:要保证参数的顺序
3.默认参数:
a.默认参数,不赋予新的值,会使用默认给的参数
b.默认参数,给予新的值,默认给的参数会被替换
4.全局变量:
5.局部变量:
6.函数当中的返回值:
"""
"""
一丶什么是形式参数,什么是实际参数?
"""
def only(name):
print(name + ‘去搬砖‘)
if __name__ == ‘__main__‘:
only(name=‘小强‘)
only("小强")
"""
二丶位置参数,每个形式参数是必填的
必须要遵守他的位置顺序
"""
def func(name,where,action):
print(name+where+action)
if __name__ == ‘__main__‘:
func(name="袁铖凯",where="去上海",action="洗脚")
三丶 默认参数,给形式参数赋予默认值
a.默认参数,不赋予新的值,会使用默认给的参数
b.默认参数,给予新的值,默认给的参数会被替换
"""
def func(name="黄鑫",where="去重庆",action="看美女"):
print(name+where+action)
if __name__ == ‘__main__‘:
func()
四丶全局变量与局部变量:
注意:函数内部如果定义变量就使用函数内部的变量,如果不由定义就使用
函数外面的变量
global :把函数内的局部变量申明为全局变量,在函数外的全局变量的值
将会改变覆盖,global只能在函数内部使用
"""
num = 100
def cheke():
global num
num = 200
print(num)
if __name__ == ‘__main__‘:
cheke()
五丶函数的返回值 return
注意:
1.一旦函数内部碰到return 就会直接把结果返回回去,return后面的代码
是不会被执行的
2.虽然我使用return,这个函数的有值,但是没有打印,就不会显示对应的值
print只会得到结果,不会得到返回值
def num():
""":return将这个结果返回给函数的调用处num(),
谁调用num这个函数就可以拿到sco这个结果"""
a = 600
sco = a / 100
return sco
def avg():
values = num()
if values> 80:
print(‘优秀学生‘)
else:
print(‘不是优秀学生‘)
六丶可变长元组:
不确定实际参数的个数,那么在参数里面的中的形式参数加个*号,给实际参数加个* 表示可以接收多个参数
<class ‘tuple‘> 以元组的形式进行存储
def make(*values): #给实际参数加个* 表示可以接收多个参数
print(values)
print(type(values))#<class ‘tuple‘> 以元组的形式进行存储
if __name__ == ‘__main__‘:
make(‘小王‘,‘嘿嘿‘)
"""
七丶可变长字典:
不确定传入的字典有多少个,在前面加两个**
可以传入多个字典
注意:
1.传入字典时要加上**号不然会抛错
2.传入的字典如果两个字典有重复的key就会抛错
3.可变长字典,实际就是把两个字典合并在一起
"""
def vker(**valuse):
print(valuse)
dict1 = {‘name‘:1234,‘bb‘:666}
dict2 = {‘valuse‘:222,‘aa‘:777}
if __name__ == ‘__main__‘:
vker(**dict1,**dict2) #传入字典时要加上**号不然会抛错
vker(**{‘valuse‘:222,‘aa‘:777})
vker(name="admin",password="123456")
‘‘‘
八丶可变长字典以及可边长元组同时出现:
注意:同时出现可边长字典和元组,那么可边长元组默认要在可以变长字典前面不然会抛错
‘‘‘
def tupledict(*vlu1,**vlu2): #
print(vlu1)
print(vlu2)
python中函数/什么是函数/函数的构造
原文:https://www.cnblogs.com/manxingsir/p/15139437.html