PTA - 接收n个关键字参数

接收n个以关键字形式传入的参数,按格式输出。

函数接口定义:

def print_info (**keyargs)

提示:keyargs为可变参数,其可接受若干个关键字形式的实参值,并将接收到的值组装为一个字典。

裁判测试程序样例:

/* 请在这里填写答案 */print_info(no=2001001, age=25, location='陕西')
print_info(no=2001002, age=26, location='湖北', tel=123456)

输入样例:

输出样例:

在这里给出相应的输出。例如:

no->2001001
age->25
location->陕西
no->2001002
age->26
location->湖北
tel->123456

我的答案:

三种写法的区别仅仅在于输出方式的不同

写法一:

def print_info (**keyargs):for i,val in keyargs.items():print(i, end = "->")print(val)

写法二:

def print_info(**keyargs):for k, v in keyargs.items():print(f"{k}->{v}")

写法三 :

def print_info(**keyargs):for key, value in keyargs.items():print("%s->%s" % (key, value))

测试结果:

 

说明:

说明一下*keyargs (单星号)和**keyargs (双星号)的区别

1.*keyargs (单星号):
  • 用于收集任意数量的位置参数(positional arguments)到一个元组中。
  • 通常命名为 *args,但可以使用任何有效的变量名。
  • 在函数内部,它是一个元组(tuple)。

例如:

def func(*args):for arg in args:print(arg)func(1, 2, 3)  # 输出:1, 2, 3

 

2.**keyargs (双星号):
  • 用于收集任意数量的关键字参数(keyword arguments)到一个字典中。
  • 通常命名为 **kwargs,但可以使用任何有效的变量名。
  • 在函数内部,它是一个字典(dict)。

例如:

