Python 函数(2)

news2024/11/14 18:14:44

2、函数

2.1、函数传递列表

      将列表传递给函数后,函数就能直接访问其内容。

下列为一个实例:将一个名字列表传递给一个名为greet_users()的函数,这个函数将会向列表中的每一个元素执行相应的信息。

def greet_users(name):
    for name in names:
        msg=f"Helo,{name.title()}!"
        print(msg)
names=['hannah','ty','margot']
greet_users(names)

     我们将 greet_users()定义成接受一个名字的列表,并将其赋给形参names。这个函数遍历收到的列表,并对其中的每个元素打印一条信息。

2.1.1、在函数中修改列表

    将列表传递给函数后,函数就可以对其进行修改了。在函数中对这个列表所做的任何修改都是永久的。

2.1.2、禁止函数修改列表

   既要打印出执行操作后的列表,又要打印出原来的原始列表。为了解决这一问题,可向函数传递列表的副本而不是原来的列表。这样,函数所做的任何操作就都影响副本,而丝毫不影响原始列表。要将例表的副本传递给函数可以使用切片表示法[:]

2.2、传递任意数量的实参

    有时不知函数需要接受多少个实参,好在Python允许函数从调用语句中收集任意数量的实参。

下面的函数只有一个形参*topp,不管调用语句提供了多少个实参,它都能将其收入囊中:

def pizza(*topp):
    print(topp)
pizza('pepperoni')
pizza('mush','green peppers','extre')

形参名*topp中的星号让Python创建一个名为topp的元组,该元组包含函数收到的所有值。

注:Python会将实参封装到一个元组中,即便函数值收到一个值也将它为元组看待。所以下面的输出中的(‘pepperoni’,)的后面有一个逗号:

不管函数收到多少个实参,这种语法都管用。

2.2.1、结合使用位置实参和任意数量的实参

    要让函数接受不同类型的实参,必须在函数定义中将接受任意数量实参的形参放在最后。Python先匹配位置实参和关键词实参,再将剩下的实参收集到最后一个形参中。

例如下:

def pizza(size,*topp):
    print(size)
    for topps in topp:
        print(f"-{topps}")

pizza(11,'pepperoni')
pizza(21,'mush','green peppers','extre')

 pizza有两个形参,基于函数的定义,Python收到的第一个值赋给第一个形参size,将其他的所有的值都存储在元组topp中。调用两次函数,第一个值都是赋给第一个形参,余下的都存储在元组:

 

注:经常会看到通用形参名*args,它也这样收集任意数量的位置实参。

2.2.2、使用任意数量的关键字实参

     当需要接受任意函数数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况喜爱,可将函数编写成能够接受任意数量的键值对——调用语句提供多少就接受多少。

下列实例:

def profile(first,last,**usef_info):
    usef_info['first_name']=first
    usef_info['last_name']=last
    return usef_info
uprofile=profile('albert','einstein',
                 location='princeton',
                 field='physics')
print(uprofile)

profile()函数的定义要求提供名和姓,同是允许根据需要提供任意数值的名值对。形参**usef_info中的两个星号让Python创建一个名为usef_info的字典,该字典包含函数收到的其他名值对。

  

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

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

相关文章

1.2 C 语言开发环境 CLion 的安装(含 Windows 和 Mac )

目录 1 C 语言的由来 2 安装 MinGW 编译器 3 Windows 中安装 CLion 开发环境 3.1 安装 CLion 开发环境 3.2 运行试用 30 天 3.3 新建项目​ 3.​4 激活 3.5 汉化 4 Mac 中安装 Clion 开发环境 4.1 安装 CLion 开发环境 4.2 运行试用 30 天 4.3 新建项目 ​4.4 激活…

RuoYi-Vue源码阅读(三):用户相关模块

文章目录 1 用户角色权限信息 getInfo1.1 后端代码实现步骤1.1.1 获取用户角色权限信息1.1.2 获取用户的角色集合 1.2 前端代码实现步骤 2 获取用户路由信息 getRouters2.1 后端代码实现步骤2.1.1 获取菜单目录2.1.2 构建前端路由所需要的菜单 2.2 前端代码实现步骤 3 参考链接…

设计模式20-备忘录模式

设计模式20-备忘录 动机定义与结构定义结构 C代码推导优缺点应用场景总结备忘录模式和序列化备忘录模式1. **动机**2. **实现方式**3. **应用场景**4. **优点**5. **缺点** 序列化1. **动机**2. **实现方式**3. **应用场景**4. **优点**5. **缺点** 对比总结 动机 在软件构建过…

Redis相关面试题(二)

一、BIT中不同命令使用的场景 Sring Seesion会话业务缓存分布式锁:为了防止用户同时登录多个设备进行操作 Int 计数器限流全局唯一ID Hash 电商购物车 BitMap 用户签到 List 消息队列 ZSet 排行榜 二、什么是缓存击穿,缓存穿透,…

C++--类和对象(一)

C是一个面向对象的编程语言,而面向对象编程有四大特性:封装,抽象,继承,多态。类和对象就是对应其中的封装,在C中将数据和对数据的操作都封装在一个class(类)的结构体中。 目录 类的…

【C++二分查找】2187. 完成旅途的最少时间

本文涉及的基础知识点 C二分查找 LeetCode2187. 完成旅途的最少时间 给你一个数组 time ,其中 time[i] 表示第 i 辆公交车完成 一趟旅途 所需要花费的时间。 每辆公交车可以 连续 完成多趟旅途,也就是说,一辆公交车当前旅途完成后&#xf…

