当前位置: 首页 > news >正文

Python函数 之 函数基础

  • print() 在控制台输出
  • input() 获取控制台输⼊的内容
  • type() 获取变量的数据类型
  • len() 获取容器的⻓度 (元素的个数)
  • range() ⽣成⼀个序列[0, n)

以上都是我们学过的函数,函数可以实现⼀个特定的功能。我们将学习⾃⼰如何定义函数, 实现特定的功能。


1.函数是什么?

  • 函数将多⾏代码(可以实现⼀个特定的功能)放在⼀块,并给它起⼀个名字在需要使             多⾏代码的时候, 可以使⽤名字代替
  • 定义函数的好处对具备相同逻辑的代码进行封装,实现对代码的重用,减少代码冗                                   余(重复的代码不需要多次书写),提⾼编程效率。
  • 函数必须 先定义 后 调用

2.函数的文档注释[了解] 

  1. 函数的⽂档注释,本质就是注释, 只不过作⽤和书写位置有特定的要求
  2. 作⽤: 是对函数的作用和使用方法进行说明, ⽐如 有哪些参数, 返回值是什么
  3. 书写位置: 在def 的下方,使⽤三对引号来书写

函数的查看:

  1. 在函数名上,使⽤快捷键 Ctrl q 查看
  2. 在函数名上,使⽤ 快捷键 Ctrl B 跳转到函数定义的地⽅查看
  3. 在函数名上, 按住 Ctrl 键,点击函数名,跳转到函数定义的地⽅查看

3.函数的定义 

def 函数名():
    函数中的代码
    函数中的代码
  1. 函数定义,就是给多行代码起名字的过程
  2. 函数的定义需要使⽤ 关键字 def, 单词 define
  3.  处在 def 缩进中的代码 都属于这个函数
  4. 函数名要满⾜标识符的规则, ⻅名知意
  5.  def 这⾏代码的最后需要⼀个 冒号
  6. 函数定义不会执⾏函数中的代码,想要执⾏需要调⽤这个函数

4.定义带参数的函数

  • 参数
    • 形式参数(形参):在函数定义的时候,在括号中写⼊变量,这个变量就称为是函数的参数。
    • 实际参数(实参):在函数调⽤的时候,可以给定义时候的形参传递具体的数据值,供其使⽤。
    • 注: 在函数调⽤的时候,会将函数的实参值传递给形参。
  • 好处: 可以让函数更加的通⽤,函数中的数据值不是固定的,是调⽤的时候,你传递的。
  • 使用场景: 判断 函数中 数据值是不是固定不变的, 如果是变化的就可以使⽤参数传递。
  • 注意点: ⽬前书写的函数, 如果存在形参,必须传递相同个数的实参
def sun_2_num(a, b): # a, b 形参c = a + bprint(c)sun_2_num(10, 20) # 10, 20 实参 10 给 a, 20 给 b
sun_2_num(1, 2)
sun_2_num(20, 39)

5.函数的调用

语法:函数名()

注意:有参数则需要传递参数

  1.  函数调用,就是使用 多行代码的过程
  2. 只定义函数, 不调用函数, 函数永远不会被执行
  3. 不能将 函数调用 放在 函数定义 的上方,否则将会出现错误。(先定义再调用)

# 定义带参数的函数
def sun_2_num(a, b): # a, b 形参c = a + bprint(c)# 调用带参数的函数
sun_2_num(10, 20) # 10, 20 实参 10 给 a, 20 给 b
sun_2_num(1, 2)
sun_2_num(20, 39)
定义函数的小技巧:
  • 先不使⽤函数,将多⾏代码写完
  • 在多行代码的上⽅使⽤ def 起名字
  • 使⽤ tab 键, 将多⾏代码进行缩进

6.函数嵌套调用

  • 在⼀个函数中调⽤另⼀个函数。

        1, 代码从上到下执⾏的

        2, 函数定义不会执⾏函数中的代码

        3, 函数调用会进⼊函数中执⾏函数中的代码

        4, 函数中的代码执行结束,会回到调⽤的地⽅继续向下执⾏

# 1. 定义名为test01的函数,打印当前函数的名称
def test01():print(1)print('func01')print(2)# 2. 定义名为test02的函数,打印当前函数的名称,并 调用test01函数
def test02():print(3)print('func2')test01()print(4)print(5)
test02()
print(6)
# 5 3 1 2 4 6

 


7.返回值

  • 返回值: 函数执⾏的结果
    • print() ---> None
    • input() ---> 键盘输⼊的内容, 类型 字符串
    • type() ---> 变量的数据类型
    • len() ---> 容器⻓度
  • 在⼀个函数中,想要返回⼀个数据(想要有返回值),需要使用return 关键字
  • 为什么返回值? 在函数中可能通过各种代码得到的数据结果,想要在函数外部使用就需要使⽤返回值。
  • 如果函数有返回值, ⼀般在调⽤的时候 会使⽤变量来接收(保存) 返回值, 以便后续使用。
  • return 关键字的作用:
    • 将⼀个数据值返回到调用的地⽅
    •  函数遇到 return 会结束函数的执行
    • return 关键字只能⽤在函数中
  • 如果⼀个函数 没有写 return,可以认为 返回值是 None
