Python--函数入门

1. 函数基础概念

1.1 什么是函数

  • 定义:函数是一段可重复调用的代码块,用于封装特定功能。

  • 核心作用

    • 代码重用:减少重复代码的编写。
    • 增强可读性:通过命名和模块化让代码逻辑更清晰。

1.2 函数的定义与调用

def 函数名(参数):
    """函数文档字符串(可选)"""
    函数体代码
    return 返回值  # 可选

# 示例
def greet(name):
    """向用户打招呼"""
    print(f"Hello, {name}!")

greet("Alice")  # 输出:Hello, Alice!

1.3 函数的应用场景

  • 场景1:重复代码封装

    def send_alert(email):
        # 发送邮件的10行代码
        pass
    
    if cpu_usage > 90:
        send_alert("admin@example.com")
    
  • 场景2:复杂逻辑分块

    def check_straight(cards):
        """判断是否为顺子"""
        pass
    
    def check_flush(cards):
        """判断是否为同花"""
        pass
    

2. 函数参数详解

2.1 位置参数与关键字参数

  • 位置传参:按参数定义顺序传递值。

    def add(a, b):
        return a + b
    
    add(3, 5)  # 输出:8
    
  • 关键字传参:通过参数名指定值,顺序可调。

    add(a=3, b=5)  # 输出:8
    add(b=5, a=3)  # 输出:8
    

2.2 默认参数

  • 定义时指定默认值,调用时可省略。

    def power(base, exponent=2):
        return base ** exponent
    
    power(3)    # 输出:9(使用默认指数2)
    power(3, 3) # 输出:27
    

2.3 动态参数

  • *args​:接收任意数量的位置参数,存储为元组。

    def sum_all(*args):
        return sum(args)
    
    sum_all(1, 2, 3)  # 输出:6
    
  • ​**kwargs​:接收任意数量的关键字参数,存储为字典。

    def print_info(**kwargs):
        for key, value in kwargs.items():
            print(f"{key}: {value}")
    
    print_info(name="Alice", age=25)
    

2.4 参数传递的注意事项

  • 混合使用顺序:位置参数 → 默认参数 → *args​ → **kwargs​。

  • 不可变与可变对象

    • 不可变对象(如整数、字符串)在函数内修改时会创建新对象。
    • 可变对象(如列表、字典)在函数内修改会直接影响原对象。

3. 函数返回值

3.1 返回值的基本使用

def is_even(num):
    return num % 2 == 0

print(is_even(4))  # 输出:True

3.2 返回值的类型与特性

  • 多返回值:自动打包为元组。

    def min_max(nums):
        return min(nums), max(nums)
    
    result = min_max([3, 1, 4])  # (1, 4)
    
  • 无返回值:默认返回 None​。

3.3 利用返回值控制流程

def find_user(users, target):
    for user in users:
        if user == target:
            return True  # 找到后立即终止函数
    return False

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

出行项目案例

spark和kafka主要通过Scala实现,Hadoop和HBase主要基于java实现。 通过该项目,主要达到以下目的: (1)通用的数据处理流程,入门大数据领域 (2)真实体验大数据开发工程师的工作 &a…

从零开始制作一个漂亮的悬浮按钮

0.1血版 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &l…

安全面试2

文章目录 简单描述一下什么是水平越权&#xff0c;什么是垂直越权&#xff0c;我要发现这两类漏洞&#xff0c;那我代码审计要注意什么地方水平越权&#xff1a;垂直越权&#xff1a;水平越权漏洞的审计重点垂直越权漏洞的审计重点 解释一下ssrf漏洞原理攻击场景修复方法 横向移…

数字电子技术基础(二十一)——双极型三极管的开关特性

目录 1 半导体三极管的开关特性 1.1 双极性三极管的开关特性 1.2 双极型三极管的基本开关电路 1.3 三极管的开关等效电路 1.4 双极型三极管的动态开关特性 TTL门电路是一种基于双极型晶体管的数字逻辑电路&#xff0c;在20世纪60年代到80年代之间&#xff0c;TTL门电路是应…

足疗店会员管理系统,足疗养生全方位会员管理解决方案,佳易王试用版养生会所足疗店推拿按摩会员管理系统操作教程

一、概述 本实例以佳易王试用版养生会所足疗店推拿按摩会员管理系统17.1版本为例说明&#xff0c;其他版本可参考本实例。试用版软件资源可到文章最后了解&#xff0c;下载的文件为压缩包文件&#xff0c;请使用免费版的解压工具解压即可试用。 软件特点&#xff1a; 1、功能…

【HarmonyOS Next】拒绝权限二次申请授权处理

