可变参数

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

在Python中,还可以定义可变参数。可变参数也称不定长参数,即传入函数中的实际参数可以是任意多个。

定义可变参数时,主要有两种形式:一种是*parameter,另一种是**parameter。

(1)*parameter

这种形式表示接收任意多个实际参数并将其放到一个元组中。例如,定义一个函数,让其可以接收任意多个实际参数,代码如下:

def printcoffee(*coffeename):      # 定义输出我喜欢的咖啡名称的函数

    print('\n我喜欢的咖啡有:')

    for item in coffeename:

        print(item)              # 输出咖啡名称

调用3次上面的函数,分别指定不同的实际参数,代码如下:

printcoffee('蓝山')

printcoffee('蓝山', '卡布奇诺', '土耳其', '巴西', '哥伦比亚')

printcoffee('蓝山', '卡布奇诺', '曼特宁', '摩卡')

执行结果如图11所示。

图11  让函数具有可变参数

如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表的名称前加“*”。例如下面的代码:

param = ['蓝山', '卡布奇诺', '土耳其']      # 定义一个列表

printcoffee(*param)                  # 通过列表指定函数的可变参数

通过上面的代码调用printcoffee()函数后,将显示以下运行结果:

我喜欢的咖啡有:

蓝山

卡布奇诺

土耳其

场景模拟:假设某某大学的文艺社团里有多个组合,他们想要计算每个人的BMI指数。

图标 (35)

  实例03  根据身高、体重计算BMI指数(共享升级版)

在IDLE中创建一个名称为function_bmi_upgrade.py的文件,然后在该文件中定义一个名称为fun_bmi_upgrade的函数,该函数包括一个可变参数,用于指定包括姓名、身高和体重的测试人信息,在该函数中将根据测试人信息计算BMI指数,并输出结果,最后在函数体外定义一个列表,并且将该列表作为fun_bmi_upgrade()函数的参数调用,代码如下:

def fun_bmi_upgrade(*person):

    '''功能:根据身高和体重计算BMI指数(共享升级版)

       *person:可变参数该参数中需要传递带3个元素的列表,

       分别为姓名、身高(单位:米)和体重(单位:千克)

    '''

    for list_person in person:

        for item in list_person:

            person = item[0]          # 姓名

            height = item[1]          # 身高(单位:米)

            weight = item[2]          # 体重(单位:千克)

            print("\n" + "="*13,person,"="*13)

            print("身高:" + str(height) + "米 \t 体重:" + str(weight) + "千克")

            bmi=weight/(height*height)    # 用于计算BMI指数,公式为:BMI=体重/身高的平方

            print("BMI指数:"+str(bmi))    # 输出BMI指数

            # 判断身材是否合理

            if bmi<18.5:

                print("您的体重过轻 ~@_@~")

            if bmi>=18.5 and bmi<24.9:

                print("正常范围,注意保持 (-_-)")

            if bmi>=24.9 and bmi<29.9:

                print("您的体重过重 ~@_@~")

            if bmi>=29.9:

                print("肥胖 ^@_@^")

# *****************************调用函数*********************************** #

list_w = [('绮梦',1.70,65),('零语',1.78,50),('黛兰',1.72,66)]

list_m = [('梓轩',1.80,75),('冷伊一',1.75,70)]

fun_bmi_upgrade(list_w ,list_m)        # 调用函数指定可变参数

运行结果如图12所示。

图12  根据身高、体重计算BMI指数(共享升级版)

(2)**parameter

这种形式表示接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典中。例如,定义一个函数,让其可以接收任意多个显式赋值的实际参数,代码如下:

def printsign(**sign):                                # 定义输出姓名和星座的函数

    print()                                               # 输出一个空行

    for key, value in sign.items():                       # 遍历字典

        print("[" + key + "] 的星座是:" + value)          # 输出组合后的信息

调用两次printsign()函数,代码如下:

printsign(绮梦='水瓶座', 冷伊一='射手座')

printsign(香凝='双鱼座', 黛兰='双子座', 冷伊一='射手座')

执行结果如下:

[绮梦] 的星座是:水瓶座

[冷伊一] 的星座是:射手座

