每个python程序员都应该早点知道的 6 个 Python 函数

资深程序员才知道的30个Python技巧 Python中的省略号 Python省略号是三点序列,通常在自然语言中使用。但是您可能不知道的是,这也是Python中的有效对象: … Ellipsis 它主要用于NumPy中的矩阵切片操作。但是,您可以在尚未实现的函数中使用它代替占位符,而不必使用通常的方法: def my_awesome_func(): … 这就是有效的Python代码 2.数据类别 从3.7版开始,Python附带了数据类。与常规类或其他替代方法相比,它们具有一些优点: 返回多个值或字典; 数据类需要最少的代码量; 比. 阅读详情

在编程中,默认参数的引入使得函数调用更为灵活,不仅允许开发者在特定情况下省略某些非必需参数,同时也强调了对参数与实际传递值(即论点)之间区别的理解,这对于掌握函数工作机制至关重要。

此外,根据需要选择位置参数或是关键字参数进行传递,以及利用 *args 和 **kwargs 来处理不确定数量的参数,都极大地增强了函数的通用性和代码的简洁性,使得编程实践既高效又优雅。

1) 默认参数

def hello(name, greeting="Hi"):  print(greeting, name)
hello("韩梅梅")# Hi 韩梅梅
hello("韩梅梅", greeting = "你好")# 你好 韩梅梅

在 hello("韩梅梅")中,我们没有在greeting中传递任何信息。这意味着它默认为 "hi"

在hello("韩梅梅", greeting = "你好")中,我们将 "hello "传入了 greeting。也就是说,我们覆盖了默认参数,并指定 greeting = '你好'

如果函数中有大量参数,而我们又不希望每次调用函数时都要输入每个参数,那么这种方法就非常有用。

图片

2)形参和实参

在我学习 Python 的最初一年,我以为它们的意思是一样的。

但也不尽然。有一点区别。

比方说,我们有一个简单的函数,它接收 (a, b) 并返回它们的平均值。

def add(a, b):  return a+b

形参是我们定义函数时写在括号内的变量。这里,a 和 b 就是形参。

def add(a, b):  return a+bx = add(3,4)print(x)  # 7

实参是我们在调用函数时实际传递给函数的值。在这里,当我们调用 add(a, b) 函数时,3 和 4就是参数。

图片

3)  位置参数和关键字参数

举一个简单的函数为例。

def test(a,b):  print(f'{a=} {b=}')

让我们通过传递一些位置参数来调用这个函数。

def test(a,b):  print(f'{a=} {b=}')
test(4,3) # a=4,b=3

这里,4 和 7 是位置参数。位置参数需要按顺序排列 ,将4 传递到 a,而 7 传递到 b。

接下来,让我们通过传递一些关键字参数来调用我们的函数。

def test(a,b):  print(f'{a=} {b=}')
test(b=10,a=20) # a=20,b=10

这里,b=5 和 a=8 是关键字参数。关键字参数不需要按顺序排列,但我们必须使用 key=value 格式传递它们。

图片

4)  任意位置参数 (*args)

函数中的任意位置参数(也称为 *args)允许函数接受任意数量的位置参数。

def test(*args):  print(args)test()       # ()test(1)      # (1,)test(1,10)   # (1,10)

args是约定俗成的写法,其实你也可以写成  *a 或 *aa

在这里,test 函数接收 *args , 这使得 test 可以接收任意数量的位置参数,所有这些参数都将包含在一个名为 args 的元组中。

我们也可以将其与普通参数相结合(*参数必须在后面)

def test(a,b, *args):  print([a,b],args)test()       # 错误test(1)      # 错误test(1,10)   # [1,10] ()
test(1,10,20)   # [1,10] (20)test(1,10,20,30)   # [1,10] (20,30)

再次补充说明:我们不必将其命名为 *args。只要在前面加上 "*",我们可以给它起任何名字(甚至是中文)。

图片

5)任意关键字参数(**kwargs)

任意关键字参数(也称为 **kwargs)允许我们的函数接收任意数量的关键字参数。

def test(**kargs):  print(kargs)test()       # {}test(a = 1)      # {"a":1}test(b = 1,a = 10)   # {'b': 1, 'a': 10}

在这里,test 函数使用了 **kwargs, 它允许 test 使用任意数量的关键字参数,这些参数将被记录在名为 kwargs 的字典中。

