if循环python的多个条件

时间:2016-10-15 19:10:58

标签: python

您好,我在为学校写的一些代码遇到了一些问题而且它无法正常工作。它不会贯穿整个循环但所有代码看起来都适合我。有没有人有任何想法?

   User_Input = input ( "Please enter a message that is no longer than 7 characters." )
    User_Input_Length = len ( User_Input )  
    if     {  User_Input_Length >= 7 
         and  User_Input_Length == 1
    }:
    print ( "Your message is odd." )
    elif   {  User_Input_Length >= 7
         and  User_Input_Length == 3
    }:
    print ( "Your message is odd." )
    elif   {  User_Input_Legnth >= 7
         and  User_Input_Length == 5
    }:
    print ( "Your message is odd." )
    elif   {  User_Input_Length >= 7
         and  User_Input_Length == 7
    }:
    print ( "Your message is odd" )
    elif   {  User_Input_Length >= 7
         and  User_Input_Length == 2
    }:
    print ( "Your message is even" )
    elif   {  User_Input_Length >= 7
         and  User_Input_Length == 4
    }:
    print ( "Your message is even" )
    elif   {  User_Input_Length >= 7   
         and  User_Input_Length == 6
    }:
    print ( "Your string is even" )
    else:
    print ( "The string is too long." )
    print ( "Goodbye" )

3 个答案:

答案 0 :(得分:3)

您没有测试自己的想法。你的表达式如下:

{ User_Input_Length >= 7 and User_Input_Length == 1 }

在Python中,{}包含setdict(或理解其中之一)。因此,这是包含一个bool值的集合。每truth value testing,包含成员的任何集合都被视为True,因此您的第一个测试将是唯一的分支。

其次,内部(未经检查)条件测试User_Input_Length同时为7或更高其他一些值;只有7人才能成真。

答案 1 :(得分:1)

这些大括号用于定义集合,非空集合总是计算为true,因此您的代码将始终评估第一个if。

Python不要求if语句使用括号(或大括号)。

答案 2 :(得分:0)

你必须使用括号来表示if条件的参数,并注意代码块的位置:与使用;作为分隔符的C不同,python知道你的块只是结束了因为它会跳到下一行。

if(1 < 2) and (2 < 3):
    print("true")
elif(1 > 2):
    print("false")