干货!Python函数中的参数类型

图片

1.必须参数

  • 调用函数的时候,必须以正常的顺序传参,实参的数量和形参的数量保持一致

def demo(name, age):
    print("我的姓名是:%s, 年龄是:%d"%(name, age))

demo("张三", 22)    # 我的姓名是:张三, 年龄是:22
demo(22, "张三")    # TypeError: %d format: a real number is required, not str 若参数顺序不正确会报错

2.关键字参数

  • 允许函数调用的时候,实际参数和形式参数的顺序不一致,使用关键字进行自动匹配

demo(age=24, name="王五")    # 我的姓名是:王五, 年龄是:24

3.默认参数

  • 是指在函数定义时,给形参设置的默认值

def fn(num1, num2 = 10):
    print(num1 + num2)

fn(12, 36)    # 48
fn(12)    # 22

"""
使用默认参数时,注意的事项:
a.若函数中有默认参数,在调用函数时,若没有传递参数,则使用默认参数,若传递了参数,则使用传递的参数,传递的参数会覆盖默认参数
b.在定义函数时,若有默认参数,默认参数要放在参数列表的最后面,若放在前面会报错
"""

""" 
# 默认参数放在前面会报错
def test(a = 13, b):    # SyntaxError: parameter without a default follows parameter with a default
    print(a - b)
"""

4.不定长参数(可变参数):*args 和 **kwargs

"""
a. *args:用来接收多个位置参数,args是arguments的简写,得到的参数是一个元组
b. *kwargs:用来接收多个关键字参数,kwargs是 keyword arguments的简写,得到的参数是一个字典
"""
def fn1(num, *args):
    print(num, args)

fn1(13)    # 13 ()
fn1(13, 32)    # 13 (32,)
fn1(43, 447, 78)    # 43 (447, 78)

"""
# 注意:若函数参数中有 *args和普通参数,要八可变参数(*args)放在参数列表的最后面
def fn2(*args, num):
    print(args, num)

fn2(4343, 656, 78, 99, 4)    # TypeError: fn2() missing 1 required keyword-only argument: 'num'
"""

def fn3(a, **kwargs):
    print(a, kwargs)

fn3(76, x = 23, y = 87)    # 76 {'x': 23, 'y': 87}
# fn3(76, 23, 87)   # TypeError: fn3() takes 1 positional argument but 3 were given

"""
注意:
a.若函数中有 **kwargs 参数,在传输 kwargs 参数时,必须以键值对形式传输,k=v这种方式
b.参数列表中的 **kwargs 必须放在参数列表的最后面

def fn4(**kwargs, b):    # SyntaxError: arguments cannot follow var-keyword argument
    print(kwargs, b)
fn4(a = 32, b = 43, 32)
"""

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

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

相关文章

通过测试自动化转移安全关键软件测试

我们正面临安全关键软件的成本危机,这意味着所需增加的功能已经超出了支付其开发费用的能力。例如,波音 787 项目需要 650 万行代码,设计、开发和测试成本达 40 亿美元。波音777X项目的成本数字并未公开披露,波音737 MAX最初估计为…

Python单线程、多线程、多进程

并发和并行 并发:单核CPU在不同时刻只执行一个任务,在同一时间段内,交替执行两个任务。 并行:双核CPU可以在同一时刻执行两个任务。 多核CPU的每个核心都可以独立执行一个任务,而且多个核心之间不会相互干扰。 并发…

typescript学习(更新中)

目录 开发环境搭建类型如何声明有哪些类型编译配置文件 开发环境搭建 npm i -g typescripttsc检查是否安装成功 类型如何声明 // 先声明再赋值 let a: number a 1// 直接赋值 let b 1function sum(a: number, b: number): number {return a b } console.log(sum(1, 2))有…

linux 将 api_key设置环境变量里

vi ~/.bashrc在最后添加api_key的环境变量 export GEMINI_API_KEYAIza**********WvpX7FwbdM刷新配置 source ~/.bashrc使用python 读取环境变量 import os gemini_api_key os.getenv(GEMINI_API_KEY) print(gemini_api_key)

Mysql的Cardinality值

什么是Cardinality值? Cardinality值是Mysql做索引优化时一个非常关键的值,优化器会根据这个值来判断是否使用这个索引,它表示索引中唯一值的数目估计值,该值应该尽可能接近1,如果非常小,则用户需要考虑是否…

企业计算机服务器中了mkp勒索病毒如何解密,mkp勒索病毒解密流程

网络技术的应用与发展,为企业的生产运营提高了效率,越来越多的企业利用网络开展多项工作业务,利用网络的优势,可以为企业更好的服务,但是稍不注意就会被网络威胁所盯上。近日,云天数据恢复中心接到多家企业…

二本双非|逆袭985/211只要做好这3件事

我的本科学校就是双非,但是我并不觉得考研是一件非常容易地事情,并且我身边的同学也没有一个觉得考研很轻松。可能网上很多经验贴说自己双非上岸985,二本上岸985,我觉得这是大家陷入了互联网时代的信息茧房。 考研不管是对985/211…

