"对于我是真的,错误的:"Python,需要解释

Mat*_*tis -2 python loops for-loop

我希望我可以在这里要求解释,而不仅仅是解决问题.

所以我知道这是如何工作的:

for i in range(10):
 //blocks of code
Run Code Online (Sandbox Code Playgroud)

它从i = 0一直到i = 9,因此代码块执行10次.我的问题是这是做什么的:

for i in True,False:
 //block of code
Run Code Online (Sandbox Code Playgroud)

这只运行一次吗?还是两次?或者代码块是否使用i作为True/False或1/0?

我锄有人可以为我澄清一下.谢谢 !

Ale*_*ton 6

True,False是一个元组,相当于(True, False).该元组的长度为2,因此代码块会运行两次.

至于它是以布尔值还是整数运行,这取决于你如何使用i.boolintPython 的子类,因此它通常用作布尔值,但您可以使用它进行数学运算,因为它基本上只是整数的另一种表示形式.


ste*_*eha 5

在Python中,for关键字实际上是一个"foreach".它迭代你给它的对象.

range()返回一个列表(在Python 2.x中),因此for i in range(3):迭代列表中的整数.在Python 3.x中range()返回一个迭代器,因此for i in range(3):迭代迭代器产生的整数.无论哪种方式,i都是从范围设置为整数,一次一个.

Python有元组,通常是这样编写的: (True, False)

这是一个有两个元素的元组.第一个是True,第二个是False.

但是在Python中,你实际上并不需要括号来表示元组; 用逗号分隔的一系列值也是一个元组.因此,这是一个等同于第一个元组的元组:True, False

在Python中创建一个长度为1的元组是很棘手的.你仍然需要逗号,所以它看起来很奇怪.这是一个长度为1的元组:0,

这看起来很奇怪,但它是合法的:一个只能运行一次的循环,因为我们将长度为1的元组传递给for:

for i in 0,:
    print i
Run Code Online (Sandbox Code Playgroud)

这将打印0并终止.