Python 中的 For 循环和数据类型

For loop in Python and data types

我想弄清楚 for 循环中的变量会发生什么。

i=2
for i in "1234":
    print i*2
    break

我能理解这个循环是如何执行的,因为我是一个整数,而且它是在一个字符串中搜索的。这是如何工作的?

永远不要将循环变量初始化为现有变量,break 只会导致第一次迭代发生,因此您可能应该摆脱它。否则,循环将毫无意义。

i = 2

for j in "1234":
    print j * 2

输出为:

11
22
33
44
>>> i=2
>>> print(type(i))
<class 'int'>
>>> for i in '1234':  # i is reassigned
...   print(type(i))
...   print(i*2)
... 
<class 'str'>
11
<class 'str'>
22
<class 'str'>
33
<class 'str'>
44

i 在 for 循环开始时被重新赋值,不再是一个整数。

特别是,Python 不是 "searching the string" 你的 int。由于您的 for 循环,它 遍历 字符串。 i 然后是迭代变量,当你遍历一个字符串时,它会逐个字符地进行。类似地,Python 重载了字符串的乘法运算,所以一些字符串 s 乘以一些 int n 结果是 s 重复了 n 次。