代码应接受来自命令行的争论,如果'a'大于5则打印“bad input”,否则打印“good input”。或至少这是我想要它做的。有人可以解释为什么这不能按预期工作吗? (P.S - 这是我的第一个python代码)
import sys
def main():
print sys.argv[1]
##print len(sys.argv[1])
a=sys.argv[1]
if a > 5:
print "bad input"
else:
print "good input"
if __name__ == '__main__':
main()
答案 0 :(得分:0)
只需要修复你的缩进,它就可以正常工作。
import sys
def main():
a = sys.argv[1]
if a > 5:
print "bad input"
else:
print "good input"
if __name__ == '__main__':
main()
答案 1 :(得分:0)
从命令行获得的参数是 string 格式,因此在进行任何数学运算之前,必须将其转换为整数,如此处 a = int(sys.argv [ 1])并且不要用间距开始下一行,这是不需要的。解决方案如下:
import sys
def main():
print(sys.argv[1])
a = int(sys.argv[1])
if a > 5:
print ("bad input")
else:
print ("good input")
if __name__ == "__main__":
main()