我对python还是很陌生,目前停留在这个问题上。基本上,我会列出一个数字并将它们彼此加起来,从零开始。该代码将每一行写到一个新数组中。如果在这个新数组中找到两个相同的数字,它将停止并返回该数字。如果找不到重复的值,则原始值列表会重复。
这是我到目前为止所拥有的:
file = open("list.txt", "r")
array1 = file.readlines()
total = 0
finalValue = 0
for i in range(0,len(array1)):
array1[i] = int(array1[i])
array2 = []
i = 0
counter = 0
while finalValue == 0:
total += array1[i]
array2.append(total)
print(array2)
for c in range(0,len(array2)):
if (total == array2[c]):
counter += 1
if counter == 2:
finalValue = total
break
if (i == len(array1)-1):
i = 0
else:
i += 1
counter = 0
print(finalValue)
我认为该计数器正在工作,但是它从未找到重复的对象,即它从未命中第二个计数器。
答案 0 :(得分:0)
有很多方法可以使您的代码在Python中更简单,但是首先,您的问题是条件total == array2[c]
将数组的元素与您的total
进行比较,而不是相互比较。
例如,如果您的数组为[1,3,3]
,则将第二个3
与4
而不是3
进行比较。
如果我理解您的代码,我想您想将total == array2[c]
更改为array1[i] == array2[c]
-但这只是一个立即解决方案,您可以使用python的列表技术来简化此代码。