所以,在 Python 中(尽管我认为它可以应用于许多语言),我发现自己经常遇到这样的事情:
the_input = raw_input("what to print?\n")
while the_input != "quit":
print the_input
the_input = raw_input("what to print?\n")
也许我太挑剔了,但我不喜欢这条线the_input = raw_input("what to print?\n")
必须重复。它降低了可维护性和组织性。但我没有看到任何避免重复代码而不进一步恶化问题的解决方法。在某些语言中,我可以这样写:
while ((the_input=raw_input("what to print?\n")) != "quit") {
print the_input
}
这绝对不是Pythonic,Python 甚至不允许在循环条件 AFAIK 内进行赋值。
这个有效的代码修复了冗余,
while 1:
the_input = raw_input("what to print?\n")
if the_input == "quit":
break
print the_input
但也感觉不太对。这while 1
意味着这个循环将永远运行;我正在使用一个循环,但给它一个假条件并将真实的条件放入其中。
是我太挑剔了吗?有一个更好的方法吗?也许有一些我不知道的为此设计的语言结构?