[香凝] 的星座是:双鱼座

[黛兰] 的星座是:双子座

[冷伊一] 的星座是:射手座

如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加“**”。例如下面的代码:

dict1 = {'绮梦': '水瓶座', '冷伊一': '射手座','香凝':'双鱼座'}    # 定义一个字典

printsign(**dict1)                                        # 通过字典指定函数的可变参数

通过上面的代码调用printsign()函数后,将显示以下运行结果:

[绮梦] 的星座是:水瓶座

[冷伊一] 的星座是:射手座

[香凝] 的星座是:双鱼座

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SRS视频服务器应用研究

1.SRS尝试从源码编译启动 1.1.安装ubuntu 下载镜像文件 使用VMWare安装&#xff0c;过程中出现蓝屏&#xff0c;后将VM的软件版本从15.5升级到17&#xff0c;就正常了。 1.2.更新ubuntu依赖 1.3.下载源码 官方推荐下载develop 切换到用户目录&#xff0c;开始安装 安装后 突然…

[AI OpenAI] 为非营利组织推出OpenAI

我们正在启动一项新计划&#xff0c;以增强非营利组织对我们工具的可访问性&#xff0c;包括ChatGPT Team和Enterprise的折扣优惠。 今天&#xff0c;我们推出了OpenAI for Nonprofits&#xff0c;这是一项旨在增强非营利组织对我们工具的可访问性的新计划。 非营利组织已经在…

5G专网驻网失败分析(suci无效)

suci 5G终端第一次驻网时&#xff0c;注册消息Registartion request中携带的5GS mobile identity要携带suci类型的mobile identity。 注册消息协议规范见5G NAS 协议3gpp TS24.501 8.2.6 Registration request。 suci协议规范参见3gpp TS24.501 9.11.3.4 5GS mobile identity …

python zip()函数(将多个可迭代对象的元素配对,创建一个元组的迭代器)zip_longest()

文章目录 Python zip() 函数深入解析基本用法函数原型基础示例 处理不同长度的迭代器高级用法多个迭代器使用 zip() 与 dict()解压序列 注意事项内存效率&#xff1a;zip() 返回的是一个迭代器&#xff0c;这意味着直到迭代发生前&#xff0c;元素不会被消耗。这使得 zip() 特别…

Mysql | select语句导入csv后再导入excel表格

需求 从mysql数据库中导出数据到excel 解决方案 sql导出csv文件 sql SELECT col1,col2 FROM tab_01 WHERE col3 xxx INTO OUTFILE /tmp/result.csv FIELDS TERMINATED BY , ENCLOSED BY " LINES TERMINATED BY \n;csv文件导出excel文件 1、【数据】-【导入数据】 …

【redis】宝塔,线上环境报Redis error: ERR unknown command del 错误

两种方式&#xff1a; 1.打开宝塔上的redis&#xff0c;通过配置文件修改权限&#xff0c;注释&#xff1a;#rename-command DEL “” 2.打开服务器&#xff0c;宝塔中默认redis安装位置是&#xff1a;cd /www/server/redis 找到redis.conf,拉到最后&#xff0c;注释#rename-co…

『 Linux 』文件系统

文章目录 磁盘构造磁盘抽象化 磁盘的寻址方式磁盘控制器磁盘数据传输文件系统Inode数据块(Data Blocks)超级块(SuperBlock)块组描述符(Group Descriptor) 磁盘构造 磁盘内部构造由磁头臂,磁头,主轴,盘片,盘面,磁道,柱面,扇区构成; 磁头臂&#xff1a;控制磁头的移动,可以精确地…

测试工具fio

一、安装部署 fio是一款优秀的磁盘IO测试工具&#xff0c;在Linux中比较常用于测试磁盘IO 其下载地址&#xff1a;https://brick.kernel.dk/snaps/fio-2.1.10.tar.gz 或者登录其官网&#xff1a;http://freshmeat.sourceforge.net/projects/fio/ 进行下载。 tar -zxvf fio-…

PCL 二维凸包切片法计算树冠体积

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、原理概述 二维凸包法是先将树冠等间隔分层切片,如图(e)采用二维凸包算法对每层…

ABP框架+Mysql(二)

