编写程序从用户那里读取3个整数,并计算整数之和。但是,如果其中一个值与另一个值相同,则不应计入总和。
Enter a: 3
Enter b: 3
Enter c: 3
The sum is 3
正确的答案应该是 0,但是我从我的第一个 if 语句中意识到 a 已经被重新分配给 0,并且从那时起 a!=c for 0!=3,我被困在这个测试用例上
a = int(input("Enter a: "))
b = int(input("Enter b: "))
c = int(input("Enter c: "))
if a == b:
a = 0
b = 0
elif a == c:
a = 0
c = 0
elif b == c:
b = 0
c = 0
print("The sum is", a + b + c)
请您参考如下方法:
你可以使用 collections.Counter并且只计算出现一次的值:
count = Counter((a, b, c))
s = sum(value for value, quantity in count.items() if quantity == 1)
print(f"The sum is {s}")
您的实现的问题是 if a == b 其他两个 elif 将永远不会执行。您需要将 elif 更改为 if。
然后您将再次测试 a == c(在将 a 设置为 0 之后)。要使该方法起作用,您必须改用临时变量:
tmp_a, tmp_b, tmp_c = a, b, c
if a == b:
tmp_a, tmp_b = 0, 0
if a == c:
tmp_a, tmp_c = 0, 0
if b == c:
tmp_b, tmp_c = 0, 0
print(f"The sum is {tmp_a + tmp_b + tmp_c}")
