爬虫121 发表于 2023-7-26 02:06:14

神奇的*号

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

   
myfunc("小甲鱼","不二如是")
有{}个参数 2
第二个参数是:不二如是

前几天太忙今天又来提问题了{:5_109:}

Mike_python小 发表于 2023-7-26 02:06:29

为什么使用 * 号可以代表传递多个参数?

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

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

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

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

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

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

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

isdkz 发表于 2023-7-26 02:06:49

在Python中,星号(*)被称为可变参数,这是一种非常实用的语法特性。

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

例如,在你的函数myfunc中:

def myfunc(*args):
    print("有{}个参数".format(len(args)))
    print("第二个参数是:{}".format(args))

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


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

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

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

所以,*args提供了一种灵活的方式来处理函数的参数,你可以传入任意数量的参数,并在函数体内部以元组的形式来处理这些参数。

歌者文明清理员 发表于 2023-7-26 08:26:34

*号就是代表多个参数的意思,所以*号可以用多个参数
跟1+1等于2一样

陶远航 发表于 2023-7-26 08:52:35

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

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

我记住了

歌者文明清理员 发表于 2023-7-26 08:52:50

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

我记住了

{:10_323:}

陶远航 发表于 2023-7-26 08:53:42

歌者文明清理员 发表于 2023-7-26 08:52


为了防止你再用GPT,已获取你在鱼C的账号密码

liuhongrun2022 发表于 2023-7-26 09:01:37

陶远航 发表于 2023-7-26 08:53
为了防止你再用GPT,已获取你在鱼C的账号密码

?

歌者文明清理员 发表于 2023-7-26 09:01:42

陶远航 发表于 2023-7-26 08:53
为了防止你再用GPT,已获取你在鱼C的账号密码

我正好忘了,我密码是啥来着

陶远航 发表于 2023-7-26 09:02:22

歌者文明清理员 发表于 2023-7-26 09:01
我正好忘了,我密码是啥来着

666不告诉你

liuhongrun2022 发表于 2023-7-26 09:03:12

本帖最后由 liuhongrun2022 于 2023-7-26 09:07 编辑

*号传递的参数是一个元组,像你的函数就可以传递两个参数是因为被包含在元组里了

歌者文明清理员 发表于 2023-7-26 09:04:06

陶远航 发表于 2023-7-26 09:02
666不告诉你

谁信啊

陶远航 发表于 2023-7-26 09:09:01

歌者文明清理员 发表于 2023-7-26 09:04
谁信啊

那你这样,把你的密码告诉我,你的用户名我绝对不知道

歌者文明清理员 发表于 2023-7-26 09:13:08

陶远航 发表于 2023-7-26 09:09
那你这样,把你的密码告诉我,你的用户名我绝对不知道

我的密码是这个
1145141919810

陶远航 发表于 2023-7-26 09:13:32

歌者文明清理员 发表于 2023-7-26 09:13
我的密码是这个
2t8.cn/AbguJ

我试试{:10_256:}

歌者文明清理员 发表于 2023-7-26 09:14:25

陶远航 发表于 2023-7-26 09:13
我试试

点那个链接,我放在40note.ms5 上了

歌者文明清理员 发表于 2023-7-26 09:17:05

陶远航 发表于 2023-7-26 09:13
我试试

陶远航 发表于 2023-7-26 09:17:06

歌者文明清理员 发表于 2023-7-26 09:14
点那个链接,我放在40note.ms5 上了

404网页不存在

歌者文明清理员 发表于 2023-7-26 09:17:41

陶远航 发表于 2023-7-26 09:17
404网页不存在

https://uto.mn/lMbt1

陶远航 发表于 2023-7-26 09:19:24

歌者文明清理员 发表于 2023-7-26 09:17
https://uto.mn/lMbt1

无法访问
页: [1] 2
查看完整版本: 神奇的*号