Python相等检查

时间:2017-09-19 07:12:13

标签: python python-3.x

chars=input()
a=([int(x.strip()) for x in chars.split(',')])
b=len(a)
count=1
result=0
max=0
for i in range(b-1):
    for j in range(i,b):
        if a[i] == a[j]:
            print(a[i])
            count=count+1
    result=result+(a[i]*count)
    count=0

在上面的代码中,如果a[i]==a[j]为真,我检查条件,如果它们相等,我打印结果。

但是输出错误了。

给出输入

-9,3,0,20,-10,-11,11

以上打印

-9
3
0
20
-10
-11

输入中没有相同的值,为什么它们都被打印出来?

2 个答案:

答案 0 :(得分:3)

每次迭代总是在range(i, b)上进行一次迭代,其中i == j。毕竟,你在 i开始了你的内循环,所以当然 a[i] == a[j]将是真的,它们是相同的索引列表

i + 1处开始内循环:

for i in range(b-1):
    for j in range(i + 1, b):

答案 1 :(得分:0)

chars=input()
a=chars # input() Equivalent to eval(raw_input(prompt))
b=len(a)
count=1
result=0
max=0
for i in range(b-1):
    for j in range(i+1,b): # start from  i + 1
        if a[i] == a[j]:
            print(a[i])
            count=count+1
    result=result+(a[i]*count)
    count=0