首页 > 编程语言 >Python编程 - 函数基础

Python编程 - 函数基础

时间:2024-08-24 17:56:21浏览次数:10  
标签:局部变量 函数 Python 编程 add print 全局变量 定义

前言

上篇文章咱们主要讲了Python的容器,容器主要有列表,元组,集合和字典,接下来讲讲函数,函数也是Python中也是很重要的。

一、函数的定义

函数就是具有一定功能的代码块,以下就是最简单的函数;

def print_info():
    print("测试")

定义函数后还需要通过"函数名()"调用该函数,函数才真正发挥作用;

def print_info():
    print("测试")

print_info()

调用print_info函数后控制台输出“测试”二字

函数在编程中是非常重要的,函数可以将部分代码划分为多个单独的小功能,函数只需要定义一次就能一直调用,减少了代码的冗余,同时还让代码看上去更加整洁美观。

二、函数分类

Python的函数主要有两种:

  1. Python内置函数或第三方包中的函数
  2. 自定义函数,根据实际需求自己编写的函数,更加灵活

三、自定义函数

(一)定义函数

函数的定义格式为:

def 函数名(形参):
    函数体

自定义函数主要包括函数名、函数体和形参;

  • 函数名,按照命名规则给函数起名字,在python中建议使用"小写加下划线"的方式给函数命名,如python_test
  • 函数体,就是整个函数真正执行的代码,注意在函数体前面缩进4个空格
  • 形参,用来存储调用函数时传递的参数值,该参数根据实际情况而定

(二)调用函数

如刚开始所说,函数在定义好后需要调用才会真正发挥作用,调用格式为:

函数名(实参)

说明:

  • 函数名,想要调用的函数的名字
  • 实参,调用函数时传递给函数的数据,根据实际情况而定,函数需要数据时才传值

注意:调用函数前必须先定义好函数,否则函数调用时会出现异常

(三)pass关键字

定义函数时,如果不确定函数需要实现什么功能,可以先用pass关键字占位置,使用pass不会出现语法错误,也能清楚了解到该函数还未实现任何功能。

def 函数名():
    pass

四、内置函数

内置函数就是python自带的函数,直接调用即可,无需再次定义,python的内置函数非常丰富,这也是python的特点之一,以下罗列一些python常用的内置函数;

import time  # 时间模块
import random # 随机数模块
a = [1, 2, 3, 4]
# len:获取列表的元素个数,结果为4
len(a)
# max 获取最大值,结果为4
max(a)
# del 删除元素,删除元素2
del a[1]
# time 时间函数获取当前时间戳
time.time()
# random 获取随机数
# 获取1到3之间的整数
random.randint(1, 3)

python的内置函数有很多,根据实际情况加以使用。

五、函数参数

python中调用函数时,如果需要将数据传递给函数,可以通过传参的方式把数据传递给被调用的函数,想要实现传递数据的功能,需要注意两点:

  1. 定义函数时,在函数名后的"()"定义变量,这个变量称为形参,形参的个数根据实际传递的参数个数而定,定义形参的目的就是存储调用函数时传递过来的数据。
  2. 调用函数时,在函数名后的"()"写下需要传递的数据,可以是变量,常量或者表达式,这些数据称为实参,实参就是实际传递的数据。

示例:

def add(a, b):
    print(a + b)


a = 10
b = 20
add(a, b)  # 实现两个数相加的功能,控制台会输出30

六、函数返回值

调用函数后,如果需要获取函数的执行结果,可以在函数内部使用return语句,将数据返回给调用者,想要获取函数的返回结果,需要注意以下几点:

  1. 定义函数时,需要使用return语句将结果返回,return一方面可以将数据返回给调用者,另一方面可以结束函数的执行
  2. 调用函数时,一般需要使用变量存储函数的返回值
  3. 一个函数内部,同一时间只能有一个return语句被执行

示例:

def add(a, b):
    return a + b  # 返回两个变量相加的结果值


a = 10
b = 20
result = add(a, b)
print(result)  # 控制台输出30,说明调用add函数后的返回值赋给了result变量

七、函数间相互隔离

函数是一个具有独立功能的代码块,开发时将具有独立功能的代码块做成函数其实就是封装概念,这种方式可以使代码更加简介,封装的最大特点就是"高内聚低耦合",将相关功能的代码全部封装在函数中,同时减少函数间的依赖。

在开发过程中,函数间可能存在以下三种关系:

  1. 多个函数间共用同一个变量
  2. 一个函数的返回值被用作另一个函数的实参
  3. 一个函数内部调用另一个函数

八、局部变量和全局变量

(一)局部变量

在函数内定义的变量,包括形参也是局部变量,只能在定义的函数内部使用,局部变量一般就是为了实现函数功能而定义的变量,只能在当前函数内使用,无法在其他函数中使用;

示例:

def add(a):
    b = 20
    print("add函数中的局部变量有%s,%s" % (a, b))


add(10) # 调用add函数,在控制台输出"add函数中的局部变量有10,20"

局部变量的特点:

  1. 在函数内部定义的变量
  2. 形参也属于局部变量
  3. 局部变量的作用范围只作用于函数内部
  4. 每次调用函数时,局部变量的值都是重新获取
  5. 不同函数内部可以定义相同名称的局部变量

(二)全局变量

