如何基于用户输入迭代循环?

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)
1个回答

7
假设NumDates是一个整数,你需要使用range函数:
for dates in range(NumDates):
    ...

在Python 2.x中,您可以使用xrange。这样不会创建一个中间列表,因此很多人更喜欢使用它。在Python 3中,xrange 被重命名为range 并删除了原来返回列表的range函数 -- 当列表很小的时候,我通常只是使用range以保持兼容性,但是也有工具(2to3)可以为您处理这些细节,所以无论哪种方式都不是什么大问题。
另外,按照当前写法,实际上没有必要使用dates = dates + 1 (可以更好地写成dates += 1当需要时使用)。

@user1620716: dates 应该改为 date,因为它只代表 NumDates 范围内的一个日期。根据 [PEP 8 -- Python 代码风格指南,应该将其写成 num_dates,否则看起来像是一个类的名称。 - martineau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接