的Python如果条件满足,打印“...”

问题描述:

我是一个学生是相当东东学习编程语言,我决定拿起Python和我真的很喜欢它至今。 我可能有一个愚蠢的问题,但我似乎无法找到解决方案,我写了一个程序的一部分,用户输入3个值。如果即使其中一个值打破了陈述,它也应该打印出正确的答案。 这就是我..的Python如果条件满足,打印“...”

lengte = input("Wat is de lengte die u nodig hebt?") 
breedte = input("Wat is de breedte die u nodig hebt?") 
hoogte = input ("Wat is de hoogte die u nodig hebt?") 
a = 140 
aa = 100 
aaa = 110 
b = 220 
bb = 115 
bbb = 120 
if(hoogte in range(a) and breedte in range(aa) and hoogte in range(aaa)): 
    print "Type A" 
if(hoogte in range(a,b) or breedte in range(aa,bb) or hoogte in range(aaa,bbb)): 
    print "Type B" 

但是当我在170 hoogte和40,40 breedte给予和hoogte它仍然打印出“A型”,而在我的眼里它应该说是“B型”因为该值超过AA,但作为BB低..

任何帮助,将不胜感激,对不起,如果这似乎是一个“小白”的问题..但叶我是很新的这一点。

+2

'input'给出一个字符串,它只是纯文本。文本和数字是不同的,所以你必须通过包装来将hoogte转换为整数:'int(hoogte)'。只有这样你才能测试它是否在_numbers_范围内。编辑:忽略这一点,我没有意识到它是Python 2. –

+1

这是python2,所以'输入'给出一个int。 – Brian

+0

哦oke谢谢,生病试试看,马上让你知道:D –

的问题是,您所指定A,AA,AAA等为范围,但没有给出范围。因此,请使用==运算符来测试您的输入是否等于您指定的任何变量。

这对我有效。

lengte = input("Wat is de lengte die u nodig hebt?") 
breedte = input("Wat is de breedte die u nodig hebt?") 
hoogte = input ("Wat is de hoogte die u nodig hebt?") 
a = 140 
aa = 100 
aaa = 110 
b = 220 
bb = 115 
bbb = 120 

if(hoogte ==a and breedte == aa and hoogte == aaa): 
    print "Type A" 
if(hoogte ==a,b or breedte == aa,bb or hoogte == aaa,bbb): 
    print "Type B" 
+0

实际上这只会打印出“type B“,因为第一个条件需要'hoogte == a和hoogte == aaa',只要'a!= aaa'将总是为False,但第二个条件在语句中有逗号,这意味着它实际上正在检查一个元组对于事实,请尝试:'print(hoogte == a,b或breedte == aa,bb or hoogte == aaa,bbb)'具有多于0个元素的元组将始终被视为True。 –

可能是你输入错误的第一个条件。你输入它hoogte,但它可能是lengte。

if(lengte in range(a) and breedte in range(aa) and hoogte in range(aaa)): 
    print "Type A" 
if(lengte in range(a,b) or breedte in range(aa,bb) or hoogte in range(aaa,bbb)): 
    print "Type B" 

第一条件逻辑将只打印“A类”,如果所有条件都为真,而第二个将打印“类型B”,如果至少一个条件为真。