python函数一:函数的概念、函数定义与调用、函数的参数、函数的返回值、说明文档以及函数的嵌套调用

news2024/11/15 1:44:14

文章目录

  • 1. 函数介绍
    • 1.1 函数的概念
    • 1.2 函数定义与调用
    • 1.2 函数的参数
    • 1.3 函数的返回值
    • 1.4 说明文档
  • 2. 函数的嵌套调用
    • 2.1 嵌套调用及执行流程
    • 2.2 嵌套调用的应用

1. 函数介绍

1.1 函数的概念

什么是函数?

函数:是一个被命名的、独立的、完成特定功能的代码段,其可能给调用它的程序一个返回值
通俗的说函数就是把一段可以实现某种功能的代码封装起来, 想要使用这个功能就可以直接调用函数。

被命名的:在Python中,大部分函数都是有名函数。
完成特定功能的代码段:函数的功能要专一,专门为了完成某个功能而定义。
返回值:当函数执行完毕后,其可能会返回一个值给函数的调用处。

函数的主要作用:
① 模块化编程
② 代码重用

函数中的几个重要概念:

  • 函数
  • 参数
  • 返回值

函数语法:

def 函数名([参数, ..]):
    代码1
    代码2
    ...
    [return 具体的值]

1.2 函数定义与调用

Python函数需要使用def关键字来定义。使用方式有两步:

(1)先定义

(2)后调用

当然了,函数在使用时,特点:

(1)先定义,后调用;
(2)不调用,不执行;
(3)调用一次,执行一次。

定义函数:

def 函数名():
    代码1
    代码2
    ...

调用函数:

函数名()

实例:
(1)编写一个show()函数,并在函数中输出:bug虐我千百遍, 我待bug如初恋。

(2)调用函数,观察执行结果。

# 1.定义
def show():
    print("bug虐我千百遍, 我待bug如初恋.")

# 2.调用
show()  # 1.写对函数名;   2.()

# 扩展
def show():
    # 代码
    pass

1.2 函数的参数

当在定义函数时,设定了参数,则可称该函数为:有参函数。反之,没有参数的函数,称为:无参函数。

定义有参数的函数,语法:

def 函数名(参数1,参数2,...):  # 形参
	代码1
    代码2
    ...

调用函数,语法:

函数名(参数值1,参数值2,...)  # 实参

说明:
(1)形参是指形式参数,表示在定义函数时的参数;
(2)实参是指实际参数,表示在调用函数时传递的参数值,具有实际意义。

实例:
(1)定义一个函数,用于求解两个数之和;

(2)接着,调用函数并执行程序,观察效果。

# 1.定义函数
def get_sum(a,b):
    ret = a + b
    print(f"两个数之和为:{ret}")

# 2.调用函数
get_sum(10,20)

总结
(1)当定义了有参数的函数时,调用函数也需要传递参数值;

(2)注意:当给有参函数传递参数时,要关注参数的三要素:个数、类型、顺序。

1.3 函数的返回值

函数的返回值指的是:当函数完成一件事情后,最后要返回给函数的结果。

返回值语法:

def 函数名([参数1, 参数2, ...]):
	代码1
	代码2
	...
	return 值

(1)若要给函数返回结果,需要使用return关键字;
(2)return关键字的作用:把结果返回给函数;结束函数;
(3)当函数没有返回值时,默认返回None。

实例:
(1)定义一个函数1,用于求解两个数之积,并把积返回给函数;

(2)定义一个函数2,用于求解两个数的差、和,并同时返回给函数;

(3)定义一个函数3,输出:人生苦短,我用Python;

(4)执行程序,观察效果。

# 1.求解积
def get_multiply(a, b):
    ret = a * b
    return ret

print(get_multiply(10,20))   # print()
print('-'*50)

# 2.求差、和
def get_sub_sum(a, b):
    ret1 = a -b
    ret2 = a + b
    return ret1,ret2   # 元组
result = get_sub_sum(30,14)
print(result)
print('-'*50)

# 3.输出:人生苦短,我用Python(输出没有返回值)
def show():
    print("人生苦短,我用Python。")
print(show())

1.4 说明文档

说明文档指的是:在定义函数的第一行,加上多行注释。这样的操作,可以让函数更加规范化。

当添加了说明文档后,在调用函数时,就能查看到函数的作用提示。

那么如何给函数添加说明文档呢?

查看print()函数
在这里插入图片描述

def 函数名():
    """ 说明文档的位置 """
    代码
    ...

当需要看函数的说明文档的具体内容时,语法:

help(函数名)

实例:
例如,一起来完成:

(1)定义一个函数1,无说明文档内容,输出:一山不容二虎;

(2)定义一个函数2,添加说明文档内容;

(3)执行程序,对比两个函数显示效果。

def func():
    """输出一句话"""
    print("="*40)
    print("一山不容二虎,除非一公和一母!")
    print("="*40)

func()
print(help(func))

