导入 sys 和 sys.argv 在 VS Code 终端中没有响应 [duplicate]

Import sys and sys.argv Not Responsive in VS Code Terminal [duplicate]

提问人:wannabeunstuck 提问时间:8/5/2023 最后编辑:wannabeunstuck 更新时间:8/7/2023 访问量:93

问:

编辑(07/08/2023)

我是编码新手,错误地使用了终端/代码,不明白我做错了什么。现在解决了,吸取了教训。

如果您发现自己处于类似的位置,请使用以下命令调用代码:Python 文件名 .py 1 4 5 67(在第一行中输入数字/参数以及调用命令),然后它将起作用。

谢谢大家。

原帖 -

我在通过终端与脚本交互时遇到了问题。

我的代码如下:

import sys

total = 1
del(sys.argv[0])
for argument in sys.argv:
    try:
        number = float(argument)
        total *= number
    except Exception as e:
        print(e)
        print("Only numbers can be provided")
        sys.exit(1)

print(total)

我应该能够在终端中输入数字,然后使用这些数字乘以总数,然后打印乘以的值。但是,当我在终端中输入单个整数时,它只打印整数,当我输入多个数字时,它会打印这些数字并且不进行乘法。

它在命令提示符下也不起作用。

我无法让 sys 相关元素在其他代码中工作,我用谷歌搜索了一个又一个错误,但我找不到解决方案。有什么想法吗?

我希望终端中输入的数字将总数变量中的数字相乘,然后在终端中打印,然后在终端中输入更多数字以将更新的变量总数相乘。

我应该能够在没有逗号的情况下输入多个数字,但它不起作用。

python visual-studio-code sys windows-11

评论

3赞 Brian61354270 8/5/2023
您没有传递任何 CLI 参数。您运行脚本一次,参数为零 (),然后只需在提示符 () 中键入数字。尝试。> python3 __.py> 1 7 6 8python __.py 1 7 8 9
2赞 Brian61354270 8/5/2023
Sitenote:为什么要命名你的脚本?__.py
1赞 Brian61354270 8/5/2023
这回答了你的问题吗?如何读取和处理(解析)命令行参数?那里的答案还显示了如何传递 CLI 参数。
2赞 Code-Apprentice 8/5/2023
而不是 ,只需使用切片:。del(sys.argv[0])for argument in sys.argv[1:]:
2赞 DallogFheir 8/5/2023
@Code-Apprentice 这是因为 Replit 在执行程序后会运行 Python shell。OP实际上是在Powershell终端中输入数字并收到Powershell错误。

答:

0赞 Code-Apprentice 8/5/2023 #1

看起来你正在 Powershell 中将数字作为单独的命令键入。这意味着 Powershell 会直接解释它们,并且不会运行 python 代码。键入时的错误消息证实了这一点。这是 Powershell 错误,而不是 python 错误。1 7 6 8

相反,您需要将它们与正在运行的程序放在同一行上,以便将它们发送到您的 python 脚本:

C:\> python __.py 1 2 3 4 5

我建议您阅读有关命令行参数如何工作的更多信息,因为您似乎错误地使用了它们。