Python编程技巧 – 函数参数
Python编程技巧 – 函数参数
Python Programming Skills - Functional Parameters
1. 函数的定义
函数有简明扼要的定义。
- 函数是一个代码块,仅在调用时运行。
- 可以将数据(称为参数)传递到函数中。
- 函数可以返回数据作为结果。
2. 函数的结构
定义函数时,函数体使用def声明,并且后跟一对括号(),最后是一个冒号:
这样构成函数的基本代码结构,如下所示:
def myFunction():// expression
按照上述函数的定义,该函数在调用时才生效,如下代码:
myFunction( )
无论函数是否有返回值,函数参数都可以有各种变化。
** 注:本文简要介绍函数有哪些参数的变化,以及具体使用方法,以便读者更好地了解和掌握函数用法。
以下的编程,采用命令行提示符交互式解释器。
3. 默认参数
函数的默认参数,有时候也成为可选参数。定义函数时,如果参数提供默认值,则称为默认参数。
默认参数是作为备选的。如果用户调用函数时,忘记或者没有为该参数提供任何值,那么,函数就是用事先定义好的默认值参数。
示例一: 代码如下,默认姓名(name) 为“Angela”。
>>> def func(name = "Angela"):
... print("Happy Birthday!", name)
...
>>> func()
Happy Birthday! Angela
可以看到,在调用func()函数时,没有传递参数,故输出使用默认参数。
4. 关键字参数
关键字参数,是指调用函数并传递值,但不考虑其位置;调用函数时使用参数名并为其赋值。
示例二: 代码如下,注意在调用时传递值。
>>> def func(n1, n2):
... print("Happy Birthday!", n1, " and ", n2, "!!!")
...
>>> func(n2="Leonardo", n1="Marcia")
Happy Birthday! Marcia and Leonardo !!!
5. 可变长度参数
当用户不确定函数的参数个数时,可使用可变长度参数来定义函数。
1) 创建函数时,在参数前放置星号“*”,这样一来,从这点到末尾的所有位置参数,都作为元组元素;
2) 此外,如果将双星号“**”放在参数名称前面,则表示从该点到末尾的所有位置参数都作为字典元素。
示例三: 代码如下所示,看看输出结果。
>>> def func(*name, **age):
... print("Welcome!", name)
... print("Your age is:", age)
...
>>> func("Leonardo", "Melissa", "Maggie", Leonardo = "28", Melissa = "39", Maggie = "5")
Welcome! ('Leonardo', 'Melissa', 'Maggie')
Your age is: {'Leonardo': '28', 'Melissa': '39', 'Maggie': '5'}
总而言之,无论是哪种参数,在规划和创建函数时,就要考虑周全,让函数发挥出效能,同时避免在大型项目中出错,造成资源浪费。
技术好文陆续推出,敬请关注。
您的认可,我的动力! 😃
相关阅读:
- Python编程技巧 - 使用集合
- Python编程技巧 - 编写单行 if 条件语句
- Python编程技巧 - format格式化文本
- Python编程技巧 - 使用正则表达式
- Python编程技巧 - 单字符函数
- Python编程技巧 - 使用组合运算符
- Python编程技巧 - 异常处理
- Python编程技巧 - 迭代器
- Python编程技巧 - lambda函数
- Python编程技巧 - 使用字典
- Python编程技巧 - 使用字符串
- Python编程技巧 - 对象和类
- Python编程技巧 - 使用列表
- Python编程技巧 - 函数入门
相关文章:
Python编程技巧 – 函数参数
Python编程技巧 – 函数参数 Python Programming Skills - Functional Parameters 1. 函数的定义 函数有简明扼要的定义。 函数是一个代码块,仅在调用时运行。可以将数据(称为参数)传递到函数中。函数可以返回数据作为结果。 2. 函数的结…...
python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-帖子管理实现
锋哥原创的SpringbootLayui python222网站实战: python222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火…...
LabVIEW扫频阻抗测试系统
实现扫频阻抗法用于检测变压器绕组变形,结合了短路阻抗法和频响法的优点,但受限于硬件精度,尤其是50 Hz短路阻抗测试存在稳定性和准确性的问题。通过LabVIEW编程,控制宽频带信号发生器和高速采集卡,提高测试结果的稳定…...
C语言——指针进阶(四)
目录 一.前言 二.指针和数组笔试题解析 2.1 二维数组 2.2 指针笔试题 三.全部代码 四.结语 一.前言 本文我们将迎来指针的结尾,包含了二维数组与指针的试题解析。码字不易,希望大家多多支持我呀!(三连+关注&…...
Django介绍
一、介绍 Django是Python语言中的一个Web框架,Python语言中主流的web框架有Django、Tornado、Flask 等多种 优势:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等功能,是一个全能型框架,拥有自己的A…...
【idea】几个不错的idea插件让我码速又快了
目录 前言 Gradianto插件 jclasslib Bytecode viewer插件 Grep Console 插件 GenerateAllSetter 插件 GsonFormat 插件 JRebel and XRebel 插件 leetcode editor 插件 maven helper 插件 SequenceDiagram 插件 Statistic 插件 Translation 插件 前言 idea可以说是j…...
LabVIEW直流电机转速检测与控制
研究了使用LabVIEW软件和ELVIS实验平台来检测和控制直流电机的转速。通过集成光电传感器和霍尔传感器,实现了对电机转速的精确测量和调节。 系统组成:系统由NI ELVIS实验平台、光电传感器、霍尔传感器和直流电机组成。通过这些硬件元件,系统…...
༺༽༾ཊ—Unity之-05-抽象工厂模式—ཏ༿༼༻
首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务:使用 抽象工厂模式 创建 人物与宠物 模型, 首先资源商店下载 人物与宠物…...
力扣面试题02.07-链表相交
链表相交 题目链接 解题思路: 题目可以确定如果相交,那么相交的部分一定是在链表的结尾部分第一步求得两条链表的长度第二步长度做差,将长的那条链表与短的那条链表后部分对其第三步遍历后面的部分,如果当前节点相等,…...
Java集合-ArrayList
集合就是一个保存数据的容器。在计算机中引入集合,是为了便于处理一组类似的数据。Java标准库自带的java.util包提供了集合相关的接口和实现类:Collection接口,它是除了Map接口外所有其他集合类的根接口。 Java的Java.uitl包主要提供以下三种…...
数据结构·单链表经典例题
1. 移除链表元素 OJ链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 本题是说给出一个链表的头节点head和一个整数val,如果发现节点中存的数据有val就删掉它,最后返回修改后的链表头节点地址 如果题目中没有明确…...
Linux常用指令的整合
之前面试被问到了Linux相关的指令,所以我整理的一份常用的Linux指令列表,适用于大多数Linux发行版,现分享给大家: 文件操作 ls:列出目录内容。cd [目录]:更改当前目录。pwd:显示当前目录路径。m…...
阿里云centos安装mysql,并修改初始密码
阿里云centos安装mysql,并修改初始密码 安装数据库、修改初始密码、并测试建立自己的数据库步骤1:创建数据库和用户步骤2:配置Nginx1. 创建新的站点配置文件2. 编辑配置文件3. 保存并退出编辑器4. 测试配置文件是否正确5. 重新加载 Nginx 以应…...
【JavaScript基础入门】04 JavaScript基础语法(二)
JavaScript基础语法(二) 目录 JavaScript基础语法(二)变量变量是什么声明变量变量类型动态类型注释 数字与运算符数字类型算术运算符操作运算符比较运算符逻辑运算符运算符的优先级 变量 变量是什么 在计算机中,数据…...
标准库中的string类(下)——“C++”
各位CSDN的uu们你们好呀,这段时间小雅兰的内容仍然是Cstring类的使用的内容,下面,让我们进入string类的世界吧!!! string类的常用接口说明 string - C Reference string类的常用接口说明 string类对象的修…...
如何使用Docker部署火狐浏览器并实现无公网ip远程访问
文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…...
瑞_数据结构与算法_AVL树
文章目录 1 什么是AVL树1.1 AVL树的背景及定义1.2 判断失衡1.2.1 平衡因子1.2.2 失衡的四种情况1.2.2.1 LL1.2.2.2 LR1.2.2.3 RL1.2.2.4 RR 1.3 解决失衡1.3.1 左旋(RR)1.3.2 右旋(LL)1.3.3 先左旋再右旋(LR࿰…...
BGP同步规则
BGP同步规则:开启同步下,从IBGP收到一条路由不会传给任何EBGP邻居(实验效果IBGP邻居和EBGP邻居都不传),除非从自身的IGP中也学到这条路由。目的是防止AS内部出现路由黑洞,向外部通告了一个本AS不可达的虚假的路由。 同步规则只影响从IBGP邻居收到的路由,不影响从EBGP邻居收…...
Linux命令-apt-key命令(管理Debian Linux系统中的软件包密钥)
补充说明 apt-key命令 用于管理Debian Linux系统中的软件包密钥。每个发布的deb包,都是通过密钥认证 的,apt-key用来管理密钥。 语法 apt-key(参数)参数 操作指令:APT密钥操作指令。 实例 apt-key list # 列出已保存在系统中key。 apt-…...
Python根据Excel表进行文件重命名
一、问题背景 在日常办公过程中,批量重命名是经常使用的操作。之前我们已经进行了初步探索,主要是通过批处理文件、renamer软件或者Python中的pathlib等模块对当前目录下的文件进行批量重命名。 而今天我们要使用的是PythonExcel的方法对指定目录下的文…...
终极Neovim AI助手:Avante.nvim如何彻底改变你的编码体验 [特殊字符]
终极Neovim AI助手:Avante.nvim如何彻底改变你的编码体验 🚀 【免费下载链接】avante.nvim Use your Neovim like using Cursor AI IDE! 项目地址: https://gitcode.com/GitHub_Trending/ava/avante.nvim 在当今AI驱动的开发时代,Neov…...
终极RippleEffect测试指南:5步确保Android波纹动画质量的完整策略
终极RippleEffect测试指南:5步确保Android波纹动画质量的完整策略 【免费下载链接】RippleEffect Implementation of Ripple effect from Material Design for Android API 9 项目地址: https://gitcode.com/gh_mirrors/ri/RippleEffect RippleEffect是一款为…...
计算机网络知识应用:保障分布式StructBERT微服务集群通信
计算机网络知识应用:保障分布式StructBERT微服务集群通信 最近在搞一个基于StructBERT模型的智能问答系统,随着用户量上来,单台服务器明显扛不住了,响应慢不说,还动不动就挂掉。没办法,只能上微服务集群&a…...
如何用TerminusDB构建语义数据仓库:从零开始的完整指南
如何用TerminusDB构建语义数据仓库:从零开始的完整指南 【免费下载链接】terminusdb TerminusDB is a distributed database with a collaboration model 项目地址: https://gitcode.com/gh_mirrors/te/terminusdb TerminusDB是一款分布式数据库,…...
PX4无人机开发实战:5个关键ROS话题的订阅与发布详解(附代码示例)
PX4无人机开发实战:5个关键ROS话题的订阅与发布详解(附代码示例) 当你在PX4无人机开发中首次接触ROS通信时,可能会被各种话题和服务搞得晕头转向。作为连接飞控与外部系统的桥梁,这些通信接口直接决定了无人机的可控性…...
Beyond Compare 5专业授权生成器:3种高效授权方案完整指南
Beyond Compare 5专业授权生成器:3种高效授权方案完整指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare作为业界领先的文件对比工具,其强大的功能在软件…...
SAM 3实操手册:分割掩码生成STL网格用于3D打印前处理
SAM 3实操手册:分割掩码生成STL网格用于3D打印前处理 1. 引言 你是否遇到过这样的问题:想要3D打印一个实物,但手头只有一张照片?或者想要从复杂的背景中提取出特定物体进行三维重建?传统的方法需要手动抠图、建模&am…...
Stable Diffusion Lora训练避坑指南:为什么你的模型总是‘丑’?
Stable Diffusion LoRA训练实战:从“翻车”到精通的避坑手册 每次看到别人分享的精致LoRA模型,再看看自己训练出的"克苏鲁风格"作品,是不是有种砸键盘的冲动?别急着放弃——这可能是你训练流程中几个关键环节出了问题。…...
5G NR PUSCH实战:手把手教你理解Type A/B时域映射与SLIV计算(附避坑指南)
5G NR PUSCH实战:Type A/B时域映射与SLIV计算全解析 从理论到实践:PUSCH时域资源分配的核心逻辑 在5G NR系统中,物理上行共享信道(PUSCH)的时域资源分配直接决定了上行数据传输的效率和可靠性。对于物理层开发工程师而…...
NeoPixel Painter:嵌入式HSV动画的固定点实现
1. NeoPixel Painter 库概述NeoPixel Painter 是一个面向嵌入式 LED 动画开发的轻量级 Arduino 库,专为简化 WS2812B(NeoPixel)LED 灯带的动态效果编程而设计。它并非对 Adafruit_NeoPixel 库的简单封装,而是构建在其之上的状态驱…...
