我對編程/ Python很新,所以我的代碼可能不是最有效的。這個問題涉及歐拉項目的問題8。它的內容如下:ValueError循環非常大的連續字符串時(項目歐拉概率8)
查找1000位數字中具有最大產品的十三個相鄰位數。這個產品的價值是什麼?
我已經找到了下面的代碼的答案,但代碼給我的問題取決於我如何定義1000位數字,被稱爲a
。 當a
被寫在一行它工作正常,但是當我用幾行三重引號(通過輸入分隔)執行它,它給了ValueError
S IN第二for
循環達到的a
「行」結束時, 。
有人可以向我解釋爲什麼會發生這種情況,以及如何解決它?提前致謝!
更確切地說,我得到的錯誤是:
ValueError: invalid literal for int() with base 10: '\n'
見下面的代碼:
a = """7316717653... etc"""
product = 1
save = 0
list1 = []
list2 = []
for ab in range(0, len(a)-13):
start = ab
stop = ab+13
check = a[start:stop]
list1.append(check)
for a in list1:
for b in a:
product = product*int(b)
list2.append(product)
if product > save:
save = product
print('This is currently the largest product: ', product)
product = 1
else:
product = 1
print(max(list2))
看來錯誤在於缺少的代碼中,您選擇不添加。請把整個代碼放在一起,以便我們能夠理解你想要做的事情。 – pistache
您生成'list1'的方式會使一些行分隔符('\ n')以'a'結尾,因此以'b'結尾。您可能希望跳過行分隔符的字符,或確保它們不會在'list1'中結束。 – pistache
Hi @pistache。我現在也包含了第一個for for循環代碼。我在下面的答案中嘗試了連接方法,它的作用就像一個魅力。我仍然不確定行分隔符的添加位置。這是循環還是使用'「」「1000位數字」「」''在多行代碼中聲明'a'的方法。我沒有意識到這一點。 現在我意識到這一點,我非常不幸地把1000位數字叫做'a'和我的'for'循環變量'a' ...... – gaatjeniksaan