博客
关于我
Python基础_函数的基本使用
阅读量:254 次
发布时间:2019-03-01

本文共 1839 字,大约阅读时间需要 6 分钟。

Python编程语言 - 函数基础

函数概述

函数是编程中一个核心概念,它将具有独立功能的代码块封装为一个模块。在需要时,通过调用函数可以执行封装代码,从而提高开发效率并实现代码的重用。

函数的作用

在开发程序时,使用函数可以帮助提高代码的可读性和维护性。通过将代码封装到函数中,可以更方便地复用功能,减少代码冗余。

函数基本使用

函数的定义

函数的定义格式如下:

def 函数名():  # 函数名称应能反映其功能    # 函数体内的代码    ...
  • def 是英文 define 的缩写,用于定义函数。
  • 函数名称应符合标识符命名规则:可以由字母、下划线和数字组成,但不能以数字开头,也不能与关键字重名。

函数的调用

调用函数非常简单,只需使用函数名加上小括号即可:

函数名()

案例演练

需求1:打招呼函数

编写一个 say_hello 函数,封装三行打招呼代码:

def say_hello():    print("hello 1")    print("hello 2")    print("hello 3")    print(name)

需求2:调用打招呼函数

在函数下方调用打招呼代码:

say_hello()print(name)

函数的参数

参数的作用

函数参数允许函数在处理数据时具有通用性,能够适应更多的数据需求。在函数内部,参数作为变量使用进行数据处理;在调用时,按照定义的顺序传递需要处理的数据。

形参和实参

  • 形参:定义函数时小括号内的参数,是函数接收的参数。
  • 实参:调用函数时小括号内的参数,是传递给函数的数据。

参数的演练

开发一个 sum_2_num 函数,实现两个数字的求和:

  • 初步实现
def sum_2_num(num1, num2):    result = num1 + num2    print(f"{num1} + {num2} = {result}")sum_2_num(10, 20)
  • 问题分析:该函数只能处理固定数值的相加。
  • 优化思路:通过传递参数实现通用性。

参数的实现

修改后的函数:

def sum_2_num(num1, num2):    result = num1 + num2    print(f"{num1} + {num2} = {result}")sum_2_num(50, 20)

函数的返回值

返回值的作用

函数可以通过返回值将结果传递给调用者,便于后续处理。

返回值的实现

修改后的函数:

def sum_2_num(num1, num2):    return num1 + num2result = sum_2_num(10, 20)print(f"计算结果是 {result}")

函数的嵌套调用

嵌套调用的概念

函数内部可以调用另一个函数,形成嵌套调用。执行嵌套函数时,会先完成嵌套函数的任务,再返回到调用位置继续执行。

嵌套调用的示例

定义两个函数 test1test2

def test1():    print("*" * 50)    print("test 1")    print("*" * 50)def test2():    print("-" * 50)    print("test 2")    test1()    print("-" * 50)test2()

模块的使用

模块的概念

模块是Python程序架构的核心概念,类似于工具包。模块文件以 .py 为扩展名,模块中的函数和变量可供外部使用。

模块的导入

在另一个文件中使用模块:

import hm_10_分隔线模块hm_10_分隔线模块.print_line("-", 80)print(hm_10_分隔线模块.name)

模块名的命名规则

模块名应符合标识符规则:可以由字母、下划线和数字组成,但不能以数字开头,也不能与关键字重名。

字节码的作用

Python将源代码编译为字节码文件(如 .pyc),以提高程序启动速度。模块的字节码文件在下次运行时会被加载和使用。

字节码的优化

Python会检查源码和字节码的时间戳,如果源码未修改,将加载现有的字节码文件,避免重复编译。

总结

通过学习函数的定义、调用、参数、返回值和嵌套调用,我们掌握了编写和使用高效代码的核心技能。模块的使用则为代码的复用和管理提供了有力支持。理解这些概念对于编写高效、可维护的Python程序至关重要。

转载地址:http://ixux.baihongyu.com/

你可能感兴趣的文章
opencv之模糊处理
查看>>
Opencv介绍及opencv3.0在 vs2010上的配置
查看>>
OpenCV使用霍夫变换检测图像中的形状
查看>>
opencv保存图片路径包含中文乱码解决方案
查看>>
OpenCV保证输入图像为三通道
查看>>
OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
opencv图像分割2-GMM
查看>>
opencv图像分割3-分水岭方法
查看>>
opencv图像切割1-KMeans方法
查看>>
OpenCV图像处理篇之阈值操作函数
查看>>
opencv图像特征融合-seamlessClone
查看>>
OpenCV图像的深浅拷贝
查看>>
OpenCV在Google Colboratory中不起作用
查看>>
OpenCV学习(13) 细化算法(1)(转)
查看>>
OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
查看>>
OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
查看>>
OpenCV学堂 | OpenCV中支持的人脸检测方法整理与汇总
查看>>
OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
查看>>
OpenCV学堂 | YOLOv8与YOLO11自定义数据集迁移学习效果对比
查看>>
OpenCV学堂 | YOLOv8官方团队宣布YOLOv11 发布了
查看>>