def func(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")func(name="Alice", age=30)  # 输出:name: Alice, age: 30

 

3.主要区别:
  1. 参数类型:

    • *args 收集位置参数
    • **kwargs 收集关键字参数
  2. 结果数据结构:

    • *args 生成一个元组
    • **kwargs 生成一个字典
  3. 使用方式:

    • *args 允许你传递任意数量的位置参数
    • **kwargs 允许你传递任意数量的关键字参数
  4. 在函数调用中:

    • * 用于解包列表或元组为单独的位置参数
    • ** 用于解包字典为关键字参数

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

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

相关文章

数据库:redis练习题

1、安装redis,启动客户端、验证。 redis-server redis-cli 2、string类型数据的命令操作: (1) 设置键值: set mykey "haha" (2) 读取键值: get mykey (3&…

MSSQL Server运维常用SQL命令

1、数据库连接数 select name, state, state_desc from sys.databases; 查询结果: 2、数据库状态 select name, state, state_desc from sys.databases; 查询结果: 3、数据文件状态 select a.name, b.physical_name, b.state, b.state_desc from sy…

03MFC画笔/画刷/画椭圆/圆/(延时)文字

文章目录 画实心矩形自定义画布设计及使用连续画线及自定义定义变量扇形画椭圆/圆输出颜色文本定时器与定时事件画实心矩形 自定义画布设计及使用 连续画线及自定义定义变量 扇形 画椭圆/圆 输出颜色文本

尚品汇-(十六)

目录 商品详情功能开发 (1)搭建service-item (2)获取sku基本信息与图片信息 (3)获取分类信息(查看三级分类) 商品详情功能开发 (1)搭建service-item 点…

状态管理的艺术:探索Flutter的Provider库

状态管理的艺术:探索Flutter的Provider库 前言 上一篇文章中,我们详细介绍了 Flutter 应用中的状态管理,以及 StatefulWidget 和 setState 的使用。 本篇我们继续介绍另一个实现状态管理的方式:Provider。 Provider优缺点 基…

笔记 2 : 课本第 3 章开始,记录 arm 的汇编指令的格式

(13) 介绍 arm 中的第一个汇编指令的用法 mov : (14)立即数的概念: (15) 汇编中的移位写法: 举例 : (16) 学习一个新的指令 cmp &a…

芯课堂 | Synwit_UI_Creator(ugui)平台之PC端界面设计篇

​今天小编给大家介绍的是华芯微特面向小尺寸TFT-LCD屏驱市场量身打造的Synwit_UI_Creator(ugui)自研开发套件。 UI_Creator(ugui)开发套件分为上位机和下位机,以下如无特指,上位机即为PC端设计器/仿真器&…

虚拟机及其Debian(kali)安装

本机电脑为Windows10系统专业版,在此基础上安装VMware和系统(Kali) 步骤如下 一、安装 VMware Workstation Pro v16.2.4 安装步骤可参照网上博客,该步骤较简单,此处不做讲解。文件中共计两个,其中一个是激活…

【ProtoBuf】在 Windows / Linux 安装 ProtoBuf(超详细教程)

一、ProtoBuf 在 Window 下的安装 1、下载 ProtoBuf 编译器 下载地址:github.com 可以不用下载最新版本,具体的下载根据自己电脑情况选择。 下载之后将压缩包解压到本地目录下。解压后的文件内包含 bin、include 文件,以及一个 readme.txt…

基于SSM框架的宠物领养系统【附源码和运行步骤】

基于SSM框架的宠物领养系统 一、项目介绍用户模块宠物模块领养模块管理员模块 二、项目技术栈三、项目运行四、项目演示用户领养界面管理员界面 总结 大家好,这里是程序猿代码之路!在当今社会,宠物已经成为许多家庭的重要成员,带给…

4个免费自动生成文章的软件,轻松创作高质量文章

对于创作都而言,能够轻松创作出高质量的文章是每个创作者都想实现的想法,但如何依靠创作者自己去人工手动完成写作,那么将会需要付出很多时间与精力,并且还要有好的创作灵感,因此,通过人工手动创作高质量的…

记录些MySQL题集(1)

Innodb 是如何实现事务的? InnoDB是MySQL数据库的一个存储引擎,它支持事务处理。事务处理是数据库管理系统执行过程中的一个逻辑单位,由一个或多个SQL语句组成,这些语句要么全部执行,要么全部不执行,是一个…

PyTorch复现PointNet++——模型训练+模型测试

本博文主要实现对PointNet源码进行调试,模型训练模型测试。 一、下载源码和数据集 论文:PointNet: Deep Hierarchical Feature Learning on Point Sets in a Metric Space GitHub源码:Pointnet2_pytorch 数据集包括三种:分类、零…

django报错(三):No crontab program或got an unexpected keyword argument ‘user’

Crontab是linux系统上的定时管理模块,简单配置,灵活使用。但是要在windows使用必须借助Cygwin等虚拟工具,否则会报错“No crontab program”。如下图: python-crontab是其提供了python模块对crontab的访问,即可以通过p…

EasyAnimate-v3版本支持I2V及超长视频生成

阿里云人工智能平台(PAI)自研开源的视频生成项目EasyAnimate正式发布v3版本: 支持 图片(可配合文字) 生成视频 支持 上传两张图片作为起止画面 生成视频 最大支持720p(960*960分辨率) 144帧视…

【Git分支管理】分支策略 | Bug分支

目录 1.分支策略 2.特殊场景-Bug分支 2.1 master出现bug ​2.2 dev2正在开发☞stash区域 2.3 dev2正在开发master出现bug 2.3.1 fix_bug修复bug和master合并 2.3.2 dev2分支开发完和master合并 合并冲突:merge☞手动解决☞提交没有合并冲突:mer…

ns3-gym入门(三):在opengym基础上实现一个小小的demo

因为官方给的"opengym""opengym-2"这两个例子都很简单,所以自己改了一个demo,把reward-action-state相互影响的关系表现出来 一、准备工作 在ns3.35/scratch目录下创建一个文件夹: (后续的运行指令后面都需要…

【深度学习】基于深度学习的模式识别基础

一 模式识别基础 “模式”指的是数据中具有某些相似特征或属性的事物或事件的集合。具体来说,模式可以是以下几种形式: 视觉模式 在图像或视频中,模式可以是某种形状、颜色组合或纹理。例如,人脸、文字字符、手写数字等都可以视…

一图了解网络通信原理

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️运维工程师的职责:监…

正则表达式怎么控制匹配的字符串更近的一个

http((?!http).)*m3u8 正则表达式怎么控制匹配的字符串更近的一个 正则如何匹配最近的字符 正则如何匹配最近的两个字符 怎么控制只要离字符串b匹配更近一点的字符串a 解释 a.b,它将会匹配最长的以a开始,以b结束的字符串 a.?b匹配最短的&#xff…