Skip to main content
 首页 » 编程设计

python之变量在 if 语句中被覆盖

2025年05月04日14haluo1

编写程序从用户那里读取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}")