鱼C论坛

 找回密码
 立即注册
查看: 2290|回复: 26

[已解决]神奇的*号

[复制链接]
发表于 2023-7-26 02:06:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问为啥*号加上去,就可以代表传递多个参数啊,这个*号的作用是什么,一个萝卜一个坑,这样才不会乱啊
下面的代码是一个坑多个萝卜:
def myfunc(*args):
    print("有{}个参数",format(len(args)))
    print("第二个参数是:{}".format(args[1]))

    
myfunc("小甲鱼","不二如是")
有{}个参数 2
第二个参数是:不二如是
前几天太忙今天又来提问题了
最佳答案
2023-7-26 14:29:50


简单理解这里的 * 号是在定义函数时使用,表示这个函数此时可以接收无限个参数

你不用深究为什么加上 * 就能传入无限个,这是编程语言的使用和规则,是需要我们牢记滴

Python 有 Python 的语法规则,Java 有 Java 的语法规则,我们学习编程最基础的就是要遵顼这些语法规则滴

另外,你产生这种疑问可能主要原因是因为不太清楚它能应用的地方导致的

其实仔细想想,我们可能很早就接触类似可以接收无限参数的函数了

没错就是 print 函数,它呢就是来者不拒,你投入几个参数给你打印几个~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-26 02:06:29 | 显示全部楼层
为什么使用 * 号可以代表传递多个参数?

在Python中,* 号有两种不同的用法:解包和可变参数。在这个例子中,*args使用了可变参数的功能。

当在函数定义中的参数前加上 * 号时,它允许函数接受任意数量的位置参数,并将它们存储在一个元组中。在函数调用时,可以传递任意数量的参数给 *args,它会将这些参数打包成一个元组传递给函数内部。

在你提供的代码中,myfunc(*args) 中的 *args 表示可以传递任意数量的参数,这些参数会被打包成一个元组并赋值给 args。因此,当你调用 myfunc("小甲鱼","不二如是") 时,参数 "小甲鱼" 和 "不二如是" 被打包成一个元组 ('小甲鱼', '不二如是') 并传递给 args

在函数体内,可以通过 args 来访问这个元组,并进行相应的操作,比如输出元组的长度和访问指定位置的元素。

所以,使用 * 号在函数定义中的参数前可以实现传递多个参数并打包成元组的功能。

希望能解答到您的问题!如果还有其他疑问,请随时提出。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 02:06:49 | 显示全部楼层
在Python中,星号(*)被称为可变参数,这是一种非常实用的语法特性。

*args表示的就是可变参数,它允许你在函数调用时传入任意数量的参数。*args会将这些参数保存在一个元组中,你可以在函数体内对这个元组进行操作。

例如,在你的函数myfunc中:
def myfunc(*args):
    print("有{}个参数".format(len(args)))
    print("第二个参数是:{}".format(args[1]))

myfunc("小甲鱼","不二如是")

在调用myfunc("小甲鱼","不二如是")时,*args会将"小甲鱼"和"不二如是"捆绑在一起,形成一个元组args。这样,当你在函数体内调用args时,你实际上是在访问这个元组。

因此,当你打印"有{}个参数".format(len(args))时,实际上是计算args这个元组的长度,也就是传入的参数数量。

而当你打印"第二个参数是:{}".format(args[1])时,实际上是访问元组args的第二个元素,也就是"不二如是"。

所以,*args提供了一种灵活的方式来处理函数的参数,你可以传入任意数量的参数,并在函数体内部以元组的形式来处理这些参数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 08:26:34 | 显示全部楼层
*号就是代表多个参数的意思,所以*号可以用多个参数
跟1+1等于2一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 08:52:35 | 显示全部楼层
歌者文明清理员 发表于 2023-7-26 08:26
*号就是代表多个参数的意思,所以*号可以用多个参数
跟1+1等于2一样

抵制ChatGPT回答问题,7月25号开始,你宁可垫底也不用gpt

我记住了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 08:52:50 | 显示全部楼层
陶远航 发表于 2023-7-26 08:52
抵制ChatGPT回答问题,7月25号开始,你宁可垫底也不用gpt

我记住了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 08:53:42 | 显示全部楼层

为了防止你再用GPT,已获取你在鱼C的账号密码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:01:37 | 显示全部楼层
陶远航 发表于 2023-7-26 08:53
为了防止你再用GPT,已获取你在鱼C的账号密码

?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:01:42 | 显示全部楼层
陶远航 发表于 2023-7-26 08:53
为了防止你再用GPT,已获取你在鱼C的账号密码

我正好忘了,我密码是啥来着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:02:22 | 显示全部楼层
歌者文明清理员 发表于 2023-7-26 09:01
我正好忘了,我密码是啥来着

666不告诉你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:03:12 | 显示全部楼层
本帖最后由 liuhongrun2022 于 2023-7-26 09:07 编辑

*号传递的参数是一个元组,像你的函数就可以传递两个参数是因为被包含在元组里了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:04:06 | 显示全部楼层

谁信啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:09:01 | 显示全部楼层

那你这样,把你的密码告诉我,你的用户名我绝对不知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:13:08 | 显示全部楼层
陶远航 发表于 2023-7-26 09:09
那你这样,把你的密码告诉我,你的用户名我绝对不知道


我的密码是这个
1145141919810
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:13:32 | 显示全部楼层
歌者文明清理员 发表于 2023-7-26 09:13
我的密码是这个
2t8.cn/AbguJ

我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:14:25 | 显示全部楼层

点那个链接,我放在40note.ms5 上了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:17:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:17:06 From FishC Mobile | 显示全部楼层
歌者文明清理员 发表于 2023-7-26 09:14
点那个链接,我放在40note.ms5 上了

404网页不存在
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:17:41 | 显示全部楼层

点评

https://uto.mn/NC5v1  发表于 2023-7-26 09:18
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-26 09:19:24 From FishC Mobile | 显示全部楼层
歌者文明清理员 发表于 2023-7-26 09:17
https://uto.mn/lMbt1

无法访问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 07:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表