前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
目录
- 前言
- 定义函数
- 向函数传递信息
- 实参和形参
- 传递实参
- 返回值
- 将函数存储在模块中
- 导入整个模块
- 尾语 💝
定义函数
下面是一个打印问候语的简单函数
def greet_user():
print("hello")
greet_user()
本例示例了一个非常简单的函数结构。
第一行代码使用def
告诉python,你要定义一个函数。
这是函数定义,提出函数名,还可能在圆括号内指出函数需要完成任务需要的信息。
在这里函数名为greet_user()
,它不需要任何信息就能完成工作,因此括号是空的。
最后,定义以冒号结尾。
要使用这个函数,可以调用它人 要调用函数,可依次指定函数名以及用圆括号括起的必要信息。
由于这个函数不需要任何信息,调用它只需要输入greet_user()
即可。他会打印hello
( 更多资料、教程、文档点击此处跳转跳转文末名片加入君羊,找管理员小姐姐领取呀~ )
向函数传递信息
def greet_user(name):
print(f"hello,{name.title()}!")
greet_user("jack")
运行结果
hello,Jack!
代码greet_user(“jack”)
调用函数greet_user()
,并向它提供提供执行函数调用print()
所需要的信息。
实参和形参
在函数 greet_user()
的定义中,变量name
是一个形参,即函数完成工作所需要的信息,在代码greet_user(“jack”)
中,jack
是一个实参,即调用函数时传递给函数的信息。
调用函数时,将要让函数使用的信息放在圆括号内。
在greet_user(“jack”)
中,将实参“jack”
传递给了函数greet_user()
,这个值被赋给了形参name
了。
传递实参
函数定义中可能包含多个形参,因此在调用函数时会包含多个实参。
向函数传递实参的方式很多:可以使用位置实参,这要求实参的顺序和形参相同 ;
也可使用关键词实参,其中每一个实参都由变量名和值组成。
在调用函数时,最简单的关联方式是基于实参的顺序,这种关联方式成为位置实参。
如果对于顺序理顺困难,可以使用关键词实参,它是传递给函数的名称对值。
实参将名称和值相关联。
所以向函数传递实参时不易混淆,关键词实参让你无需考虑函数调用中的实参顺序。
位置实参示例
def stu_name(name,score):
print(f"\n{name} is a good student")
print(f'a one {score}')
stu_name('张三','20200409')
运行结果
张三 is a good student
a one 20200409
关键字实参示例
def stu_name(name,score):
print(f"\n{name} is a good student")
print(f'a one {score}')
stu_name(score='20200409',name='张三')
运行结果
张三 is a good student
a one 20200409
可见,关键字实参相 对应的形参顺序不符,但依然可以达成我们想要的效果。
返回值
函数并非总是直接显示输出,它还可以处理一些数据,并返回一个或者一组值。
函数返回的值称为返回值。在函数中,可使用return
来返回值到调用函数的代码行。
返回值让你将程序的大部分繁重工作移动到函数之中去完成,从而简化程序。
在函数外,使用result
接收return
所返回的值。
def fun1(lista):
a=sum(lista)/len(lista)
print("平均值:",a)
return a
result=fun1([46,89,45,2,6,551,8,56])
print(result)
运行结果
平均值: 100.375
100.375
如果说不返回值,在函数外可以正常使用函数内的参数吗
def fun1(lista):
a=sum(lista)/len(lista)
print("平均值:",a)
# return a
result=fun1([46,89,45,2,6,551,8,56])
print(result)
运行结果
平均值: 100.375
None
可见其结果在函数外并不能取得所值!
再如果说,不使用result
接收返回值的话,直接打印a
,将会出现1什么情况呢?
示例:
def fun1(lista):
a=sum(lista)/len(lista)
print("平均值:",a)
return a
fun1([46,89,45,2,6,551,8,56])
print(a)
运行结果
平均值: 100.375
Traceback (most recent call last):
File "C:\UsersDesktop\python\03.py", line 185, in <module>
print(a)
NameError: name 'a' is not defined
函数外实参正常赋值给函数内形参,因此函数内可正常运行,但是函数外显示a并未被定义,出现报错。
将函数存储在模块中
使用函数的优点之一就是可以将代码块与主程序分离。
通过给函数指定描述性名称,可让主程序容易理解的多。
还可以更进一步,将函数存储在称为模块的独立文件中,在将模块导入到主程序中。
import语句允许在当前运行的程序文件中使用模块中的代码。
通过将函数存储在独立的文件中,可隐藏代码的细节,将重点放在程序的高级逻辑层上,在还可以让你在众多的不同程序中重用函数,将程序存储在独立的文件中去,可与其他程序员1共享这些文件,而不是这些程序。
知道如何导入函数还能让你使用其他程序员编写的数据库。
导入整个模块
要让函数是可导入的,得先创建模块,模块是扩展名以.py
的文件,包含要导入到程序中的代码。
尾语 💝
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