Python基础必经之路——函数

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

目录

        • 前言
        • 定义函数
        • 向函数传递信息
        • 实参和形参
        • 传递实参
        • 返回值
        • 将函数存储在模块中
        • 导入整个模块
        • 尾语

定义函数

下面是一个打印问候语的简单函数

def greet_user():
    print("hello")
greet_user()

本例示例了一个非常简单的函数结构。

第一行代码使用def告诉python,你要定义一个函数。

这是函数定义,提出函数名,还可能在圆括号内指出函数需要完成任务需要的信息。

在这里函数名为greet_user(),它不需要任何信息就能完成工作,因此括号是空的。

最后,定义以冒号结尾。

要使用这个函数,可以调用它人 要调用函数,可依次指定函数名以及用圆括号括起的必要信息。

由于这个函数不需要任何信息,调用它只需要输入greet_user()即可。他会打印hello

( 更多资料、教程、文档点击此处跳转跳转文末名片加入君羊,找管理员小姐姐领取呀~ )

Python基础必经之路——函数_第1张图片

向函数传递信息

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的文件,包含要导入到程序中的代码。

尾语

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦

问题解答 · 源码获取 · 技术交流 · 抱团学习请联系

你可能感兴趣的:(python,python,开发语言,程序人生)