【Python】函数

简介: 【Python】函数

【Python】函数

做一个简要介绍

本周重点讲解函数和代码复用

主要包含五个部分

1,函数的定义与使用

2,实例,七段数码管绘制

3,代码复用与函数递归

4,讲解一个模块:Pyinstaller库的使用(重要)

5,实例8,科赫雪花小包裹


函数的理解和定义

在天天向上的例子中,我们就说过函数

函数是一段代码的表示

函数是一段具有特定功能,可重用的语句组

函数是一种功能的抽象

两个作用

1、降低编程的难度和代码复用

2、函数的定义比较简单

我们使用保留字def

def  <函数名>(<参数(0个或多个)>):
        <函数体>
        return <返回值>

看例子 计算n!

image.png

fact是函数名,n是fact的参数,可以往上看

return s  s是返回值

函数在定义时,所指定的参数是占位符。

函数定义以后,如果不经调用,不会被执行。

从例外一个角度理解:

函数定义时,参数是输入,函数体是处理,结果是输出,函数就是IPO的实现,函数也是完整代码的封装。

函数的使用及调用过程

       调用时运行函数代码的方式,程序看到这段代码并不会去执行,所谓调用,就是函数名称给定一个具体的值,比如 fact(10);

       调用时要给出实际的参数,实际的参数替换定义中的占位参数,函数调用后得到返回值。

下面看代码的调用过程

a=fact(10)             
print(a)

       当这段代码被执行时,代码会去寻找fact函数,并且将给定的参数10 赋给你使用的函数中间的那个参数n。此时,10就代替了n,运算代码之后,产生了确定的s值 3628800,并且赋值给变量a。print (a)之后,就输出了3628800。

所以这就是函数的调用过程。

函数的参数传递

函数可以有参数,也可以没有,但必须保留括号

def  <函数名>():
        <函数体>
        return <返回值>


此外呢,我们也可以为某些参数制定一些默认值,构成可选参数。

def  <函数名>(<非可选参数>,<可选参数>):
        <函数体>
        return <返回值>

所谓可选参数,就是我们调用的时候不提供,或者提供其他变量。这种可以提供,也可以不提供的参数叫可选参数。所有可选参数放在非可选参数之后。

看例子

image.png

       你可以看出m既可以给定,也可以不给定,结果跟m有关。此外呢,还有一种参数叫可变参数,不确定多少个

def  <函数名>  (<参数> ,   *b):
        <函数体>
        return <返回值>

看例子

image.png

       *b代表不确定b中有多少参数有可能是 3 也有可能是3,5,8,前面的10 是确定参数。比如之前学过的max  min  都是不确定多少个参数函数调用时,参数可以按照位置或名称的方式传递。

image.png

可以按照n 和m 的位置传递

也可以按照n 和m 的名称传递


函数的返回值

       函数可以返回0 或者返回多个结果;可以有返回值,也可以没有;return可以传递0个返回值,也可以传递多个返回值。

看例子:

image.png

看return 后面(725760,10,5)这种用小括号,中间用逗号,叫元组数据类型。我们之前学过列表,很相似,不做展开。


局部变量与全局变量

       在程序中使用叫全局变量,在函数体中使用的叫局部变量。

<语句块1>

def  <函数名>  (<参数> ):
        <函数体>
        return <返回值>

<语句块2>

看代码:

image.png

       def里面的n和s是局部变量,外面的是全局变量n和s。局部变量是函数内部的占位符,与全局变量可能重名但不同。函数运算结束后,局部变量被释放。

       看上例子,fact()函数中s是局部变量与全局变量s不同,在return s 时 ,返回的是全局变量s=100的值,并不是局部变量s=3628800

在print(s),输出的是全局变量。

       我们能在程序中间使用外部的全局变量吗?

       当然可以,可以用  global 保留字在函数内部使用全局变量。

image.png

看结果就能对比出来,局部变量为组合数据类型且未创建,等同于全局变量。

image.png