【HarmonyOS Next】拒绝权限二次申请授权处理 一、问题背景&#xff1a; 在鸿蒙系统中&#xff0c;对于用户权限的申请&#xff0c;会有三种用户选择方式&#xff1a; 1.单次使用允许 2.使用应用期间&#xff08;长时&#xff09;允许 3.不允许 当用户选择不允许后&#xff0…

论文笔记(七十二)Reward Centering(四)

Reward Centering&#xff08;四&#xff09; 文章概括摘要附录A 伪代码 文章概括 引用&#xff1a; article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.09999…

数据结构之二叉树的定义及实现

1. 树的概念 主要的定义&#xff1a; 节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff1b;如上图&#xff1a;A的为6 叶节点或终端节点&#xff1a;度为0的节点称为叶节点&#xff1b;如上图&#xff1a;B&#xff0c;C&#xff0c;H&#xff0c;I等节点…

Deepseek 与 ChatGPT:AI 浪潮中的双子星较量

引言 在人工智能飞速发展的当下&#xff0c;AI 语言模型成为了人们关注的焦点。Deepseek 与 ChatGPT 作为其中的佼佼者&#xff0c;各自展现出独特的魅力&#xff0c;引领着 AI 技术的发展潮流。今天&#xff0c;就让我们深入探讨这两款模型&#xff0c;看看它们在 AI 领域中是…

网络运维学习笔记 019 HCIA-Datacom综合实验03

文章目录 综合实验3实验需求一&#xff1a;A公司网络规划二&#xff1a;B公司网络规划 配置一、ip、vlan、vlanif&#xff0c;stp、eth-trunkSW1SW2SW3R1 二、ospfSW1R1 三、NATR1ISP 四、拒绝ping允许httpSW1 五、右半部分vlan、dhcp、ospf、NATSW4R2 综合实验3 实验需求 一&…

【时时三省】(C语言基础)结构化程序设计方法

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 结构化程序设计方法 结构化程序设计强调程序设计风格和程序结构的规范化&#xff0c;提倡清晰的结构。怎样才能得到一个结构化的程序呢?如果面临一个复杂的问题&#xff0c;是难以一下子写…

“国补”带火手机换新,出售旧手机应如何保护个人信息安全

在“国补”政策的推动下,手机换新热潮正席卷而来。“国补”以其诱人的补贴力度,成功激发了消费者更换手机的热情。无论是渴望体验最新技术的科技爱好者,还是对旧手机性能不满的普通用户,都纷纷投身到这场手机换新的浪潮之中。 随着大量消费者参与手机换新,二手手机市场迎来…

Flash-01

1-初始登录页面 2-【文件】-【新建】 3-【ActionScript3.0】 4-常用功能介绍【关闭/开启】 4-1-【关闭开始页】 勾选【不再提示】 4-2-【开启开始页】 【编辑】-【首选参数】-【常规】-【重置所有警告对话框】 5-恢复初始页面 【窗口】-【工作区】-【重置】 6-常用快捷键 …

Golang | 每日一练 (3)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Golang | 每日一练 (3)题目参考答案map 实现原理hmapb…

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人 在这个项目中,我们将结合本地 AI 的隐私与 Deepseek R1 的智能,创建一个完全本地化、推理驱动的问答机器人。 在人工智能 (AI) 日益融入我们日常生活的时代,一个问题仍然处于最前沿:隐私。尽管基于云的 AI 系统功能强大…

蓝桥杯学习笔记04-滑动窗口不定长(最短/最小)

题目来源 分享丨【题单】滑动窗口与双指针&#xff08;定长/不定长/单序列/双序列/三指针/分组循环&#xff09; - 力扣&#xff08;LeetCode&#xff09; 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 题目要求大于等于 class Solution { public:int min…

基于WOA鲸鱼优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a/matlab2024b 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频…

DeepSeek R1本地+私有云版医疗AI部署开发成功案例技术剖析

1. 引言 1.1 研究背景与意义 随着科技的飞速发展,人工智能(AI)在医疗领域的应用正逐渐成为推动医疗行业变革的重要力量。近年来,医疗 AI 取得了显著的进展,从疾病诊断、药物研发到医疗管理等各个环节,AI 技术都展现出了巨大的潜力。它能够处理和分析海量的医疗数据,为…

【行业解决方案篇十八】【DeepSeek航空航天:故障诊断专家系统 】

引言:为什么说这是“航天故障终结者”? 2025年春节刚过,航天宏图突然官宣"DeepSeek已在天权智能体上线",这个搭载在卫星和空间站上的神秘系统,号称能提前48小时预判99.97%的航天器故障。这不禁让人想起年初NASA禁用DeepSeek引发的轩然大波,更让人好奇:这套系…

四步彻底卸载IDEA!!!

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 大家好&#xff0c;我们今天来学习四步彻底卸载IDEA&#xff01;&#xff01;&#xff01; 首先我要提醒各位 如果你想删除 IDEA 相关&#xf…