Skip to main content
 首页 » 编程设计

python之为什么以下 Python 中的简短脚本会忽略 "if"中的条件

2025年05月04日9rubylouvre

我希望它在参数大于 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'