Python 哪一个更好:“iter”或“while”用于循环?

Python 哪一个更好:“iter”或“while”用于循环?,python,python-3.x,loops,while-loop,Python,Python 3.x,Loops,While Loop,我知道有两种方法可以持续输入到特定条件 一是: 另一个是iter: 正如Nosklo所说,更好的是: for i in iter(input,'a'): pass 我只是想知道哪一个更好。好吧,如果你打算使用for版本,至少不要把它贬成丑陋: for a in iter(input, 'a'): .... 好吧,如果你要使用for版本,至少不要把它贬成丑陋: for a in iter(input, 'a'): .... 我不知道官方会更喜欢哪一个,但我个人更喜欢第

我知道有两种方法可以持续输入到特定条件

一是:

另一个是iter:

正如Nosklo所说,更好的是:

for i in iter(input,'a'):
    pass

我只是想知道哪一个更好。

好吧,如果你打算使用for版本,至少不要把它贬成丑陋:

for a in iter(input, 'a'):
    ....

好吧,如果你要使用for版本,至少不要把它贬成丑陋:

for a in iter(input, 'a'):
    ....

我不知道官方会更喜欢哪一个,但我个人更喜欢第一个,因为我可以阅读它,它的作用很明显。我觉得一般来说,它也更像蟒蛇。显式比隐式好

我不喜欢重复输入。如果是我,我可能会这样写:

while True:
    a = input()
    if a=='a':
        break
或者这个:

finished = False
while not finished:
    a = input()
    if a=='a':
        finished = True

虽然这些版本不如基于iter的版本简洁,但更容易阅读,特别是如果你不经常使用iter的话。它们也更灵活,因为在a之外添加其他“特殊”输入命令变得很容易,如果你将来需要这样做的话。

我不知道官方会更喜欢哪一个,但我个人更喜欢第一个,因为我可以阅读它,而且它的作用很明显。我觉得一般来说,它也更像蟒蛇。显式比隐式好

我不喜欢重复输入。如果是我,我可能会这样写:

while True:
    a = input()
    if a=='a':
        break
或者这个:

finished = False
while not finished:
    a = input()
    if a=='a':
        finished = True

虽然这些版本不如基于iter的版本简洁,但更容易阅读,特别是如果你不经常使用iter的话。它们也更灵活,因为如果您将来需要添加其他“特殊”输入命令,那么除了a之外,添加其他“特殊”输入命令也变得很容易。

对于a中的。。。即使是在。。。如果您或其他人希望以后翻译成其他语言,则首选第一种。如果您或其他人希望以后翻译成其他语言,则首选第一种