所以,在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
}
这明显不符合Python的编程规范,而且据我所知Python甚至不允许在循环条件中进行赋值。
下面这段有效的代码修复了这个重复性问题,
while 1:
the_input = raw_input("what to print?\n")
if the_input == "quit":
break
print the_input
但这种方法也不太对。使用 while 1
意味着这个循环将永远运行;我在使用循环,但是给它一个虚假的条件,然后把真正的条件放在里面。
我是不是太挑剔了?有没有更好的方法可以做到这一点?也许有一些专门设计用于此的语言结构,我不知道吗?