5.3 单行实现 for 死循环如何写?¶
如果让你在不借助 while ,只使用 for 来写一个死循环?
你会写吗?
如果你还说简单,你可以自己试一下。
…
如果你尝试后,仍然写不出来,那我给出自己的做法。
for i in iter(int, 1):pass
是不是傻了?iter 还有这种用法?这为啥是个死循环?
关于这个问题,你如果看中文网站,可能找不到相关资料。
还好你可以通过 IDE 看py源码里的注释内容,介绍了很详细的使用方法。
原来iter有两种使用方法。
通常我们的认知是第一种,将一个列表转化为一个迭代器。
而第二种方法,他接收一个 callable对象,和一个sentinel 参数。第一个对象会一直运行,直到它返回 sentinel 值才结束。
那int
呢?
这又是一个知识点,int
是一个内建方法。通过看注释,可以看出它是有默认值0的。你可以在console
模式下输入 int()
看看是不是返回0。
由于int() 永远返回0,永远返回不了1,所以这个 for 循环会没有终点。一直运行下去。