我希望它在参数大于 10 时给出“ donut 数量:很多”,在参数计数<10 时给出“ donut 数量:”。但它总是给我“ donut 的数量:很多”
#!/usr/bin/python2.6 -tt
import sys
def donuts(count):
if count < 10:
x = str(count)
else:
x = 'many'
print 'Number of donuts: ' + x
def main():
donuts(sys.argv[1])
if __name__ == "__main__":
main()
请您参考如下方法:
sys.argv将只包含字符串,即使您提供整数作为参数,例如,如果您将其称为 python donuts.py 4 , 然后 sys.argv[1]将是 '4'你会尝试比较 '4' < 10当你真正想要 4 < 10 .
首先,尝试转换 sys.argv[1]到一个整数:
def main():
donuts(int(sys.argv[1]))
您可能还想添加一些错误处理,以防未提供参数或参数不是整数:
def main():
try:
donuts(int(sys.argv[1]))
except IndexError:
print 'Missing argument'
except ValueError:
print 'Invalid argument'