TCP如何建立长连接

文章目录 TCP建立长连接长连接和短连接长连接的优势TCP KEEPALIVE 心跳包心跳检测步骤 断线重连断线重连函数实现 实例服务端客户端程序功能演示效果 TCP建立长连接 长连接和短连接 长连接是指不论TCP的客户端和服务器之间是否有数据传输,都保持建立的TCP连接&…

Docker最佳实践(三):安装mysql

大家好,欢迎各位工友。 本篇呢我们就来演示一下如何在Docker中部署MySQL容器,可以按照以下步骤进行: 1. 搜索镜像 首先搜索MySQL镜像,可以使用以下命令: docker search mysql2. 拉取镜像 根据需求选择MySQL或Maria…

Oracle|DM 常用|不常用 SQL大口袋

目录 一、前言 二、SQL写法 1、sql获取某一条数据中的前一条和后一条 2、实现like多个值的查询(Oracle和dm支持,MySQL未试过) 3、start with connect by prior 使用方法 4、用hextoraw解决select、update、delete语句执行慢 5、ORA-00…

叉车数字化安全管理平台,安全管控升级,打造智慧监管新模式

近年来,国家和各地政府相继出台了多项政策法规,从政策层面推行叉车智慧监管,加大叉车安全监管力度。同时鼓励各地结合实际,积极探索智慧叉车建设,实现作业人员资格认证、车辆状态认证、安全操作提醒、行驶轨迹监控等&a…

场外个股期权的投资技巧:把握机遇与风险平衡

【来源:期权圈,场外个股每日询价】 在金融投资的领域中,场外个股期权作为一种新兴且具有吸引力的投资工具,为投资者提供了独特的机会和挑战。掌握有效的投资技巧,对于在这个领域中取得成功至关重要。 首先&#xff0c…

C++ | Leetcode C++题解之第332题重新安排行程

题目&#xff1a; 题解&#xff1a; class Solution { public:unordered_map<string, priority_queue<string, vector<string>, std::greater<string>>> vec;vector<string> stk;void dfs(const string& curr) {while (vec.count(curr) &am…

How we design Kola

How we design Kola - ApiHugKola background, Kola a consumer driver tester frameworkhttps://apihug.com/zhCN-docs/kola/002_design_of_kola Kola background, Kola a consumer driver tester framework ​BDD 行为驱动开发(BDD)是一种软件团队工作方式,可以缩小业务人…

基于STM32F429移植UCOSIII

μC/OS-III&#xff08;Micro C OS Three&#xff09;是一个可升级的、可固化的、基于优先级的实时内核&#xff0c;它是Micrium公司出品的RTOS&#xff08;实时操作系统&#xff09;类实时操作系统的一个版本。以下是对μC/OS-III的详细描述&#xff1a; 1. 基本特性 多任务管…

智能制造与工业互联网有何关联?工业互联网如何推进智能制造?

随着信息技术的飞速发展&#xff0c;智能制造和工业互联网已经成为当今产业变革的核心。智能制造&#xff0c;以其深度融合的设计、生产、管理、营销和售后服务等环节&#xff0c;代表了先进制造模式的典范。而工业互联网则作为智能制造的神经中枢&#xff0c;通过连接机器、人…

【初阶数据结构题目】17.用栈实现队列

用栈实现队列 点击链接答题 思路&#xff1a; 定义两个栈&#xff1a;pushST&#xff08;入数据&#xff09;和popST&#xff08;出数据&#xff09; 假设我们要在队列里放123&#xff0c;出队列123 我们先在pushST里面放进去1 2 3 然后把pushST里面的数据拿到popST里面&#…

会务要闻|向绿提质:上市企业ESG评级提升

在全球市场对环境、社会和治理&#xff08;ESG&#xff09;指标的关注与日俱增的大背景下&#xff0c;中国正积极拥抱ESG理念&#xff0c;将其作为推动经济与社会全面绿色转型的催化剂&#xff0c;更被企业视为长期主义投资策略的基石。面对日益严格的国际ESG尽职调查要求&…

信息论在机器学习中的实际应用

目录 一、说明 二、什么是信息论&#xff1f; 2.1 信息论中的关键概念 2.2 熵与信息 2.3 相互信息 2.4 Kullback-Leibler 背离 三、信息论在机器学习中的应用 3.1 功能选择&#xff1a; 3.2 计算边际概率分布 3.3 决策树&#xff1a;Information 增益 3.4 评估具有 KL 背…

FastAPI+Vue3工程项目管理系统项目实战私教课 上课笔记20240808 课程和学习计划制定

学习目标 将Word和Excel做的东西放到数据库里面去工程类公司&#xff0c;甲方&#xff0c;劳务存到数据库存储的信息主要是人员的信息 基本信息&#xff1a; 人员信息&#xff0c;资料库&#xff0c;甲方的人出现在哪些项目上&#xff0c;考勤材料信息&#xff0c;进货记录&…

yolov5更换主干网络shufflent

目录 1.网络结构解析 1.1创建yolov5s_shufflent_v2_X0_5.yaml文件 2.对common.py末尾进行添加 3.修改yolo.py 1.网络结构解析 1.可以先看看shufflenet_v2的网络结构 import torch from torch import nn from torchvision import models from torchinfo import summaryclas…