假设我有以下简单代码:
useText = True
for i in range(20):
if useText:
print("The square is "+ str(i**2))
else:
print(i**2)
我使用变量 useText 来控制打印方 block 的方式。它在运行循环时不会改变,所以每次循环运行时检查它对我来说似乎效率低下。有没有办法在循环之前只检查 useText 一次,然后始终根据该结果打印出来?
这个问题经常出现在我身上。在这种简单的情况下当然没关系,但我可以想象这会导致更复杂情况下的性能下降。
请您参考如下方法:
useText 在这里完成的唯一区别是格式化字符串。所以把它移出循环。
fs = '{}'
if useText:
fs = "The square is {}"
for i in range(20):
print(fs.format(i**2))
(这假设 useText 在循环期间不会改变!在多线程程序中这可能不是真的。)
