鱼C论坛

 找回密码
 立即注册
查看: 1579|回复: 1

[已解决]argv是个函数吗,有什么例子能帮助理解

[复制链接]
发表于 2023-6-13 14:32:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 pionrrt 于 2023-6-13 14:35 编辑

在一个习题里看到了这个script, filename = argv,感觉是给script, filename分别赋值argv函数的两个返回值,不知道对不对。(但是题里并没有定义这个函数)

百度上说“ARGv是字符串指针的数组,argc,argv 用命令行编译程序时有用”  看完这个解释还是不能理解。

不知道还有什么例子能帮助理解。

(这是一个让改错的习题)
截图未命名.jpg
最佳答案
2023-6-13 14:34:45
argv  不是一个函数,而是一个在命令行环境中传递给程序的参数列表。这通常用在C或者Python这样的编程语境中。在Python中,你可以通过内建的  sys  模块访问  argv 。

argv  的全称是 "argument vector",也就是参数向量。当你从命令行执行一个程序时,你可能会传入一些参数,这些参数就被存储在  argv  中。

举个例子,如果你在命令行中运行下面的命令:
python myfile.py arg1 arg2

这个命令告诉Python解释器运行一个叫  myfile.py  的文件,并传入两个参数 "arg1" 和 "arg2"。Python 解释器会把这些参数存储在  argv  中,这样你的程序就可以访问它们。

在Python中, argv  是一个列表,它的第一个元素( argv[0] )是程序的名字,剩下的元素是从命令行传入的参数。

所以,当你在一个Python程序中看到这样的代码:
from sys import argv
script, filename = argv

这是从  sys  模块导入  argv ,然后将其解包到变量  script  和  filename  中。 script  将包含脚本的名称,而  filename  将包含从命令行传入的第一个参数。

这种  script, filename = argv  的使用方式在  argv  列表只有两个元素时是有效的。如果  argv  包含更多或者更少的元素,这行代码会引发一个值错误(ValueError),因为它尝试把不正确数量的值赋给变量。

如果你想处理更多的参数或者参数的数量不确定,你可以直接处理  argv  列表,如:
from sys import argv
script = argv[0]
arguments = argv[1:]  # 将所有其他参数保存在一个列表中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-13 14:34:45 | 显示全部楼层    本楼为最佳答案   
argv  不是一个函数,而是一个在命令行环境中传递给程序的参数列表。这通常用在C或者Python这样的编程语境中。在Python中,你可以通过内建的  sys  模块访问  argv 。

argv  的全称是 "argument vector",也就是参数向量。当你从命令行执行一个程序时,你可能会传入一些参数,这些参数就被存储在  argv  中。

举个例子,如果你在命令行中运行下面的命令:
python myfile.py arg1 arg2

这个命令告诉Python解释器运行一个叫  myfile.py  的文件,并传入两个参数 "arg1" 和 "arg2"。Python 解释器会把这些参数存储在  argv  中,这样你的程序就可以访问它们。

在Python中, argv  是一个列表,它的第一个元素( argv[0] )是程序的名字,剩下的元素是从命令行传入的参数。

所以,当你在一个Python程序中看到这样的代码:
from sys import argv
script, filename = argv

这是从  sys  模块导入  argv ,然后将其解包到变量  script  和  filename  中。 script  将包含脚本的名称,而  filename  将包含从命令行传入的第一个参数。

这种  script, filename = argv  的使用方式在  argv  列表只有两个元素时是有效的。如果  argv  包含更多或者更少的元素,这行代码会引发一个值错误(ValueError),因为它尝试把不正确数量的值赋给变量。

如果你想处理更多的参数或者参数的数量不确定,你可以直接处理  argv  列表,如:
from sys import argv
script = argv[0]
arguments = argv[1:]  # 将所有其他参数保存在一个列表中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 19:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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