Nim*_*ust 1 python if-statement
当参数超过10时,我希望它给出'甜甜圈的数量:很多'和当参数数量<10时,'甜甜圈数量'.但它总是给我'甜甜圈数量:很多'
#!/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()
Run Code Online (Sandbox Code Playgroud)
sys.argv将只包含字符串,即使你提供整数作为参数,因此,例如,如果你叫这个为python donuts.py 4,那么sys.argv[1]会'4',你会尝试比较'4' < 10当你真正想4 < 10.
首先,尝试转换sys.argv[1]为int:
def main():
donuts(int(sys.argv[1]))
Run Code Online (Sandbox Code Playgroud)
如果没有提供参数或者它不是整数,您可能还想添加一些错误处理:
def main():
try:
donuts(int(sys.argv[1]))
except IndexError:
print 'Missing argument'
except ValueError:
print 'Invalid argument'
Run Code Online (Sandbox Code Playgroud)