【问题标题】:Calculating total value of changed coins in sys.argv module in Python [duplicate]在Python中计算sys.argv模块中更改硬币的总价值[重复]
【发布时间】:2021-11-19 13:58:29
【问题描述】:

我在使用 sys.argv 模块在 Python 中使用 Pycharm 从命令提示符下运行代码返回硬币的总价值时遇到问题。用户从命令行传递参数(硬币数量 - 9 个季度、7 个硬币、3 个镍币和 6 个便士)。应该以美元返回的总和,但我的代码不返回总和,而是重复参数。代码如下:

import sys
sum = 0
for i in range(1,5):
    sum = int((sys.argv[1]) * 2 + (sys.argv[2]) * 3 + (sys.argv[3]) * 4 + (sys.argv[4]) * 5)
print('Result: ', sum)

命令提示符的错误是:

(base) E:\>python egg.py 9 7 3 6
Result:  99999999999999999999999997777777777333336

【问题讨论】:

    标签: python python-3.x command-line-interface


    【解决方案1】:

    您的问题是 sys.argv 将所有参数存储为字符串。在python中乘以字符串时,它将字符串复制到指定的数字。实际的解决方案应该是这样的:

    sum = int(sys.argv[1]) * 2 + int(sys.argv[2]) * 3 + int(sys.argv[3]) * 4 + int(sys.argv[4]) * 5
    

    这会将变量转换为整数,然后再将它们相乘,这应该会产生正确的答案。

    【讨论】:

    • 成功了。双方竖起大拇指。非常感谢。
    • 确保接受答案以确认问题已解决并关闭问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 2014-08-01
    • 1970-01-01
    相关资源
    最近更新 更多