# 设计⼀个函数⽤于获取两个数中的较⼤数,数据来⾃于函数的参数def get_max(a, b):if a > b:return aelse:return bprint('我会执⾏吗, 不会执⾏')  # 注意:return 表示返回,后续的代码都不会被执行# 调用
num = get_max(10, 20)
print(num)

 

案例: 

需求:

1. 定义名为 input_username 的函数, 获取⽤户输⼊的⽤户名

2. 定义名为 input_password 的函数, 获取⽤户输⼊的密码

3. 定义名为 login 的函数, 判断获取的⽤户名和密码信息

4. 要求当获取的⽤户名为:admin 并且密码为: 123456 时, 输出“登录成功!”,否则提示“⽤户       名或 密码错误!”

# 1. 定义名为 input_username 的函数, 获取⽤户输⼊的⽤户名def input_username():"""输⼊⽤户名"""return input('请输入用户名:')# 2. 定义名为 input_password 的函数, 获取⽤户输⼊的密码
def input_password():"""输⼊密码"""return input('请输入密码:')# 3. 定义名为 login 的函数, 判断获取的用户名和密码信息
# 4. 要求当获取的用户名为:admin 并且密码为: 123456 时,输出“登录成功!”,否则提示“用户名或密码错误!”def login():"""登录函数"""if input_username() == 'admin' and input_password() == '123456':print('登录成功')else:print('用户名或密码错误')login()

 


未完待续。。。 

相关文章:

Python函数 之 函数基础

print() 在控制台输出 input() 获取控制台输⼊的内容 type() 获取变量的数据类型 len() 获取容器的⻓度 (元素的个数) range() ⽣成⼀个序列[0, n) 以上都是我们学过的函数,函数可以实现⼀个特定的功能。我们将学习⾃⼰如何定义函数, 实现特定的功能。 1.函数是什么…...

昇思25天学习打卡营第11天|SSD目标检测

SSD网络 目标检测问题可以分为以下两个问题:1)分类:所有类别的概率;2)定位: 4个值(中心位置x,y,宽w,高h) Single Shot MultiBox Detector,SSD:单阶段的目标检测算法,通过卷积神经网络进行特征…...

MySQL篇五:基本查询

文章目录 前言1. Create1.1 单行数据 全列插入1.2 多行数据 指定列插入1.3 插入否则更新1.4 替换 2. Retrieve2.1 SELECT 列2.1.1 全列查询2.1.2 指定列查询2.1.3 查询字段为表达式2.1.4 为查询结果指定别名2.1.5 结果去重 2.2 WHERE 条件2.2.1 练习 2.3 结果排序2.3.1 练习 …...

FreeBSD@ThinkPad x250因电池耗尽关机后无法启动的问题存档

好几次碰到电池耗尽FreeBSD关机,再启动,网络通了之后到了该出Xwindows窗体的时候,屏幕灭掉,网络不通,只有风扇在响,启动失败。关键是长按开关键后再次开机,还是启动失败。 偶尔有时候重启到单人…...

pdfplumber vs PyMuPDF:PDF文本、图像和表格识别的比较

pdfplumber vs PyMuPDF:PDF文本、图像和表格识别的比较 1. 文本提取pdfplumberPyMuPDF 2. 图像提取pdfplumberPyMuPDF 3. 表格提取pdfplumberPyMuPDF 总结 在处理PDF文件时,提取文本、图像和表格是常见的需求。本文将比较两个流行的Python PDF处理库:pdfplumber和PyMuPDF(fitz)…...

深入Django系列

Django简介与环境搭建 引言 在这个系列的第一天,我们将从Django的基本概念开始,逐步引导你搭建一个Django开发环境,并运行你的第一个Django项目。 Django简介 Django是一个开源的Web框架,它鼓励快速开发和干净、实用的设计。D…...

【Python】找Excel重复行

【背景】 找重复行虽然可以通过Excel实现,但是当数据量巨大时光是找结果就很费时间,所以考虑用Python实现。 【代码】 import pandas as pd# 读取Excel文件 file_path = your excel file path df = pd.read_excel(file_path)# 查找重复行 # 这里假设要检查所有列的重复项 …...

重读AI金典算法模型-GPT系列

2023年对于AI来说,可以算是一个里程碑式的年份,随着OpenAI的chatGPT的大火,遍地的生成式AI应用应运而生。在这些上层应用大放异彩的时候,我们需要了解一些底层的算法模型,并从中窥探出为什么时代选择了OpenAI的chatGPT…...