展示页面--图书列表页面 本地化 开始的UI开发之前,我们首先要准备本地化的文本(这是你通常在开发应用程序时需要做的).本地化文本在前端页面会常用。 本地化文本位于 Acme.BookStore.Domain.Shared 项目的 Localization/BookStore 文件夹下: 打开 en.json (英文翻译)文件并更…

Superset二次开发之Github项目推送到GitLab仓库

以下是从GitHub克隆Superset项目并将其推送到GitLab的详细操作步骤 lab 地址: xxx lab 配置: 生成SSH密钥 ssh-keygen -t rsa -b 4096 -C "邮箱地址" 默认情况下密钥会生成在~/.ssh (/c/Users/Administrator/.ssh/id_rsa)目录下。 公钥添加到GitLab: 打开公钥文件…

音视频开发—FFmpeg打开麦克风,采集音频数据

文章目录 1.使用命令行实现采集PCM数据2.使用代码实现3.播放PCM4.PCM转换为WAV 1.使用命令行实现采集PCM数据 确保你的系统有FFmpeg安装。你可以通过在终端运行ffmpeg -version来检查是否已安装。 找出你的麦克风设备名。在Linux中&#xff0c;你可以使用arecord -l命令列出所…

Java实战:从文件读出学生列表

本实战项目的目标是从文本文件中读取学生列表&#xff0c;并验证读取过程的正确性通过单元测试。 创建静态方法 实现一个名为readStudentsFromFile的静态方法&#xff0c;该方法接收一个文件路径作为参数。创建一个Student对象的列表&#xff0c;用于存储从文件中读取的学生信息…

使用PyCharm 开发工具创建工程

一. 简介 前面学习了 安装 python解释器。如何安装python的一种开发工具 PyCharm。 本文来简单学习一下&#xff0c;如何使用 PyCharm 开发工具创建一个简单的 python工程。 二. PyCharm 开发工具创建一个工程 1. 首先&#xff0c;首先打开PyCharm 开发工具。选择 创建一…

2024-6-1 石群电路-20

2024-6-1&#xff0c;星期六&#xff0c;18:24&#xff0c;天气&#xff1a;晴&#xff0c;心情&#xff1a;晴。已经到学校啦&#xff0c;本来打算今天休息一天不更了&#xff0c;但是觉得可以更新完再休息&#xff0c;没有这么累&#xff0c;哈哈哈哈&#xff0c;这就不得不说…

长安链使用Golang编写智能合约教程(二)

长安链2.3.0的go合约虚拟机和2.3.0以下的不兼容&#xff0c;编译的方式也有差异&#xff0c;所以在ide上做了区分。 教程三会写一些&#xff0c;其他比较常用SDK方法的解释和使用方法 教程一&#xff1a;&#xff08;长安链2.1.的版本的智能合约&#xff09; 教程三&#xff…

排序方法——堆排序

文章目录 一、堆的概念二、向下调整法三、堆排序建堆排序 四、 完整代码 一、堆的概念 堆的概念&#xff1a;一个按照完全二叉树的储存方式存储的一维数组我们称之为堆。   堆可以分为大堆和小堆&#xff1a;   大堆&#xff1a;二叉树中父亲节点的值都比自己的孩子节点的…

阿里云部署nodejs

目录 1、安装node.js 1-1 进入opt/software 1-2 下载node.js安装包 1-3 解压 2 配置环境变量 2-1 vim中配置环境变量 2-2 命令行中保存环境变量 2-3 检查安装版本 2-3 更换镜像 3、上传node.js项目 1-1 启动项目 1-2 配置对应的安全组 ​编辑 4、pm2启动多个node项…

运维开发.Kubernetes探针与应用

运维系列 Kubernetes探针与应用 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263…

SQL—DQL(数据查询语言)之小结

一、引言 在前面我们已经学习完了所有的关于DQL&#xff08;数据查询语言&#xff09;的基础语法块部分&#xff0c;现在对DQL语句所涉及的语法&#xff0c;以及需要注意的事项做一个简单的总结。 二、DQL语句 1、基础查询 注意&#xff1a; 基础查询的语法是&#xff1a;SELE…