我正在進行CodeEval挑戰並解決了以數字列表作爲輸入的問題,然後輸出每行數字的總和。這裏是我的代碼,使某些你明白我的意思:從字符串中刪除第一個字符
import sys
test_cases = open(sys.argv[1], 'r')
for test in test_cases:
if test:
num = int(test)
total =0
while num != 0:
total += num % 10
num /= 10
print total
test_cases.close()
我試圖改寫這個地方花費數作爲一個字符串,切片各爲0指數,然後將這些在一起(好奇,想看看什麼時間和內存的差別是 - 全新的編碼,並試圖找到多種方式做的事情爲好)
不過,我被困在得到這個執行並具備以下條件:
import sys
test_cases = open(sys.argv[1], 'r')
for test in test_cases:
sums = 0
while test:
sums = sums + int(str(test)[0])
test = test[1:]
print sums
test_cases.close()
我收到一個「ValueError:無效文字int()與基地10:「」」
樣品輸入是一個文本文件,它看起來像這樣:
3011
6890
8778
1844
42
8849
3847
8985
5048
7350
8121
5421
7026
4246
4439
6993
4761
3658
6049
1177
感謝您可以提供任何幫助!
而不是讓一個字符,並創造新的沒有第一個字符的字符串,你可以迭代字符串來處理char字符後的字符。它更有效率。我的意思是:'對於測試中的char:sum + = int(char)'而不是'while test:...'。 – GingerPlusPlus
謝謝,我也會試一試。 – Abraxas