2015-05-05 216 views
0

我需要幫助解決我的任務問題,我不要求任何人完成整個任務的編碼。我只想爲我的當前代碼無法正常工作提供一些意見。我是Python的新手,進入我的課程大約兩個月。我當前的代碼如下:需要顯示括號和逗號刪除列表

import random 
values =[0, 0, 0, 0, 0, 0, 0] 
COLS = 7 

def main(): 
    for c in range(COLS): 
     values[c] = random.randint(19, 81)   
    outfile = open('nums.txt', 'w') 
    outfile.write(str(values)) 
    outfile.close 


    infile=open('nums.txt', 'r') 
    numbers = infile.readlines() 
    index = 0 

    while index>len(numbers): 
     numbers[index]=int(numbers[index]) 
     index += 1 

    print(numbers) 

main() 

當代碼應該輸出從列表中的數字,只打印[](空括號)。我需要它在一行中顯示沒有括號或逗號的7個數字的列表。

這是任務,如果有幫助: 在主要功能:

創建一個名爲NUMS空列表。
使用循環(您自己選擇的類型)將七個整數(每個整數在20到80之間)添加到nums。重複是可以的。
使用第二個循環將一個行中的七個整數全部顯示在一個空格中。這第二個循環必須是一個while循環。
顯示列表中最大的整數。
顯示列表中的最小整數。
調用一個名爲process的無用函數,該函數將nums製作的切片作爲參數。這個片段應該缺少num的第一個和最後一個元素。

在處理功能:

顯示切片中的元素的所有上由一個單一的空間分離和分類在最高到最低的順序一行。
您必須在進程中使用for循環。這些元素不應該在[]內以逗號分隔顯示。

Example Output 
79 30 39 33 41 43 53 
The highest number is 79 
The lowest number is 30 
The middle 5 sorted high to low: 
43 41 39 33 30 

正如我之前所說,我沒有要求任何人爲我完成任務,我只想幫助修復我的代碼到這一點。當我遇到路障時,我已經通過這個網站多次閱讀,但無法找出這個問題。

+0

爲什麼文件操作,請問?我沒有看到任何讀寫文件的要求。 – skyline75489

+0

「需要顯示帶括號和逗號的列表」['str.join()'](https://docs.python.org/3.4/library/stdtypes.html#str.join) –

+0

文件操作是粗心的錯誤。我上週與這項任務混淆了。 – Kazrasuya

回答

0

您的循環條件是錯誤的:

while index>len(numbers): 

應該是:

while index<len(numbers): 

打印的清單,你可以使用str.join()函數:

print ' '.join(numbers) 
+0

我其實原來的文字是「while index Kazrasuya

0

第一,我不知道你爲什麼需要將數據寫入文件,但是你做錯了。你犯了一個粗心的錯誤,沒有正確關閉文件。您應該使用:

outfile.close() 

接下來,你正在寫的陣列的蟒蛇EXPR到文件,這是一種錯誤的,太。我認爲這是更好地做到這一點:

for v in values: 
    outfile.write(str(v) + '\n') 
outfile.close() 

而且在讀取文件,就像yurib建議,你應該使用:

while index<len(numbers): 
    numbers[index]=int(numbers[index]) 
    index += 1 

再說一遍,我不知道爲什麼文件操作。但現在它終於起作用了

+0

文件操作是上週與此作業混淆的粗心錯誤。我最終編寫了這個程序,它完全運作。這是新的計劃: – Kazrasuya