通过[]创建一个全局变量列表ls,def 中的ls是列表类型,未真实创建则等同于全局变量。在func中,全局变量ls被修改。

再看代码:

image.png

       两个例子中 ,在def中多了一个真实创建的ls[],这时ls是局部变量,局部变量ls被修改。

这段代码告诉我们,如果一个组合数据类型在函数中被真实创建了,那么他就是局部变量。在函数运行结束后,变量就会被释放,他就不存在了。如果组合数据类型没被创建,又与全局变量名称相同,所以就是全局变量。



lambda函数

       lambda函数是一种匿名函数,既没有名字的函数。使用lambda保留字来定义,函数名是返回结果。lambda函数用于定义简单的,能够在一行内表示的函数。


<函数名>=lambda<参数>:<表达式>

等价于

def  <函数名>  (<参数> ):
        <函数体>
        return <返回值>

看例子:

>>>f=lambda x,y :x+y

f(10,15)=25

>>>f=lambda:”lambda函数”
print(f())

lambda 函数

谨慎使用lambda函数,尽量用def   return 去定义。它的存在主要用于一些特定的函数或方法的参数。lambda有固定的使用方式,慢慢学 。


目录
相关文章
|
4天前
|
Python
python函数进阶
python函数进阶
|
3天前
|
安全 Python
Python量化炒股的获取数据函数—get_industry()
Python量化炒股的获取数据函数—get_industry()
10 3
|
4天前
|
Python
Python sorted() 函数和sort()函数对比分析
Python sorted() 函数和sort()函数对比分析
|
3天前
|
Python
Python量化炒股的获取数据函数—get_security_info()
Python量化炒股的获取数据函数—get_security_info()
10 1
|
6天前
|
数据库 开发者 Python
实战指南:用Python协程与异步函数优化高性能Web应用
在快速发展的Web开发领域,高性能与高效响应是衡量应用质量的重要标准。随着Python在Web开发中的广泛应用,如何利用Python的协程(Coroutine)与异步函数(Async Functions)特性来优化Web应用的性能,成为了许多开发者关注的焦点。本文将从实战角度出发,通过具体案例展示如何运用这些技术来提升Web应用的响应速度和吞吐量。
12 1
|
6天前
|
调度 Python
揭秘Python并发编程核心:深入理解协程与异步函数的工作原理
在Python异步编程领域,协程与异步函数成为处理并发任务的关键工具。协程(微线程)比操作系统线程更轻量级,通过`async def`定义并在遇到`await`表达式时暂停执行。异步函数利用`await`实现任务间的切换。事件循环作为异步编程的核心,负责调度任务;`asyncio`库提供了事件循环的管理。Future对象则优雅地处理异步结果。掌握这些概念,可使代码更高效、简洁且易于维护。
10 1
|
11天前
|
Python
[oeasy]python035_根据序号得到字符_chr函数_字符_character_
本文介绍了Python中的`ord()`和`chr()`函数。`ord()`函数通过字符找到对应的序号,而`chr()`函数则根据序号找到对应的字符。两者互为逆运算,可以相互转换。文章还探讨了单双引号在字符串中的作用,并解释了中文字符和emoji也有对应的序号。最后总结了`ord()`和`chr()`函数的特点,并提供了学习资源链接。
16 4
|
14天前
|
Java Python
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
【9月更文挑战第18天】在 Python 中,虽无明确的 `interface` 关键字,但可通过约定实现类似功能。接口主要规定了需实现的方法,不提供具体实现。抽象基类(ABC)则通过 `@abstractmethod` 装饰器定义抽象方法,子类必须实现这些方法。使用抽象基类可使继承结构更清晰、规范,并确保子类遵循指定的方法实现。然而,其使用应根据实际需求决定,避免过度设计导致代码复杂。
|
16天前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
|
3天前
|
Python
Python量化炒股的获取数据函数— get_billboard_list()
Python量化炒股的获取数据函数— get_billboard_list()
下一篇
无影云桌面