# 没有说明文档
# def show():
#     print("一山不容二虎.")
#
# show()
# print(help(show))

2. 函数的嵌套调用

2.1 嵌套调用及执行流程

函数的嵌套调用指的是:在一个函数中,调用了另一个函数。

嵌套调用语法:

def 函数1():
	代码
	...

def 函数2():
	代码
	# 调用函数1
	函数1()
	...

说明:在函数2中,调用了函数1。
实例:
例如,一起来完成:

(1)先定义一个test()函数和func()函数;

(2)接着,在函数test()中,嵌套调用func()函数,并在外部调用test()函数;

(3)执行程序,观察效果;

# 1.定义func()
def func():
    print("==========AA===============")
    print("==========Nfunc()============")
    print("==========BB===============")

# 2.定义test()、调用func()
def test():
    print("*************11****************")
    func()
    print("**********M调用了test方法**************")
    print("*************22****************")

# 3.调用test()
test()   # 1ANBM2

2.2 嵌套调用的应用

使用函数的嵌套调用,可以把复杂的问题分解成:多个简单问题,这样便于解决问题。
比如,要求多个数的平均值。此时就可以拆分成两个函数:

  • 函数A:用于求解多个数之和;
  • 函数B:调用函数A,获取多个数之和,接着,再使用和除以总个数,就能求解出平均值。
    实例:
    (1)要完成一个输出任意条横线的需求;

(2)定义函数1:用于输出一条横线;

(3)定义函数2:先循环N次,再调用函数1,可输出N条横线;

(4)执行程序,观察效果。

# 1.定义函数
def line():
    print("-"*40)

# 2.N条横线
def print_lines(num):
    i = 0
    while i < num:
        # 嵌套调用
        line()
        i += 1

print_lines(10)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2144689.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用c#制作一个小型桌面程序

封装dll 首先使用visual stdio 创建Dll新项目,然后属性管理器导入自己的工程属性表&#xff08;如果没有可以参考visual stdio 如何配置opencv等其他环境&#xff09; 创建完成后 系统会自动生成一些文件&#xff0c;其中 pch.cpp 先不要修改&#xff0c;pch.h中先导入自己需…

Python画笔案例-053 绘制海龟螺旋图

1、绘制海龟螺旋图 通过 python 的turtle 库绘制 海龟螺旋图&#xff0c;如下图&#xff1a; 2、实现代码 绘制海龟螺旋图&#xff0c;以下为实现代码&#xff1a; """海龟螺旋图.py""" import turtle from random import randintscreen turtl…

引入第三方字体图标icon

引入第三方字体图标icon 1.登录阿里巴巴icon库 2.点开ui提供的字体图标并下载 3.解压download 将font_4008950_i6fkbudh8ld文件放置项目中例如&#xff1a;放在assets文件夹下 4.然后再main.js中引入 import ‘/assets/font_4008950_i6fkbudh8ld/iconfont.css’; 5.项目中应…

Rsync未授权访问漏洞复现及彻底修复

一、什么是 Rsync&#xff1f; Rsync 是一种广泛使用的文件传输工具&#xff0c;它允许系统管理员和用户通过局域网&#xff08;LAN&#xff09;或广域网&#xff08;WAN&#xff09;在计算机之间同步文件和目录。Rsync 支持通过本地或远程 shell 访问&#xff0c;也可以作为守…

STM32——输入捕获

输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器&#xff0c;除了TIM6、TIM7&#xff0c;其他的定时器都有输入捕获的功能。应用场景是编码器。 测量频率 当捕获通道TIx 上出现上升沿时&#xff0c;发生第一次捕获&#xff0c;计数器CNT 的值会被锁存到捕获寄存…

Java中的红黑树(如果想知道Java中有关红黑树的知识点,那么只看这一篇就足够了!)

前言&#xff1a;红黑树作为一种自平衡的二叉搜索树&#xff0c;在计算机科学领域具有极其重要的地位。它通过颜色约束和旋转操作保持树的高度平衡&#xff0c;从而保证了查找、插入、删除等操作的高效性。红黑树广泛应用于操作系统的调度算法、数据库索引、Java集合框架等领域…

「全球大模型竞技场」更新:DeepSeek-V2.5全面领跑国内模型

原文&#xff1a;深度求索 DeepSeek 月初&#xff0c;我们发布并开源了 DeepSeek-V2.5&#xff0c;一个融合通用与代码能力的全新模型。 近日&#xff0c;LMSYS 组织的全球大模型竞技场&#xff08;ChatBotArena&#xff09;更新结果发布&#xff0c;DeepSeek-V2.5 排名位列国…

额定剩余动作电流继电器有什么功能?

ASJ系列剩余电流动作继电器可与低压断路器或低压接触器等组装成组合式的剩余电流动作保护器&#xff0c;为现代电力系统设计&#xff0c;旨在提高电力系统的安全性和可靠性。其技术和多功能特性使其成为电力管理和监测的理想选择。主要适用于交流50Hz&#xff0c;额定电压为400…

