python系列-函数(上)

news2024/10/7 10:17:50

 🌈个人主页: 会编程的果子君
💫个人格言:“成为自己未来的主人~”

 

目录

函数

函数是什么

语法格式

函数参数

函数返回值 


函数

函数是什么

编程中的函数和数学中的函数有一定的相似之处

编程中的函数,是一段可以被重复利用的代码片段

代码示例:求数列的和,不使用函数

# 求1-100的和
sum=0
for i in range(1,101):
    sum+=i
print(sum)

 

 代码示例:求数列的和,使用函数

# 定义函数
def calcSum(beg, end):
    sum = 0
    for i in range(beg, end + 1):
        sum += i
    print(sum)
# 调用函数
calcSum(100,200)

语法格式

创建函数/定义函数


def 函数名(形参列表):
    函数体
    return 返回值

调用函数/使用函数

 


函数名(实参列表)         //不考虑返回值
返回值=函数名(实参列表)   //考虑返回值

函数定义并不会执行函数体内容,必须要调用才会执行,调用几次就会执行几次

 


def test():
    print('hello')
    
# 如果光是定义函数,而不调用,则不会执行

函数必须先定义,再使用

 

test()

def test():
    print('hello')
    

还没有执行到定义就先执行到调用,此时可能会报错

函数参数

在函数定义的时候,可以在()中指定形式参数(简称“形参”),然后再调用的时候 ,由调用者把“实际参数”(简称“实参”)传递进去。

这样就可以做到一份函数,针对不同的数据进行计算处理。

注意:

  • 一个函数可以有一个形参,也可以有多个形参,也可以没有形参
  • 一个函数的形参有几个,那么传递实参的时候也得传几个,保证个数要匹配。
  • 和C++/Java不同,Python是动态类型的编程语言,函数的形象不必指定参数类型,换句话说,一个函数可以支持多种不同类型的参数
def test(a):
    print(a)

test(10)
test('hello')
test(True)

 

函数返回值 

函数的参数可以视为是函数的“输入”,则函数的返回值,就可以视为是函数的“输出”

下列代码


def calaSum(beg,end):
    sum=0
    for i in range(beg,end+1):
        sum+=i
    print(sum)
calaSum(1,100)


def calaSum(beg,end):
    sum=0
    for i in range(beg , end+1):
        sum+=i
    return sum

result = calaSum(1,100)
print(result)

 

这两个代码的区别就在于,前者直接在函数内部进行了打印,后者则使用 return  语句把结果返回给函数调用者,再由调用者负责打印。

我们一般倾向于第二种写法

实际开发过程中我们的一个通常的编程逻辑,是“逻辑和用户交互分离”,而第一种写法的函数中的计算逻辑,又包含了和用户交互(打印到控制台上),这种写法是不太好的,如果后续我们需要的是把计算结果保存到文件中,或者通过网络发送,或者展示到图形化界面里,那么第一种写法就难以胜任了。

而第二种写法则专注于做计算逻辑,不负责和用户交互,那么就很容易把这个逻辑搭配不同的交互代码,来实现不同的效果。

一个函数中可以有多个return语句

def isodd(num):
    if num % 2 ==0:
        return False
    else:
        return True

result = isodd(10)
print(result)

 执行到 return 语句,函数就会立即执行结束,回到调用位置

def isodd(num):
    if num % 2 ==0:
        return False
    return True

result = isodd(10)
print(result)

 

 

 

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

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

相关文章

Oracle Linux 9.3 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

Unity工程没有创建.sln文件,导致打开C#文件无法打开解决方案

最近又开始折腾些Unity的小项目,重新遇到一些常见的小问题 点击报错文件 却没有打开文件 于是查看了下打开Window->Package Manager 选择Unity Registry 搜索Visual Studio Editor,发现并没有安装 同理,也可以安装VSCode的插件 问题解决了…

【服务器】安装Docker环境

目录 🌺【前言】 🌼1. 打开Xshell软件 🌻2. 安装Docker环境 ①:下载docker.sh脚本 ②:列出下载的内容 ③:执行一下get-docker.sh文件,安装docker ④:运行docker服务 ⑤&…

Python IO流

第一章、IO流 一、概述 1、IO流概念 2、IO流的分类 在Python中,I/O(输入/输出)流是处理数据输入和输出的机制。它们用于从文件、网络连接、内存等源读取数据,或将数据写入到这些目标中。I/O流以字节流和字符流的形式存在。 Pyth…

C++版QT:电子时钟

digiclock.h #ifndef DIGICLOCK_H #define DIGICLOCK_H ​ #include <QLCDNumber> ​ class DigiClock : public QLCDNumber {Q_OBJECT public:DigiClock(QWidget* parent 0);void mousePressEvent(QMouseEvent*);void mouseMoveEvent(QMouseEvent*); public slots:voi…