我们还可以将其与普通参数相结合(**kwargs 也必须在后面)

def test(a,b,**kargs):  print(kargs)test()                     # 错误test(a = 1)                # 错误test(b = 1,a = 10)         # {}test(b = 1,a = 10, c=20)   # {"c":20}

图片

6) 使用 * 和 ** 将 列表或字典传递给函数

下面是一个简单的函数,它只需打印出参数。

def test(a,b):  print(f'{a=} {b=}')

我们可以不按常规方法调用这个函数,即 test(1,2):

使用 * 传递包含位置参数的列表

def test(a,b):  print(f'{a=} {b=}')nums= [10,20]test(*nums) # a = 10, b =20

在这里,nums 前面的 * 将其内容作为位置参数解包到函数调用中。这与 test(100, 200) 相同。

使用 ** 传递包含关键字参数的字典

def test(a,b):  print(f'{a=} {b=}')nums= {"a":10,"b":20}test(**nums)  # a = 10, b =20

在这里,nums前面的 ** 将其键值对作为关键字参数解包到函数调用中。这与 hi(a=10, b=20) 相同

图片

python81

python · 目录

上一篇shp文件转换为CAD文件 (第三版) 这个软件的界面颜值挺高的

我要是早点用Python做副业就好了...... 近几年的科技发展趋势十分有趣,关注科技圈的朋友应该都能有一种共识,那就是人类科技进化的“技能点”似乎都点在了人工智能、虚拟现实、大数据、物联网与区块链上,相关技术在短时间内被广泛普及并大量应用。其速度之快,应用之广,令人惊叹。而Python则与它们在技术上有着不可或缺的紧密关联,这使得各行业对Python技术服务的需求量越来越大,尤以爬虫服务为甚,在一些特定时间点常常会供不应求。由于需求明显大于供给,长此以往,不平衡的供需关系使Python技术服务的报酬变高。所以包括我在内的很多Python圈内人,都会在业 阅读详情

相关推荐

告别手动打卡:逍遥模拟器+宥马运动自动跑步脚本配置全流程

本文详细介绍了如何利用逍遥模拟器和自动化脚本实现宥马运动的自动跑步功能,告别手动打卡的繁琐。从环境准备、脚本部署到定位配置和智能调度,全流程指导用户完成自动化设置,提升效率并确保运动数据的真实性。

weixin_42532473的博客 535

PTA Python实验6 函数

在这里描述函数接口。参数x是一个实数,函数要返回一个实数。在这里描述函数接口。例如:在这里描述函数接口。参数s是一个字符串,函数要返回1或者0。prime(p),返回True表示p是素数,返回False表示p不是素数;PrimeSum(m,n),函数返回素数之和。在这里解释接口参数。例如:其中N和D都是用户传入的参数。N的值不超过int的范围;D是[0, 9]区间内的个位数。函数须返回N中D出现的次数。

OraOla的博客 1万+

从零构建个性化AI助手:基于Mem0与本地大模型的记忆化实践

本文详细介绍了如何利用Mem0与本地大模型构建个性化AI助手,实现记忆化应用结构的实践方法。从开发环境搭建、记忆存储机制到个性化交互实现,提供了完整的解决方案和代码示例,帮助开发者在本地环境中创建能记住用户习惯和偏好的智能助手。

weixin_29214335的博客 464

10 个有用的 Python 字符串函数你必须知道

Python 字符串是一个内置的类型序列。字符串可用于处理 Python 中的文本数据。Python 字符串是 Unicode 点的不可变序列。在 Python 中创建字符串是最简单易用的。要在 Python 中创建字符串,我们只需将文本括在单引号和双引号中。Python 对单引号和双引号语句的处理方式相同。因此,在本文中,我们将讨论 Python 中用于数据分析和数据操作的一些重要且有用的字符串函数,主要用于自然语言处理(NLP)。

努力是为了站在万人之中,成为别人的光 7181

避坑指南:解决‘Logical volume contains a filesystem in use’错误,顺利完成LVM根目录扩容

本文详细解析了Linux系统中LVM根目录扩容时遇到的‘Logical volume contains a filesystem in use’错误,提供了从错误诊断到实战解决方案的完整指南。通过动态扩容技术、单用户模式操作和LVM快照等方案,帮助管理员顺利完成根目录扩容,避免数据丢失和系统崩溃。

weixin_28702105的博客 226