iPhone 16系列:熟悉的味道,全新的体验

来看看iPhone 16和Plus这两个新成员&#xff0c;实话说&#xff0c;它们和之前曝光的样子几乎完全一致。下面我们就一起来细数一下这次的几大变化吧。 外观设计&#xff1a;焕然一新 首先&#xff0c;最显眼的变化就是后置镜头模组的布局调整为了垂直排列。这一改变使得整个背…

29912分页

拆分地址&#xff1a; 003FDFB0 0000 0000 0011 1111 1101 1111 1011 000000 0*8 00 0000 001 -> 1*8 1 1111 1101 -> 1FD*8 1111 1011 0000 -> FB0PROCESS 883ef7c8 SessionId: 1 Cid: 09b0 Peb: 7ffdf000 ParentCid: 0588DirBase: bf2484a0 ObjectTable: 98…

将多个pdf合并成一个文件?这几种合并方法很好用!

如何将多个pdf合并成一个文件&#xff1f;面对日益增长的PDF文档&#xff0c;我们时常陷入管理困境&#xff0c;这不仅仅关乎于时间与精力的巨大消耗&#xff0c;因为这些孤立的PDF文件如同散落的拼图碎片&#xff0c;让关键信息的搜寻变得如同大海捞针&#xff0c;严重拖慢了工…

双指针算法:快速解决问题的小技巧(Java代码实现)

“人的一生是短暂的&#xff0c;但如果卑鄙地过这短暂的一生&#xff0c;那就太长了。” 文章目录 前言文章有误敬请斧正 不胜感恩&#xff01;双指针简介对撞指针快慢指针例题聪明的小羊肖恩神奇的数组盛最多的水 总结 前言 写在开始&#xff1a; 双指针算法是一种经典且高效…

“中秋快乐”文字横幅的MATLAB代码生成

中秋快乐呀朋友们&#xff01;&#xff01;&#xff01; 给大家带来一个好玩的代码&#xff0c;能够生成“中秋快乐”的横幅文字&#xff0c;比较简单&#xff0c;当然你也可以根据自己的需求去更改文字和背景&#xff0c;废话不多说&#xff0c;直接展示。 文字会一直闪烁&…

智能BI项目第三期

AIGC AI 提问技巧 为了让 Al 更好地理解我们的输入&#xff0c;并给出预期精确的输出&#xff0c;需要严格控制我们的提问词。 1.使用系统预设 控制输入格式(便于Al精确地理解我们的需求) 你是一个数据分析师和前端开发专家&#xff0c;接下来我会按照以下固定格式给你提供…

《深度学习》PyTorch框架 优化器、激活函数讲解

目录 一、深度学习核心框架的选择 1、TensorFlow 1&#xff09;概念 2&#xff09;优缺点 2、PyTorch 1&#xff09;概念 2&#xff09;优缺点 3、Keras 1&#xff09;概念 2&#xff09;优缺点 4、Caffe 1&#xff09;概念 2&#xff09;优缺点 二、pytorch安装 1、安装 2、…

传输层协议 —— UDP协议

目录 0.前言 1.UDP协议格式 16位源端口和目的端口 16位UDP长度 16位校验和 2.UDP协议特点 无连接 不可靠 面向数据报 3.UDP的缓冲区 0.前言 首先&#xff0c;我们得明确一点&#xff0c;网络模型是分层的。自底向上分别是物理层、数据链路层、网络层、传输层、应用层…

Nginx反向代理出现502 Bad Gateway问题的解决方案

&#x1f389; 前言 前一阵子写了一篇“关于解决调用百度翻译API问题”的博客&#xff0c;近日在调用其他API时又遇到一些棘手的问题&#xff0c;于是写下这篇博客作为记录。 &#x1f389; 问题描述 在代理的遇到过很多错误码&#xff0c;其中出现频率最高的就是502&#x…

JavaEE:网络编程(套接字)

文章目录 Socket套接字TCP和UDP的区别有连接/无连接可靠传输/不可靠传输面向字节流/面向数据报全双工/半双工 UDP/TCP api的使用UDPDatagramSocketDatagramPacketInetSocketAddress练习 TCPServerSocketSocket练习 Socket套接字 Socket是计算机网络中的一种通信机制&#xff0…

驱动开发知识点

裸机开发 ——————————————linux驱动 SOC&#xff1a; 定义&#xff1a;SOC&#xff0c;全称System on Chip&#xff0c;是一种集成了多个功能模块的芯片&#xff0c;包括处理器、内存、外设、接口等。它将原本分散在多个芯片上的功能集成到一个芯片上&#xff0…

一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)

前言 随着互联网应用的发展&#xff0c;后台管理系统的复杂度不断增加&#xff0c;对于开发者而言&#xff0c;既要系统的功能完备&#xff0c;又要追求开发效率的提升。然而&#xff0c;传统的开发方式往往会导致大量的重复劳动&#xff0c;尤其是在构建复杂的管理页面时。有…