Python 2.7 Python基础-比较,缩进,如果。。。其他的

Python 2.7 Python基础-比较,缩进,如果。。。其他的,python-2.7,Python 2.7,代码应该接受命令行的参数,如果'a'大于5,则打印“错误输入”,如果不大于5,则打印“良好输入”。或者至少这是我想要它做的。有人能解释一下为什么这不能按预期工作吗?(附:这是我有史以来第一个python代码) 只需修复缩进,即可正常工作 import sys def main(): a = sys.argv[1] if a > 5: print "bad input" else: print "good input" if __

代码应该接受命令行的参数,如果'a'大于5,则打印“错误输入”,如果不大于5,则打印“良好输入”。或者至少这是我想要它做的。有人能解释一下为什么这不能按预期工作吗?(附:这是我有史以来第一个python代码)


只需修复缩进,即可正常工作

import sys

def main():
    a = sys.argv[1]
    if a > 5:
        print "bad input"
    else:
        print "good input"


if __name__ == '__main__':
    main()

从命令行获得的参数是字符串格式的,因此在执行任何数学运算之前,必须将其转换为整数,如这里的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()

sys.argv
的元素是字符串,将字符串与整数进行比较没有意义。您需要使用
int()
将用户提供的字符串转换为整数。它成功了。谢谢你,伙计。a=int(sys.argv[1])使其工作。不过还是谢谢你,真的吗?运行
python script.py 10
时没有打印
错误输入
?您使用的是哪个python版本?python27版本
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()