Git--创建仓库(1)

git init Git 使用 git init 命令来初始化一个 Git 仓库&#xff0c;Git 的很多命令都需要在 Git 的仓库中运行&#xff0c;所以 git init 是使用 Git 的第一个命令。 在执行完成 git init 命令后&#xff0c;Git 仓库会生成一个 .git 目录&#xff0c;该目录包含了资源的所有…

使用trace工具分析Mysql如何选择索引

背景说明 工作中,可能会遇到执行一个SQL,明明有索引,但是采用explain分析后发现执行结果并未走索引。甚至还有部分SQL语句相同就只是查询条件不一样也会出现有的走索引,有的不走索引情况。比如: 我的示例环境有个employees表,并有个idx_name_age_position的联合索引…

消息中间件之RocketMQ事务消息流程(二)

所谓事务消息就是基于消息中间件模拟的两阶段提交(2PC)&#xff0c;属于对消息中间件的一种特殊利用。总体思路如下: 1.系统A先向消息中间件发送一条预备消息(Half Message)&#xff0c;消息中间件在保存好消息之后向系统A发送确认消息 2.系统A执行本地事务 3.系统A根据本地事务…

Java毕业设计-基于ssm的学生社团活动管理系统-第82期

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于ssm的学生社团活动管理系统&#xff1a;前端 jsp、jquery、ajax&#xff0c;后端 springmvc、spring、mybaties&#xff0c;角色分为管理员、学生、社团、用户&#…

html火焰文字特效

下面是代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>HTML5火焰文字特效DEMO演示</title><link rel"stylesheet" href"css/style.css" media"screen" type&quo…

即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv

大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…

C++ STL之list的使用及模拟实现

文章目录 1. 介绍2. list类的使用2.1 list类对象的构造函数2.2 list类对象的容量操作2.3 list类对象的修改操作2.4 list类对象的访问及遍历操作 3. list类的模拟实现 1. 介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭…

智慧工厂视频监控平台EasyCVR公网收流后内网设备无法播放是什么原因?

安防视频监控平台EasyCVR采用了开放式的网络结构&#xff0c;支持高清视频的接入和传输、分发&#xff0c;平台提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;此外&am…

OSPF基础华为ICT网络赛道

6.1.OSPF协议概述 由协议之中OSPF(Open Shortest Path First,开放式最短路径优先)协议是使用场 景非常广泛的动态路由协议之一。 OSPF在RFC2328中定义&#xff0c;是一种基于链路状态算法的路由协议。 静态路由是由工程师手动配置和维护的路由条目&#xff0c;命令行简单明确…

XTuner InternLM-Chat 个人小助手认知微调实践

1.概述 目标&#xff1a;通过微调&#xff0c;帮助模型了解对自己身份 方式&#xff1a;使用XTuner进行微调 2.实操 2.1微调环境准备 参考&#xff1a; XTuner复现-CSDN博客 # InternStudio 平台中&#xff0c;从本地 clone 一个已有 pytorch 2.0.1 的环境&#xff08;后…

Linux 部署mongodb

Linux 部署mongodb 一、mongodb安装包下载二、mongodb安装三、连接测试 linux tar包方式部署mongodb 一、mongodb安装包下载 查看系统版本与架构 cat /etc/redhat-release uname -mhttps://www.mongodb.com/download-center/community?jmpdocs下载对应操作系统版本 选择保存…

题记(26)--Sharing(链表公共后缀)

目录 一、题目内容 二、输入描述 三、输出描述 四、输入输出示例 五、完整C语言代码 一、题目内容 To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if…

RuoYi-Cloud本地部署--详细教程

文章目录 1、gitee项目地址2、RuoYi-Cloud架构3、本地部署3.1 下载项目3.2 idea打开项目3.3 启动nacos3.4 若依数据库准备3.5 启动redis3.6 修改nacos中的各个模块的配置文件3.7 启动ruoyi前端项目3.8 启动各个微服务模块 4、启动成功 1、gitee项目地址 https://gitee.com/y_p…

JSP的学习

1.JSP概念: Java服务端页面;一种动态的网页技术,既可以定义HTML,JS,CSS等静态内容,也可以定义Java代码的动态内容;JSPHTMLJava;JSP的作用:简化开发,避免了在Servlet中直接输出HTML标签; 2.JSP快速入门 3.JSP原理 概念&#xff1a;Java Server Pages&#xff0c;Java服务端页…

AI分割一切模型SAM(Segment Anything Model)的C++部署

2023年最火爆的分割模型莫过于SAM&#xff0c;截止今天2024年1月19日&#xff0c;github上的star已经达到了41.7k的惊人数量。下面我们来体会一下如何运行这个模型&#xff0c;以及如何用C部署这个模型。 检查cuda环境 我的Cuda版本是12.0.1&#xff0c;如下&#xff0c; Cudn…