Python模拟发送SOME/IP消息(Scapy模块)

SOMEIP提供服务、订阅、响应、通知等Python代码示例

liluo0815481的博客 3068

Python3,这应该是,使用最广泛的6个内置函数,别说你还不知道。

网友:但凡早点知道这6个内置函数,我就不至于被面试官怼了。

商务合作 | 面试培训 | 职场规划 ==>主页扫码 5568

sphincs+ Nist Round3文档中文译版(SPHINCS+ Submission to the NIST post-quantum project, v.3)

1. 引言 哈希基础签名方案最初是由Lamport [14]在1970年代后期作为一次性签名方案开发的,并由Merkle [16]扩展为多次签名方案。这些方案的安全性易于分析,并仅依赖于所使用的哈希函数的属性。然而,Merkle基于树的签名方案需要在密钥生成时就确定要进行签名的数量,且为了保持性能这个数字要小。最重要的是,该系统需要用户记住一个状态:这个状态包含一些信息以记住密钥已经进行了多少次签名。 在Lamport方案诞生后的40年里,产生了许多想法改进了哈希基础签名的性能、实用性和理论基础,最终XMS

dedanddwb的博客 394

每个程序员都要知道的一个网站

该网站都是收集了程序员工作中经常会用到的代码片段,语言支持JavaScript、Css、Python等,以及React、Git、Node等技术。网址:https://www.30secondsofcode.org/比如数组的排序,Javasript不同的实现方式。在日常开发过程中,你是不是经常回到搜索引擎,

成长的足迹 1万+

使用Open3D进行RGB-D图像点云处理

在本文中,我们将使用Open3D来处理RGB-D图像,提取点云并进行一些基本的操作。总结起来,本文介绍了如何使用Open3D库处理RGB-D图像并提取点云。我们展示了如何读取RGB-D图像,创建RGB-D图像和点云,并显示点云。除了显示点云,Open3D还提供了许多其他功能,如点云滤波、点云配准、表面重建等。在创建RGB-D图像时,我们需要指定深度图像的缩放因子和截断值,以及是否将RGB图像转换为强度图像。希望本文能够帮助您入门Open3D,并在处理RGB-D图像和点云数据时提供一些指导。

QfcaLinux的博客 445

302.QoS实现工具之MQC

QoS 技术可以对网络中报文进行分类处理,根据优先级提供不同的差分服务,如何实现这种差分服务呢?我们有一种强大的配置方法 - 模块化 QoS 命令行 MQC(Modular QoS Command-Line)。下面就来介绍一下 MQC。

迷逝 1390

Python3,不知道Python内置库函数,不要错过这篇,必须收藏!!!

python内置库详解1、引言2、内置库详解2.1 数据相关2.1.1 数据类型2.1.2 进制转换2.1.3 数学运算2.2 数据结构相关2.2.1 序列2.2.2 数据集合2.2.3 相关内置函数2.3 作用域相关2.4 迭代器生成器相关2.5 字符串类型代码的执行2.6 输入输出2.7 内存相关2.8 文件操作相关2.9 模块相关2.10 调用相关2.11 帮助2.12 查看内置属性3、总结 1、引言 最近在整理我的小作业本,顺便翻到了Python内置库, 感觉自己在小本本上写的也挺凌乱的,索性一不做

商务合作 | 面试培训 | 职场规划 ==>主页扫码 2万+

dify制作的工作流如何通过API调用

本文介绍了如何通过Python程序调用Dify工作流API实现数据处理功能。文章详细展示了workflow和chatflow的调用方法,包括参数设置和结果输出,并提供了一个完整的API调用工具代码示例。该工具可实现文本处理、成果查重、关键词生成等功能,支持通过Python脚本或Postman进行调用。核心代码包含API请求函数和批量处理函数,通过HTTP请求与Dify服务端交互,实现自动化数据处理流程。

hhue2007的专栏 932

每个程序员都必须知道的22个Python单行代码

分享24个每个Python程序员都必须知道的单行代码,帮你写出更简洁、更优雅、更高效的代码。

2301_78217634的博客 1010

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

每个 Python 高手都应该知道的内置函数

