2012-08-23 72 views
4

我是新來的,但經常在這裏尋求幫助。無論如何,我正在嘗試使用tkSimpleDialog.askinteger()來詢問用戶需要讀入程序的文件數量。我想根據用戶在for循環中輸入的整數讀取文件。我會爲文件名索引文件名f [1]至f [n]。任何投入將不勝感激!如何基於用戶的輸入迭代循環?

請在下面查看的什麼,我想要知道的一個想法:

def callback2(): 
    NumDates = tkSimpleDialog.askinteger("NDates", "How many dates are there?") 
    for dates in NumDates: 
     filename[dates] = tkFileDialog.askopenfilename() 
     dates = dates + 1 
     filenameDates.append(filename) 

回答

7

假設NumDates是一個整數,你要尋找的範圍功能:

for dates in range(NumDates): 
    ... 

在蟒蛇2.x,您可以改用xrange。這不會創建一箇中間列表,所以很多人都喜歡它。在Python 3中,xrange被重命名爲range,並且返回列表的前一個範圍函數被刪除 - 當列表很小時,我通常只使用range來實現兼容性,但有工具(2to3)爲您處理這些細節同樣,所以這兩個方面都不是什麼大不了的。

一邊

而且,寫,實在是沒有必要的dates = dates + 1(這是更好地寫爲dates += 1必要時)。

+0

謝謝!我想這正是我正在尋找的! – user1620716

+0

@ user1620716 - 沒問題。總是樂於提供幫助。 – mgilson

+0

@ user1620716:'dates'應該只是'date',因爲它代表'NumDates'範圍中的一個,根據[PEP 8 - [Python代碼樣式指南](http://www.python .org/dev/peps/pep-0008 /)真的應該寫成'num_dates',否則它看起來像一個類的名字。 – martineau