仙人掌中的SNMP检测不到服务器

登录有问题的服务器1.检测snmp localhost:~ # ps -ef|grep snmp root 55180 1 0 08:37 ? 00:00:08 /usr/sbin/snmpd -r -A -LF n /var/log/net-snmpd.log -p /var/run/snmpd.pid root 58436 53989 0 09:44 pts/0 00:00:00 grep --colorauto snmp2.检测…...

git只列出本地分支

git只列出本地分支 git branch --list git强制删除本地分支 git branch -D_error: the branch dlx-test is not fully merged. -CSDN博客文章浏览阅读648次。git branch -d 可以通过: git branch 查看所有本地分支及其名字,然后删除特定分支。git删除远程remote分支…...

算力狂飙|WAIC 2024上的服务器

7月7日,2024世界人工智能大会暨人工智能全球治理高级别会议(WAIC 2024)在上海落下帷幕。这场备受瞩目的AI盛宴与热辣夏日碰撞,吸引了全球科技、产业及学术界的广泛关注,线下参观人数突破30万人次,线上流量突…...

uniapp app端跳转第三方app(高德地图/百度地图为例)

1.先写一个picker选择器 <picker change"bindPickerChange" :value"index" :range"array"><view class"uni-input">{{array[index] || 打开第三方app }}</view></picker> 2.在data中定义好高德地图/百度地图…...

阿里云RDS云数据库库表恢复操作

最近数据库中数据被人误删了,记录一下恢复操作方便以后发生时进行恢复. 1.打开控制台&#xff0c;进入云数据库实例. 2.进入实例后 &#xff0c;点击右侧的备份恢复&#xff0c;然后看一下备份时间点&#xff0c;中间这边都是阿里云自动备份的备份集&#xff0c;基本都是7天一备…...

来一场栈的大模拟(主要是单调栈)

一.栈模拟 二.单调栈求最大矩形面积 通常&#xff0c;直方图用于表示离散分布&#xff0c;例如&#xff0c;文本中字符的频率。 现在&#xff0c;请你计算在公共基线处对齐的直方图中最大矩形的面积。 图例右图显示了所描绘直方图的最大对齐矩形。 输入格式 输入包含几个测…...

13 - matlab m_map地学绘图工具基础函数 - 介绍创建管理颜色映射的函数m_colmap和轮廓图绘制颜色条的函数m_contfbar

13 - matlab m_map地学绘图工具基础函数 - 介绍创建管理颜色映射的函数m_colmap和轮廓图绘制颜色条的函数m_contfbar 0. 引言1. 关于m_colmap2. 关于m_contfbar3. 结语 0. 引言 本篇介绍下m_map中用于创建和管理颜色映射函数&#xff08;m_colmap&#xff09;和 为轮廓图绘制颜…...

PTA - 编写函数计算圆面积

题目描述&#xff1a; 1.要求编写函数getCircleArea(r)计算给定半径r的圆面积&#xff0c;函数返回圆的面积。 2.要求编写函数get_rList(n) 输入n个值放入列表并将列表返回 函数接口定义&#xff1a; getCircleArea(r); get_rList(n); 传入的参数r表示圆的半径&#xff0c…...

Golang | Leetcode Golang题解之第218题天际线问题

题目&#xff1a; 题解&#xff1a; type pair struct{ right, height int } type hp []pairfunc (h hp) Len() int { return len(h) } func (h hp) Less(i, j int) bool { return h[i].height > h[j].height } func (h hp) Swap(i, j int) { h[i], h[j]…...

【Mars3d】osgb倾斜摄影模型加载慢卡顿的优化方案参考

倾斜摄影模型文件一共6个多g&#xff0c;一个村子十几间房&#xff0c; 服务器配置&#xff1a;8c16g 100M 答&#xff1a; 目前可以对 3dtiles 模型有下面 3 方法来入手&#xff1a; 数据处理层面&#xff0c;比如数据处理工具的选择、和选择的工具本身的一些优化参数的设…...

认识同源策略

同源策略是一种浏览器安全机制&#xff0c;用于限制一个源的文档或脚本如何与另一个源的资源进行交互。源由协议&#xff08;如HTTP或HTTPS&#xff09;、域名和端口号组成。如果两个URL的协议、域名和端口都相同&#xff0c;则它们具有相同的源。 同源策略主要影响以下几个方…...

ADOQuery 查询MSSQL存储过程一个莫名其妙的错误;

在 SSMS 中执行完成正常的的存储过程。 也能正常的返回想要的数据&#xff0c;&#xff0c;然后通过 ADO 查询时&#xff0c;总是提法 某 字段不存在的问题&#xff1b; 此问题困扰了一天。 例如&#xff08;当然&#xff0c;实际数据结构比下面举例的复杂&#xff09;&…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...