Python基础知识—函数(五)

🎬 秋野酱:《个人主页》
🔥 个人专栏:《Java专栏》《Python专栏》
⛺️心若有所向往,何惧道阻且长

文章目录

    • 一:函数基础
      • 1.1函数的定义和调用
      • 1.2函数的定义格式
      • 1.3函数的调用格式
      • 1.4第一个函数
    • 二:函数的文档注释
    • 三:函数的参数
      • 3.1参数的定义和调用
      • 3.2参数的使用
    • 四: 函数的返回值
    • 五:函数多返回值
    • 六:函数的四种类型
      • 6.1无参无返回值
      • 6.2无参有返回值
      • 6.3有参无返回值
      • 6.4 有参有返回值
    • 七:函数的形参和实参
      • 7.1形参
      • 7.2实参
      • 7.3形参作用域
      • 八:局部变量和全局变量
      • 8.1局部变量
      • 8.2全局变量
      • 8.3函数内修改全局变量

一:函数基础

函数(function)是程序非常重要的组成部分,是计算机执行命令的单元;
所谓函数,就是把 具有独立功能的代码块 组织为一个整体,在需要的时候 调用;
使用函数可以提高编写的效率以及代码的重用

1.1函数的定义和调用

函数的使用包含两个步骤:
定义函数 —— 在函数中编写代码,实现功能
调用函数 —— 执行编写的代码

1.2函数的定义格式

def 函数名():函数封装的代码

def是英文define的缩写;
函数名的命名规则和变量的命名规则要保持一致

1.3函数的调用格式

函数名()

1.4第一个函数

需求

1. 编写一个打招呼 say_hello 的函数,封装三行打招呼的代码
2. 在函数下方调用打招呼的代码
# 定义函数
def say_hello():print('hello world')print('hello world')print('hello world')# 调用函数
say_hello()

二:函数的文档注释

函数名并不能完全表示出函数的含义,定义函数的时候就需要给函数加上注释。
函数的注释就是文档注释,以后可以根据此内容查看函数使用说明,或用于生成API文档。

注释的规则和格式如下:
● 注释应该定义在函数的下方
● 使用三对引号注释
● 调用函数时, 鼠标悬浮在函数名上可以查看函数的说明信息

def say_hello2():"""这是给林青霞打招呼的方法:return:"""print('hello 林青霞')

三:函数的参数

函数的参数,可以传递数据给函数内部
参数的作用是增加函数的 通用性

3.1参数的定义和调用

# 定义函数
def 函数名(参数1, 参数2):函数代码# 调用函数
函数名(参数1, 参数2)

3.2参数的使用

需求

定义函数,传递a和b,求a和b的和
def sum(a,b):"""这个函数是求两个数据的和:param a: 第一个数据:param b: 第二个数据:return: a和b的和"""result = a + bprint(result)# 调用
sum(10,20)

四: 函数的返回值

● 开发中,有时会希望一个函数执行结束后,告诉调用者一个结果,以便调用者对结果做后续处理
● 返回值是函数给调用方提供的结果
● 函数中使用return关键字返回结果
● 调用函数一方,可以通过变量来接收函数的返回结果

函数返回值
需求

定义函数返回两个数最大值

实现

# 定义函数
def my_max(a,b):if a > b:return aelse:return b# 调用函数
max_value = my_max(10,20)

五:函数多返回值

函数可以返回多个结果

def calc(a, b):'''求a+b以及a-b的结果:param a::param b::return: 结果的元组'''sum = a + bsub = a-breturn sum, sub

上面函数同时返回了两个数的和以及两个数的差
返回的结果会自动组包成为一个元组数据,接收的时候可以分别接收sum、sub

# 分别接收和以及差
sum, sub = calc(10, 20)

六:函数的四种类型

函数按照是否有参数以及返回值可以将函数分成四种类型

6.1无参无返回值

def say_hello():print('hello')

6.2无参有返回值

**import random
def get_temp():return random.randint(0,100)**

6.3有参无返回值

def say_hello(name):print('hello %s'%name)

6.4 有参有返回值

def sum(a, b):return a + b

七:函数的形参和实参

7.1形参

