我熟悉C,并开始在python中进行实验.我的问题是关于sys.argv命令.我已经读过它用于命令行解释器,但是当我尝试执行一个简单的程序时,我没有得到我期望的结果.
码:
import sys
a = sys.argv[1]
b = sys.argv[2]
print a, b
print a+b
Run Code Online (Sandbox Code Playgroud)
输入:
python mySum.py 100 200
Run Code Online (Sandbox Code Playgroud)
输出:
100 200
100200
Run Code Online (Sandbox Code Playgroud)
当我添加两个参数时,它们被连接而不是两个值被加在一起.似乎这些值被视为字符串.
我怎样才能将它们解释为数字?
Wes*_*ley 33
您可以使用int()将参数转换为整数
import sys
a = int(sys.argv[1]) b = int(sys.argv[2])
print a, b
print a+b
Run Code Online (Sandbox Code Playgroud)
输入: python mySum.py 100 200
输出:
100 200
300
Run Code Online (Sandbox Code Playgroud)
Jan*_*cke 12
您还应该验证用户输入:
import sys
def is_intstring(s):
try:
int(s)
return True
except ValueError:
return False
for arg in sys.argv[1:]:
if not is_intstring(arg):
sys.exit("All arguments must be integers. Exit.")
numbers = [int(arg) for arg in sys.argv[1:]]
sum = sum(numbers)
print "The sum of arguments is %s" % sum
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68288 次 |
| 最近记录: |