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?
我锄有人可以为我澄清一下.谢谢 !
这True,False是一个元组,相当于(True, False).该元组的长度为2,因此代码块会运行两次.
至于它是以布尔值还是整数运行,这取决于你如何使用i.bool是intPython 的子类,因此它通常用作布尔值,但您可以使用它进行数学运算,因为它基本上只是整数的另一种表示形式.
在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并终止.