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()

 


未完待续。。。 

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

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

相关文章

由于找不到krpt.dll,无法继续执行代码的7种解决方法

krpt.dll 与 Microsoft Office 套件中的 PDF 文档生成和编辑功能有关。它是 Microsoft Office 中的一项关键组件,在 Word、Excel 等应用程序中扮演着重要角色,支持文档转换成 PDF 格式的功能。那么遇到找不到krpt.dll文件或krpt.dll丢失要怎么办&#xf…

鸿蒙语言基础类库:【@ohos.util.ArrayList (线性容器ArrayList)】

线性容器ArrayList 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 …

FunAudioLLM SenseVoice语音转录与CosyVoice语音合成及语音克隆使用案例

参考: https://fun-audio-llm.github.io/ 1、SenseVoice语音转录 在线体验:https://modelscope.cn/studios/iic/CosyVoice-300M 参考:https://github.com/FunAudioLLM/SenseVoice 下载: pip install -U funasr使用: from funasr import AutoModelmodel_dir = "…

连接与隔离:Facebook在全球化背景下的影响力

在当今全球化的背景下,Facebook作为全球最大的社交网络平台,不仅连接了世界各地的人们,还在全球社会、经济和文化中发挥着深远的影响。本文将深入探讨Facebook在全球化进程中的作用,以及其对个体和社会之间连接与隔离的双重影响。…

odoo中的钩子 Hooks

钩子 钩子(Hooks)是一种在特定时间点或特定事件发生时执行自定义代码的机制。它们允许开发者在不修改核心代码的情况下,为Odoo添加自定义功能或扩展现有功能。以下是关于Odoo钩子的一些关键点和常见用法: 一、钩子的类型 pre_i…

CLion学习笔记-cmake编译和多main函数编译

这里就不讲怎么配置clion了 项目名字 pcl_kdtree_search 1.新建一个工程名字自己取,我这里用自己学习pcl的,加一个main函数,这个时候Cmake里边就是这样的。 #声明要求的cmake最低版本 cmake_minimum_required(VERSION 3.19) #声明一个工程…

福建 | 南安帝兴混凝土电子签收的困难和突破

01 发展从来都是从困难开始 混凝土发货单实现无纸化签收,众多业内人士认为这个概念很好,但能否落地却大多抱有怀疑态度,理由多种多样: “行业太传统,接受不了新鲜事物。” “驾驶员年龄偏大,玩不来智能手…

Linux源码阅读笔记09-进程NICE案例分析1

task_nice task_nice函数功能:获取某个进程的nice值,其中nice值为进程的优先级,与静态优先级有关(nicestatic_prio-120)。 nice的取值范围:-20 ~ 19 内核源码 根据内核的注释可以知道:task_n…

el-table封装popver組件,点击列筛选行数据功能,支持筛选,搜索,排序功能

子组件&#xff1a; <template><div class"tableTool" ref"tableTool" click.stop><el-button click"shengFnc">升序</el-button><el-button click"jiangFnc">降序</el-button><el-input v-m…

68.SAP FICO - 记账码学习

目录 定义 用途 配置步骤 定义记账码 - OB41 配置会计科目类型 在会计中&#xff0c;“借”和“贷”是记账符号&#xff0c;代表了记账的方向。而在SAP中却没有大家熟知的记账符号“借”和“贷”&#xff0c;那SAP中如何录入凭证呢&#xff1f;其实&#xff0c;SA…

Redis代替Session实现共享

集群的session共享问题 session共享问题&#xff1a;多台tomcat并不共享session存储空间&#xff0c;当请求切换到不同的tomcat服务时导致数据丢失的问题。 session的替代方案&#xff1a; 数据共享内存存储key、value结构 将redis替换session可以解决session共享问题

大数据基础:Hadoop之HDFS重点架构原理

文章目录 Hadoop之HDFS重点架构原理 一、什么是Hadoop 二、HDFS简介 三、HDFS架构 3.1、NameNode 3.2、SecondaryNameNode 3.3、DataNode 3.4、Client 四、fsimage和editslog合并 五、Block副本放置策略 六、读写流程 6.1、HDFS写文件流程 6.2、HDFS读文件流程 Ha…

tk 文本生成器

import random import tkinter as tk import ttkbootstrap as ttk from tkinter import messagebox import pyperclipdef wenben_run():def generate_text(original_text, length):# 去掉原始文本中的换行符和空格original_text original_text.replace(\n, )original_text or…

全面助力巴西slot游戏包推广本土网盟dsp流量广告优势

全面助力巴西slot游戏包推广本土网盟dsp流量广告优势 在巴西这片充满活力的土地上&#xff0c;电子游戏市场蓬勃发展&#xff0c;成为娱乐产业的重要组成部分。随着网络技术的不断进步和移动互联网的普及&#xff0c;巴西玩家对于电子游戏的热情愈发高涨&#xff0c;游戏市场呈…

java算法day9

232.用栈实现队列 用队列实现栈 有效的括号 删除字符串中的所有相邻重复项 逆波兰表达式求值 解决栈和队列的基本数据结构 Queue&#xff08;队列&#xff09; 在java中是一个接口。定义的方法&#xff1a; //boolean add(E e): 将指定的元素插入此队列&#xff08;如果…

研华工控机 UNO-2473G WIN7专业版系统下安装网卡驱动异常

基本配置&#xff1a;UNO-2473G、Windows 7 Pro 64bit 常规型嵌入式工控机&#xff0c;搭配Intel Atom™ E3845/Celeron J1900 处理器 第四代Intel Atom/Celeron J1900处理器&#xff0c;最高可达1.91/2.0 GHz&#xff0c;4GB DDR3L存储4/2 x GbE, 3 x USB 2.01 x USB 3.0或4…

OZON生活家居用品爆款新品

OZON生活家居用品爆款新品涵盖了多个方面&#xff0c;这些产品不仅满足了消费者对生活品质的追求&#xff0c;也反映了当前市场的热门趋势。以下是一些在OZON平台上备受关注的生活家居用品爆款新品&#xff1a; OZON生活家居用品爆款新品工具&#xff1a;D。DDqbt。COm/74rD T…

哪里有主机游戏店收费系统,佳易王电玩ps5ps4计时计费系统操作教程

哪里有主机游戏店收费系统&#xff0c;佳易王电玩ps5ps4计时计费系统操作教程 以下软件操作教程以&#xff0c;佳易王计时计费管理系统为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件程序图文讲解 1、主机游戏计时软件、电玩店计费软…

如何解决群晖Docker注册表查询失败/无法拉取镜像等问题

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 问题概述 📒📒 解决方案 📒🔖 方法一🔖 方法二🔖 方法三⚓️ 相关链接 🚓️📖 介绍 📖 在群晖(Synology)NAS设备上使用Docker时,我们可能会遇到查询Docker注册表失败,无法拉取Docker镜像的问题。这种情况…

Error:sql: expected 1 arguments, got 2

一 背景 在测试一个API接口时&#xff0c;看到日志里面突然抛出一个错误&#xff1a;Error:sql: expected 1 arguments, got 2 看了下&#xff0c;对应的表里面是有相关数据的&#xff0c;sql语句放在mysql里面执行也是没问题&#xff01;那奇了怪了&#xff0c;为啥会产生这样…