在Python中编写更紧凑的if语句

时间:2014-11-09 07:22:44

标签: python if-statement

我一直在研究Python中的计算器。计算器没有任何问题,但我想让其中的部分代码更优化/缩短。

以下是我想要优化/缩短的代码:

   #In this code i check to see if they have entered a valid option in my calculator
   option = int(input("Option: "))
   if option != 0:
      if option != 1:
         if option != 2:
             if option != 3:
                if option != 4:
                   print("Please enter a valid choice")
                   #As you can see it needs to check 5 numbers

如果你能找到一种缩短上面代码的方法,那将非常感激!

5 个答案:

答案 0 :(得分:5)

如果您在列表中拥有所有选项,这将是最快捷,最简单的方法。

if option not in [1,2,3,4]:
   print("Not a valid choice")

答案 1 :(得分:4)

使用and代替多个if

if option != 0 and option != 1 and option != 2 and option != 3 and option != 4:

或者您可以同时使用notin运算符。

>>> if option not in xrange(0, 5):
        something....

答案 2 :(得分:4)

if option < 0 or option > 4:
    print("Please enter a valid choice")

是最简单的,如果您的选项编号发生变化,可以快速更改。

答案 3 :(得分:2)

这是另一种写作方式:

if not 0 <= option <= 4:
   print("Not a valid choice")

答案 4 :(得分:1)

value = int(input("Value?: "))

while value not in range(0,5):
    print "Yaba daba doo!"
    if value not in range(0,5):
        print "Scoobie doo!"
        break
else:
    print "What to doo!? :p"

<强>参考书目:
Yabba Dabba Doo! - YouTube
Scooby Doo Theme Song - YouTube