全称为形式参数。是在定义函数的时候使用的参数,用来接收调用该函数时传入的参数

def sum(a, b):return a + b

a和b属于形参,形参在函数调用的时候才赋值

7.2实参

全称为实际参数,是在调用时传递给函数的参数
sum(10, 20)

7.3形参作用域

作用域指的是变量的可用范围
● 形参的作用域只在函数内,超出函数就不能再使用了
● 作用域可以减少不同函数的命名冲突

八:局部变量和全局变量

8.1局部变量

● 局部变量,指的是在函数内部定义的变量
● 局部变量的目的是存储需要临时保存的数据

def func1():# 局部变量b = 20print('hello%d' % b)

注意:
● 不同的函数,可以定义相同名字的局部变量
● 局部变量的作用域只在函数内部

8.2全局变量

全局变量是在整个py文件中声明,全局范围内都可以访问
# 全局变量
m = 10
n = 20def func():# 函数内访问全局变量print(m)

8.3函数内修改全局变量

如果要在函数内部修改全局变量 需要首先使用global关键字将声明全局变量

# 定义全局变量
m = 10def func():# 使用global声明全局变量global m# 将m修改成20m = 30print("函数内部 m=", m)

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

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

相关文章

Pixelmator Pro for Mac:简洁而强大的图像编辑软件

Pixelmator Pro for Mac是一款专为Mac用户设计的图像编辑软件,它集简洁的操作界面与强大的功能于一身,为用户提供了卓越的图像编辑体验。 Pixelmator Pro for Mac v3.5.9中文激活版下载 该软件支持多种文件格式,包括常见的JPEG、PNG、TIFF等&…

系统触发器

目录 数据库触发器 常见触发器,记录登录和退出数据库事件 模式触发器 创建一个模式触发器,记录各种 DDL 操作的日志 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 前面已经介绍过,…

WEB攻防-PHP特性-函数缺陷对比

目录 和 MD5函数 intval ​strpos in_array preg_match str_replace 和 使用 时,如果两个比较的操作数类型不同,PHP 会尝试将它们转换为相同的类型,然后再进行比较。 使用 进行比较时,不仅比较值,还比较变量…

MATLAB非均匀网格梯度计算

在matlab中,gradient函数可以很方便的对均匀网格进行梯度计算,但是对于非均匀网格,但是gradient却无法求解非均匀网格的梯度,这一点我之前犯过错误。我之前以为在gradient函数中指定x,y等坐标,其求解的就是…

Metasploit 溢出 samba 提权漏洞

一、信息收集 1.1 右键单击桌面,选择 Open Terminal Here ,打开终端。 1.2 输入命令 nmap -sS -p 139,445 -A 192.168.1.254 ,对目标主机进行扫描,发现 139、445 端口开放。 1.3 输入命令“msfconsole”,启动 MSF 终端。 1.4 输入命令“searc…

电脑录制视频快捷键,一键开启录屏新时代(干货)

“最近尝试录制一些电脑上的操作视频,用来制作教学教程。不过,每次录制都要通过菜单或搜索来打开录屏软件,实在是有些繁琐。有没有人知道哪些电脑录制视频的快捷键呀?或者有没有通用的快捷键设置方法?” 在当今数字时…

免费语音转文字:自建Whisper,贝锐花生壳3步远程访问

Whisper是OpenAI开发的自动语音识别系统(语音转文字)。 OpenAI称其英文语音辨识能力已达到人类水准,且支持其它98中语言的自动语音辨识,Whisper神经网络模型被训练来运行语音辨识与翻译任务。 此外,与其他需要联网运行…

MySQL中脏读与幻读

一般对于我们的业务系统去访问数据库而言,它往往是多个线程并发执行多个事务的,对于数据库而言,它会有多个事务同时执行,可能这多个事务还会同时更新和查询同一条数据,所以这里会有一些问题需要数据库来解决 我们来看…

centos 7使用源码编译安装Python 3.12.2(最新版本)

(一)、说明 在centos 7上,默认安装出来的python是:2.7.5版本 1.查看python版本: python --version 2.通过yum安装出来的,适合当前操作系统的,最新的python版本是:3.6.8 python3…

