Python等式ch

2024-04-27 05:07:10 发布

您现在位置:Python中文网/ 问答频道 /正文

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

输入中没有相等的值,为什么都要打印


Tags: 代码inforinputlenifcountrange
2条回答
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

每次迭代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):

相关问题 更多 >