-4

我正在尝试执行以下操作:

编写一个程序,读取三个数字,如果它们都相同,则打印“all the same”,如果它们都不同,则打印“all different”,否则打印“nother”。

您的程序应该通过 3 个输入语句请求 3 个整数。使用 if、elif 和 else 的组合来实现此问题所需的算法。

但是,每当我输入所有相同的整数时,我都会得到“都一样”和“都不一样”。如何使我的“两者都不正确”部分正确?

x=input('enter an integer:') 
y=input('enter an integer:') 
z=input('enter an integer:') 
if x==y and y==z: print('all the same') 
if not x==y and not y==z: print('all different') 
if x==y or y==z or z==x: print('neither')
4

2 回答 2

0

我的建议是:1)使用输入 2)使用 if、elif 和 else 子句

像这样的东西?

x = input("Enter the 1st integer")
y = input("Enter the 2nd integer")
z = input("Enter the 3rd integer")

if x == y and y == z:
    print("All the numbers are the same")

elif x!= y and y != z: # or use elif not and replace all != with ==
    print("None of the numbers are the same")

else:
    print("Neither")
于 2014-02-13T12:28:50.200 回答
0

这里的问题是您if对每种情况都使用。这意味着无论如何都要评估所有案例,并且多个案例可能是正确的。

例如,如果所有三个变量都是 1,则案例评估如下:

>>> x = 1
>>> y = 1
>>> z = 1
>>> if x == y and y == z: print("all the same")

all the same
>>> if not x == y and not y == z: print("all different")

>>> if x == y or y == z or z == x: print('neither')

neither
>>> 

您想使用elif(else if) 和else(请参阅流控制文档),因此您的条件变得互斥:

>>> x = 1
>>> y = 1
>>> z = 1
>>> if x == y and y == z: print("all the same")
elif not x == y and not y == z: print("all different")
else: print("neither")

all the same
>>> 
于 2013-09-19T20:04:37.147 回答