2015-11-01 42 views
-1

我有一個包含數字的txt文件。如何在不重寫句子的情況下使用相同的句子打印多個變量?

每對夫婦的數字是「的情況下」(前21\n 3\n 45\n 7\n213將是一個情況下,457會是另一種情況,依此類推)。

有十種情況。我編寫了一個Python腳本,它可以讀取txt文件並將其中的字符串轉換爲整數,就像它們一樣。

現在我需要用第一個數字和第二個數字打印一個句子。我不想寫十個句子,有沒有辦法解決這個問題的代碼

file = open('problemCases.txt', 'r') 
fileLst = file.readlines() 

fileLst = [int(i) for i in fileLst] 


def main(): 
    lst = [] 
    probCase = (fileLst[0], fileLst[1]) 
    lst.append(probCase) 
    probCase = (fileLst[2], fileLst[3]) 
    lst.append(probCase) 
    probCase = (fileLst[4], fileLst[5]) 
    lst.append(probCase) 
    probCase = (fileLst[6], fileLst[7]) 
    lst.append(probCase) 
    probCase = (fileLst[8], fileLst[9]) 
    lst.append(probCase) 
    probCase = (fileLst[10], fileLst[11]) 
    lst.append(probCase) 
    probCase = (fileLst[12], fileLst[13]) 
    lst.append(probCase) 
    probCase = (fileLst[14], fileLst[15]) 
    lst.append(probCase) 
    probCase = (fileLst[16], fileLst[17]) 
    lst.append(probCase) 
    probCase = (fileLst[18], fileLst[19]) 
    lst.append(probCase) 

    # case 1 
    print(
     "If together they have ", 
     lst[0][0], 
     " shirts, and Dude1 has ", 
     lst[0][1], 
    " more shirts than Dude2.") 
    print("Dude1 has: ", (lst[0][0]-lst[0][1])/2+lst[0][1]) 
    print("Dude2 has: ", (lst[0][0]-lst[0][1])/2) 
+3

http://www.learnpython.org/en/Loops – TessellatingHeckler

回答

0

循環是偉大的

要建立你的名單,只是循環在你的輸入與2

lst = [] 
for i in xrange(0, len(fileLst), 2): 
    lst.append((fileLst[i], fileLst[i + 1])) 
步長

編輯:

正如凱文建議,我們也可以利用迭代器,以避免惱人的(這是蟒蛇畢竟)列表索引:

for i, j in enumerate(range(1, len(fileLst)+1)): 
    lst.append(fileLst[i], fileLst[j]) 

您可以使用類似的邏輯,爲你的打印

+1

要更Python:'爲I,J在枚舉(範圍(1,LEN(fileLst )+1)):lst.append(fileLst [i],fileLst [j])'。另外,'num'從哪裏來? –

+0

Good call,iterators FTW – tknickman

+0

太棒了!這有助於很多人相信或不相信。非常感謝修復,現在看起來更好,或者至少可以接受大聲笑 – arregoitiaj1

相關問題