您好,我在为学校写的一些代码遇到了一些问题而且它无法正常工作。它不会贯穿整个循环但所有代码看起来都适合我。有没有人有任何想法?
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" )
答案 0 :(得分:3)
您没有测试自己的想法。你的表达式如下:
{ User_Input_Length >= 7 and User_Input_Length == 1 }
在Python中,{}
包含set
或dict
(或理解其中之一)。因此,这是包含一个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")