波奇学Linux: 信号捕捉

sigaction:修改信号对应的handler方法 act输入型参数&#xff0c;oldact输出型参数 void (*sa_handler) (int) //修改的自定义函数 sigset_t sa_mask // void handler(int signo) {cout<<"catch a signal, signal number: "<<signo<<endl; } int …

超市小程序有哪些功能 怎么制作

超市小程序是非常有用的工具&#xff0c;可以帮助超市提升用户体验&#xff0c;提高销售额。下面我们来看一下超市小程序可以具备哪些功能&#xff0c;以及如何制作一个高效的超市小程序。 1. **商品展示与搜索功能**&#xff1a;用户可以浏览超市的商品信息&#xff0c;包括价…

数字化转型导师坚鹏:大模型的应用实践(金融)

大模型的应用实践 ——开启人类AI新纪元 打造数字化转型新利器 课程背景&#xff1a; 很多企业和员工存在以下问题&#xff1a; 不清楚大模型对我们有什么影响&#xff1f; 不知道大模型的发展现状及作用&#xff1f; 不知道大模型的针对性应用案例&#xff1f; 课程…

雍禾医疗耀眼的“小”医生,雍禾植发刘树伟10年热爱一份事业

“你说你一个普外科大大夫&#xff0c;怎么改去做小小毛发医生了呢&#xff1f;”这是雍禾植发刘树伟医生&#xff0c;从公立医院转行做毛发医生时&#xff0c;被人质疑最多的点。然而&#xff0c;选择成为一名毛发医生&#xff0c;却是他花3年时间做出的重要的决定。 2009年&…

【C++ STL详解】——string类

目录 前言 一、string类对象的常见构造 二、string类对象的访问及遍历 1.下标【】&#xff08;底层operator【】函数&#xff09; ​编辑 2.迭代器 3.范围for 4.at 5.back和front 三、string类对象的容量操作 1.size 和 length 2.capacity 3.empty 4.clear 5.res…

【校园安全】支小蜜防校园霸凌语音识别系统的好处

在校园安全领域&#xff0c;防校园霸凌语音识别系统的出现&#xff0c;为预防和应对校园霸凌行为提供了新的技术手段。本文将探讨防校园霸凌语音识别系统的好处&#xff0c;并分析其在校园安全建设中的重要作用。 通过安装在校园各个角落的语音识别设备&#xff0c;系统能够捕…

Flink并行度

1、Task flink中每个算子就是一个Task&#xff0c;比如flatMap、map、sum是一个Task。 2、SubTask 算子有几个并行度SubTask的数量就是几&#xff0c;比如 3、算子并行度 算子并行度指的是每个算子的并行度&#xff0c;可用env.setParallelism(1);设置所有算子的并行度&am…

浏览器是如何渲染页面的?

浏览器是如何渲染页面的&#xff1f; 1. 解析 HTML2. 样式计算 Computed Style3. 布局 Layout4. 分层 Layer5. 绘制 Paint6. 分块 Tiling7. 光栅化 Raster8. 画 draw完整过程面试题什么是 reflow&#xff08;回流/重排&#xff09;?什么是 repaint &#xff08;重绘&#xff0…

智慧城市中的数字孪生:构建城市管理的未来框架

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、实时监测与预警 2、模拟与优化 3、智能化决策 4、协同与共享 四、数字孪生技术构建城市管理的未来框架的价值 1、提高管理效率 2、优化资源配置 3、提升公共服务水平 4、增强应对突发事…

【Linux】Linux——Centos7安装

目录 虚拟机安装【空壳子】安装VMware Workstation新建虚拟机硬件兼容性(直接下一步)稍后安装操作系统客户及操作系统选择Linux&#xff0c;版本Centos764位给虚拟机命名&#xff0c;并选择安装位置处理器配置&#xff08;默认即可&#xff0c;不够用后面可以调&#xff09;虚拟…

JavaWeb - 3 - JavaScript(JS)

JavaScript(JS)官方参考文档&#xff1a;JavaScript 教程 JavaScript&#xff08;简称&#xff1a;JS&#xff09;是一门跨平台、面向对象的脚本语言&#xff0c;是用来控制网页行为的&#xff0c;它能使网页可交互&#xff08;脚本语言就不需要编译&#xff0c;直接通过浏览器…

谷歌广告(google Ads)投放技巧

Google广告投放涉及多个方面&#xff0c;以下是一些常用的技巧&#xff0c;可以帮助提高广告效果&#xff1a; 关键词选择&#xff1a; 选择与你的产品或服务紧密相关的关键词&#xff0c;并确保这些关键词与用户的搜索意图匹配。使用Google关键词规划工具来找到潜在的关键词&a…

python词嵌入

一、词嵌入的概念 自然语言处理的突破在2023年震撼世界&#xff0c;chatgpt3出来&#xff0c;之后chatgpt4、Gemini、Claude3等出来&#xff0c;问答越来越智能&#xff0c;非常厉害&#xff0c;其中有个基础性的概念&#xff0c;计算机要如何理解语言&#xff0c;基础工作就在…