一种在函数外部定义的变量就是全局变量,全局变量可以在所有函数中使用,在函数内部直接使用全局变量即可,无需再次定义

示例:

c = 100  # 定义全局变量

def add():
    print(c)  # 控制台会输出100

add()

注意:如果需要修改全局变量的值,需要先使用global声明全局变量,才能修改全局变量的值

示例:

c = 100  # 定义全局变量
d = 200


def add():
    global c  # 使用global声明全局变量
    c += 1  # 修改全局变量的值
    d = 300


add()
print(c, d) 

代码执行结果为:

由此得知,若在函数内部需要修改全局变量的值,需要先使用global声明全局变量再进行修改,否则全局变量的值无法修改成功。

总结

本篇文章主要讲述了函数的基础知识,函数的定义、自定义函数、局部变量和全局变量等,这些都是相对基础的知识,接下来会进一步接触到较为进阶的函数知识点,让我们拭目以待吧!!

标签:局部变量,函数,Python,编程,add,print,全局变量,定义
From: https://blog.csdn.net/2401_86688088/article/details/141403727

相关文章

  • C++调用Python和numpy第三方库计算MFCC音频特征实现封装发布
    目录项目简介程序/数据集下载环境准备执行步骤1.新建python虚拟环境2.虚拟环境运行下python代码3.迁移虚拟环境4.编写Cmakelists.txt5.编写C++代码6.编译项目7.测试项目简介深度学习程序的边缘部署以性能绝佳的C++为主(⊙﹏⊙),但遇到项目开发周期短,则以功能优先,一些复杂的算法和......
  • 学编程的普通人如何通过技术变现,副业月入过万?python兼职,学习
    前言我有一个朋友,在国企工作,月薪一万出头。前几个月他和我说,他辞职了。说实话在这种行情下,敢裸辞的都是勇士,我问他为啥要辞职,他说现在他的副业已经超过主业收入了,上班反而耽误他挣钱,他光靠做副业,最高一个月收入6w+,这比上班香多了,时间还自由。说这个并不是主张让大家辞职,而......
  • 从菜鸟到高手:掌握Python推导式,让代码飞起来,列表、集合、字典,一网打尽,用Python推导式
    "在Python的广阔世界里,隐藏着一种让程序员们爱不释手的秘密武器——推导式。想象一下,你正站在数据处理的战场上,面对着成千上万条数据,需要快速筛选、转换、聚合。这时,你手中的列表推导、集合推导、字典推导就像三把锋利的剑,轻轻一挥,便能将复杂的数据操作化繁为简,让代码如同行云......
  • 【Python数据分析入门】必须掌握的matplotlib绘图语法与常用参数
    掌握绘图基础语法与常用参数掌握pyplot基础语法importmatplotlib.pyplotaspltpyplot基本绘图流程:创建画布与创建子图plt.figure:创建一个空白画布,可指定画布的大小、像素figure.add_sybplot创建并选中子图,可以指定子图的行数、列数和选中图片的编号添加画布内......
  • 基于yolov10的电梯电瓶车、电动车检测系统,支持图像检测,也支持视频和摄像实时检测(pytor
       更多目标检测和图像分类识别项目可看我主页其他文章功能演示:基于yolov10的电梯电瓶车,电动车检测,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili(一)简介基于yolov10的电梯电瓶车、电动车检测系统是在pytorch框架下实现的,这是一个完整的项目,包......
  • python零基础教学(二)
    元组&列表&字典元组Python的元组与列表类似,不同之处在于元组的元素不能修改,但是元组使用小括号,列表使用方括号,如果你想创建元组,只需要在括号中添加元素,并使用逗号隔开即可元组=(1,2,'哈哈哈')#这就是一个元组,你可以往里面装str,float,int等等列表在元组的基......
  • python常用的算法
    以下是常用的算法及其详细介绍,包括排序算法、查找算法、基础算法和图算法,同时我也会提到每种数据结构的特性、优缺点及使用场景,并给出示例。一、排序算法1.冒泡排序(BubbleSort)冒泡排序是一种简单的排序算法。它通过重复遍历要排序的数列,比较每对相邻元素并交换它们的位......
  • Python爬虫案例二:获取虎牙主播图片(动态网站)
    爬虫流程:优先假设是JSON数据,抓包方式只能翻页JSON数据HTML数据1.异步数据(即先返回HTML,再返回目标的数据,只是触发了JSON请求),不在HTML中2.不能刷新网页,直接翻页测试链接:https://live.huya.com/源代码: importrequests,json,osclassTwo(object):def__ini......
  • 豆瓣评分8.6!Python社区出版的Python故事教程,太强了!
    Python是活力四射的语言,是不断发展中的语言。就连使用Python多年的行者也不敢说对Python的方方面面都了解并可以自由运用,想必读者可能更加无法快速掌握所有重点技巧了。今天给小伙伴们分享的这份手册是用互动的开发故事来探讨Pyfhonic开发的故事书籍,是一本Python语言详解......
  • 豆瓣评分9.0!Python3网络爬虫开发实战,堪称教学典范!
    今天我们所处的时代是信息化时代,是数据驱动的人工智能时代。在人工智能、物联网时代,万物互联和物理世界的全面数字化使得人工智能可以基于这些数据产生优质的决策,从而对人类的生产生活产生巨大价值。在这个以数据驱动为特征的时代,数据是最基础的。数据既可以通过研发产品获得,......