我想输入一个命令行变量,然后将其相乘,但是当我打印变量时,它会重复我希望乘以它的数字。
例如:
#!/usr/bin/env python3
import sys
st_run_time_1 = sys.argv[1]*60
print ("Station 1 : %s" % st_run_time_1)
当我运行脚本时,我得到以下内容: python3 test.py 2
Station 1 : 222222222222222222222222222222222222222222222222222222222222
答案 0 :(得分:8)
sys.argv[x]
是字符串。将字符串乘以数字casue重复字符串。
>>> '2' * 5 # str * int
'22222'
>>> int('2') * 5 # int * int
10
要获得乘法数字,请先使用int
或float
将sys.argv[1]
转换为数字对象,....
import sys
st_run_time_1 = int(sys.argv[1]) * 60 # <---
print ("Station 1 : %s" % st_run_time_1)
答案 1 :(得分:1)
您将字符串与整数相乘,这总是意味着重复。 Python不会自动将字符串强制转换为整数,sys.argv
始终是字符串列表。
如果您想要整数运算,请先将sys.argv[1]
字符串转换为整数:
st_run_time_1 = int(sys.argv[1]) * 60