函数的使用步骤
定义一个函数
在函数代码以def关键字开头,后面接函数标识符名称和圆括号()
def 函数名():
被封装的函数
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数
求和函数
def func(): print("这是我的第一个函数") if __name__=="__main__": func() demo=func demo()
只有函数调用的时候,函数才会执行
入如何调用函数,输入函数的名字时,才会调用函数
上述第二种也是函数的调用方法
函数参数
!!!函数有形参,调用的时候,必须传递实参,必备参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样。
def func1(name): # 此处传递的name是形参 print(f"我的名字是:{name}") if __name__=="__main__": func1("老杨")
通过关键字传参,这样就可以交换顺序
def func1(name, age): # 此处传递的name是形参 print(f"我的名字是:{name},我的年龄是{age}岁") if __name__ == "__main__": func1(age=18, name="老杨")
默认参数是可以不用传递参数的,默认参数就是在定义函数的时候,写上其赋值
def func1(name="老杨", age="18"): # 此处传递的name是形参 print(f"我的名字是:{name},我的年龄是{age}岁") if __name__ == "__main__": func1()
不定长参数(不确定要传多少参数时,使用不定长参数)
*args是不定长参数,能够自由输入参数,不受限制,会以元组的形式传导
def func1(name, *args): # 此处传递的name是形参 print(f"班级里面的人有:{args}{name}") if __name__ == "__main__": func1("老杨", "白露", "史瓦罗", "克拉拉")
**kwargs也是不定长参数,但是传入的方式只能以关键字传参的方式传入。
def func1(**kwargs): # 此处传递的name是形参 print(f"班级里面的人有:{kwargs}") if __name__ == "__main__": func1(name1="老杨", name2="白露", name3="史瓦罗", name4="克拉拉")
一般的参数顺序为 name,name1=“王五”, *args,**kwargs
返回值
def func1(): print("这是我的返回值函数") if __name__=="__main__": print(func1())
这个函数会调用,因为在print函数中会进行调用,但是func1函数中没有返回值,就会输出None,结果如下
打印函数调用,相当于是在打印函数的返回值
def func1(): print("这是我的返回值函数") return "我是鸡哥" if __name__=="__main__": print(func1())
返回值不是只能传递一个返回值
def func1(): print("这是我的返回值函数") return "我是鸡哥" if __name__=="__main__": demo=func1() for data in demo: print(data) for data in func1(): print(data)
当函数有返回值的时候,返回内容并且退出函数
全局变量
函数内部可以直接使用全局变量
如果函数内部要修改全局变量,必须申明该变量为全局变量
number = 10 def func(): # 函数的局部变量 global number result = 20 number = result + number print(number) if __name__ == "__main__": func()