云手机对出海企业有什么帮助?

近些年,越来越多的企业开始向海外拓展,意图发掘更广阔的市场。在这过程中,云手机作为一个新型工具为很多企业提供了助力,尤其在解决海外市场拓展过程中的诸多挑战方面发挥着作用。 首先,云手机的出现解决了企业在海外拓…

【Linux系统化学习】死锁 | 线程同步

目录 死锁 死锁的必要条件 避免死锁 线程同步 条件变量 同步概念和竞态条件 条件变量接口 创建和初始化条件变量 等待条件满足 唤醒等待 毁条件变量 为什么 pthread_cond_wait 需要互斥量? 条件变量使用规范 等待条件代码 给条件发送信号代码 死锁 死锁是指在一…

扭蛋机小程序带来了什么优势?扭蛋机收益攻略

在当下的潮流消费时代,人们对潮玩也日益个性化,扭蛋机作为一种新型的娱乐消费模式,深受大众喜爱。扭蛋机的价格低,各个年龄层的玩家都可以进行购买,潜在玩家量非常大。扭蛋机商品主打热门IP周边等,种类繁多…

【PostgreSQL】Postgres数据库安装、配置、使用DBLink详解

目录 一、技术背景1.1 背景1.2 什么是 DBLink 二、安装配置 DBLink2.1 安装 DBLink2.2 配置 DBLink1. 修改 postgresql.conf2. 修改 pg_hba.conf 三、DBLink 使用3.1 数据准备3.2 DBLink 使用1. 创建 DBLink 连接2. 使用 DBLink 进行查询3. 使用 DBLink 进行增删改4. 使用 DBLi…

python代码实现kmeans对鸢尾花聚类

导入第三方库和模型 from sklearn import datasets import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans2、创建画图函数 def draw_result(train_x, labels, cents, title):n_clusters np.unique(labels).shape[0]#获取类别个数color …

用vue3实现留言板功能

效果图&#xff1a; 代码&#xff1a; <script setup lang"ts"> import { ref } from vue;interface Message {name: string;phone: string;message: string; }const name ref<string>(); const phone ref<string>(); const message ref<st…

Llama 3 安装使用方法

Llama3简介&#xff1a; llama3是一种自回归语言模型&#xff0c;采用了transformer架构&#xff0c;目前开源了8b和70b参数的预训练和指令微调模型&#xff0c;400b正在训练中&#xff0c;性能非常强悍&#xff0c;并且在15万亿个标记的公开数据进行了预训练&#xff0c;比ll…

python——井字棋游戏——登入注册界面

本篇文章只讲解登入和注册页面&#xff0c;在后面的文章中会讲解井字棋游戏&#xff0c;然后把井字棋和登入界面进行连接&#xff0c;整合成一个完整的游戏。 登入注册界面在本篇文章的末尾。 1.实现登入界面 &#xff08;1&#xff09;导入图片 把这张图片存储在与代码路径…

Rundeck(四)安全配置

自动化运维工具rundeck GitHub - rundeck 是java开发的开源自动化服务&#xff0c;具有 Web 控制台、命令行工具和 WebAPI。它使您可以轻松地跨一组节点运行自动化任务&#xff0c;适合运维自动化管理、自动发布管理、运维数据分析等 网站&#xff1a;https://www.rundeck.co…

人人开源框架运行

Getting started renrenio/renren-fast-vue Wiki GitHub 人人开源 1.启动navicat&#xff1a;新建一个数据库renren-fast&#xff0c;字符集为utf-8,utf-8mb3或者utf-8mb4&#xff0c;排序规则不选 2.数据库操作在renren-fast数据库中选择表&#xff0c;运行renren-fast-ma…

LeetCode 每日一题 ---- 【1017.负二进制转换】

LeetCode 每日一题 ---- 【1017.负二进制转换】 1017.负二进制转换方法一&#xff1a;模拟进制转换推广&#xff1a;任意进制转换 1017.负二进制转换 方法一&#xff1a;模拟进制转换 我们平常做进制转换最常用的方法就是辗转相除法&#xff0c;下面的图示分别给出了普通的10…