python内置了一些非常巧妙而且强大的内置函数,对初学者来说,一般不怎么用到,我也是用了一段时间python之后才发现,哇还有这么好的函数,这个函数都是经典的而且经过严格测试的,可以一下子省了你原来很多事情,代码不仅简洁易读了很多,而且不用自己去闭门造车.既方便了自己又减少了bug。 1.sorted() 1)对于一个列表排序 sorted([100, 98, 102, 1, 40]) ...

weixin_30645617的博客 118

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

每个新手程序员都应该知道的Python技巧

作者:Peter Nistrup 翻译:周萝卜 当下,Python 比以往的任何时候都更加流行,人们每天都在实践着 Python 是多么的强大且易用。 我从事 Python 编程已经有几年时间了,但是最近6个月才是全职的。下面列举的这些事情,是我最开始使用 Python 的时候,就希望清楚的: 字符串操作 列表推导 Lambda 和 Map 函数 在一行里使用 if elif 和 else 条件...

人生苦短, 还不用Python? 346

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

每个新手程序员都必须知道的Python技巧

当下,Python 比以往的任何时候都更加流行,人们每天都在实践着 Python 是多么的强大且易用。 我从事 Python 编程已经有几年时间了,但是最近6个月才是全职的。下面列举的这些事情,是我最开始使用 Python 的时候,就希望清楚的: 字符串操作 列表推导 Lambda 和 Map 函数 在一行里使用 if elif 和 else 条件判断 zip() 函数 字符串操作 ...

Python零基础学习 243

新手请进:每个Python程序员都应该知道的10个缩写词

全文共6399字,预计学习时长16分钟图源:unsplashPython是许多编程初学者的首选语言,它的语法非常直观,并且具有支持动态类型的灵活性;此外,它还是一种解释性语言,可以使用交...

读芯术的博客 1180

每个程序员都应该知道的高级 Python 技术

Python 有一个非常棒的工具,叫做 Pprint 模块。该模块允许您以人类可读的格式显示 Python 对象。这在调试程序时非常有用。假设您有一个函数,它接受一个名为 a 的输入参数。您可以使用 Pprint 模块在括号内显示 a.type 的内容。

2401_84208172的博客 88

python list 排序_6个python内置函数,每个 Python 高手都应该知道!

python内置了一些非常巧妙而且强大的内置函数,对初学者来说,一般不怎么用到,我也是用了一段时间python之后才发现,哇还有这么好的函数,这个函数都是经典的而且经过严格测试的,可以一下子省了你原来很多事情,代码不仅简洁易读了很多,而且不用自己去闭门造车.既方便了自己又减少了bug。(私信我python,获得万元python大礼包!)1.sorted()1)对于一个列表排序sorted([100...

weixin_39671631的博客 114

每个新手程序员都应该知道的Python开发技巧

作者 | Peter Nistrup翻译 | 周萝卜出品 | 萝卜大杂烩(ID:luobodazahui)当下,Python 比以往的任何时候都更加流行,人们每天都在实践...

Python大本营的博客 184

每个Python程序员都应该知道的35个Python语言特征和编程技巧

从我开始学习python的时候,我就开始自己总结一个python小技巧的集合。后来当我什么时候在Stack Overflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!当时我会努力的自己尝试一下这段代码,直到我懂了它的整体思路以后,我就把这段代码加到我的集合里。这篇博客其实就是这个集合整理后一部分的公开亮相。如果你已经是个python大牛,那么基本上你应该知道这里面的大...

233

每个程序员都应该学习的5种编程语言

了解一种或者真正的编码语言是很好的,但作为一个真正的多语言开发人员是如何实现真正的主要状态。 我在某处读到程序员应该每年学习一种新的编程语言(我认为它的代码完整,但不确定),但如果你不能这样做,我建议你至少学习以下五种编程语言,以便在你的职业生涯中取得好成绩。 。 每个公司都喜欢多语言程序员和一个全面的编码人员,他们是多才多艺的语言编写快速脚本,并且还可以编写复杂的Java程序,确实是一个有价...

taya_a的博客 1万+

Python学习:每个程序员都必须知道的22个Python单行代码!

这里免费分享给大家一份Python全台学习资料,包含视频、源码、课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

m0_65482549的博客 1186

什么事情是做了python程序员之后才知道的?

什么事情是当了程序员才知道的呢?要说明这个,需要来了解一下我的工作经历。

monsterk1的博客 440
上一篇: KML、KMZ是什么?
下一篇: 破损shp文件修复
小白说遥感
博客等级 码龄10年 2033粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值