Argv - String into Integer

被刻印的时光 ゝ 提交于 2019-11-30 19:18:34

sys.argv is indeed a list of strings. Use the int() function to turn a string to a number, provided the string can be converted.

You need to assign the result, however:

num1 = int(argv[1])
num2 = int(argv[2])

or simply use:

num1, num2 = int(num1), int(num2)

You did call int() but ignored the return value.

Assign the converted integers to those variables:

num1 = int(argv[1])  #assign the return int to num1
num2 = int(argv[2])

Doing just:

int(argv[1])
int(argv[2])

won't affect the original items as int returns a new int object, the items inside sys.argv are not affected by that.

Yo modify the original list you can do this:

argv[1:] = [int(x) for x in argv[1:]]
file_name, num1, num2 = argv  #now num1 and num2 are going to be integers

Running int(argv[1]) doesn't actually change the value of argv[1] (or of num1, to which it is assigned).

Replace this:

int(argv[1])
int(argv[2])

With this:

num1 = int(num1)
num2 = int(num2)

and it should work.

The int(..), str(...) etc functions do not modify the values passed to them. Instead, they return a reinterpretation of the data as a different type.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!