我是python新手,我一直在玩argv。我在这里编写了一个简单的程序,得到一个错误,上面写着:
TypeError: %d format: a number is required, not str
from sys import argv
file_name, num1, num2 = argv
int(argv[1])
int(argv[2])
def addfunc(num1, num2):
print "This function adds %d and %d" % (num1, num2)
return num1 + num2
addsum = addfunc(num1, num2)
print "The final sum of addfunc is: " + str(addsum)
当我运行filename.py 2 2时,argv是否将2 2放入字符串中?如果是,如何将它们转换成整数?
谢谢你的帮助。
运行
int(argv[1])
实际上并不会更改argv[1]
(或分配给它的num1
)的值。替换为:
有了这个:
它应该起作用。
int(..)、str(…)等函数不会修改传递给它们的值。相反,它们返回对不同类型数据的重新解释。
sys.argv
确实是一个字符串列表。使用int()
函数将字符串转换为数字,前提是字符串可以被转换。您需要分配结果,但是:
或者简单地使用:
您确实调用了
int()
,但忽略了返回值。将转换后的整数赋给这些变量:
只是:
不会影响原始项,因为
int
返回一个新的int
对象,而sys.argv
中的项不受此影响。修改原始列表可以执行以下操作:
相关问题 更多 >
编程相关推荐