“Python自动化”;至于&引用;在;声明

“Python自动化”;至于&引用;在;声明,python,for-loop,Python,For Loop,我学习python已经有一段时间了,我真的不能对。。在语句中。我对他们的意思略知一二,但不完全确定 所以我的朋友给了我这个代码 print("My name is") for i in range (5): print("Jimmy Five Time" + str(i)) 根据我的理解(因为循环将循环特定次数) 范围函数是数字行的范围,在这种情况下是0-5 我需要的帮助是解释for和in语句的作用。我想完全了解我在做什么。我在谷歌上搜索了一些例子等等,但我似乎真的不太懂。好的,范围(

我学习python已经有一段时间了,我真的不能对。。在语句中。我对他们的意思略知一二,但不完全确定

所以我的朋友给了我这个代码

print("My name is")
for i in range (5):
    print("Jimmy Five Time" + str(i))
根据我的理解(因为循环将循环特定次数) 范围函数是数字行的范围,在这种情况下是0-5

我需要的帮助是解释
for
in
语句的作用。我想完全了解我在做什么。我在谷歌上搜索了一些例子等等,但我似乎真的不太懂。好的,范围(5)从0到4创建了一个列表:

>>> range(5)
[0, 1, 2, 3, 4]
因此,“对于使用“范围(5)”创建的列表中的“每个值”,将该值替换为“i”。相当于写出每一行:

print("Jimmy Five Time" + str(0))
print("Jimmy Five Time" + str(1))
print("Jimmy Five Time" + str(2))
print("Jimmy Five Time" + str(3))
print("Jimmy Five Time" + str(4))

语句中
之后的任何内容都是实现迭代协议的对象,这意味着它具有返回迭代器对象的iter方法。这是编写python for循环的另一种方法(当然不是这样做的,但仍然是等效的)


希望这能让您更好地了解python for循环的情况。我同意,在习惯了C风格的循环之后,它们可能会令人困惑,因为很多细节都被掩盖了。

for..in
是一种迭代iterable的方法

这意味着:iterable是可以迭代的任何东西,比如列表:

[1, 2, 3, 4]
range()。现在,对这样一个列表进行迭代意味着获取一个项目并使用它做一些事情,然后获取下一个项目并使用它做一些事情,依此类推,直到列表中没有更多的项目

[1,2,3,4]中i的
表示它需要
1
,将其分配给
i
,然后执行此语句后面的缩进代码;然后它获取
2
,将其分配给
i
,并再次执行代码;等等等等

for i in [1, 2, 3, 4]:
    print(i)
首先打印
1
,然后打印
2
,然后打印
3
,然后打印
4
,然后列表用尽,迭代停止


Python中还有其他类型的iterables可以用同样的方法进行迭代。

您试过运行这些代码吗?修改它以查看更改内容时会发生什么?阅读文档/教程?您的理解似乎相当准确(注意,在Python中,0-5不包括5个),因此您仍然想知道什么还不清楚。我不确定我是否表达得足够好,我已经用这些语句工作了大约2周&我需要有人解释它们的“意思”而不是它们的“工作方式”我知道他们做什么,但我不明白…什么?!不,我肯定你表达得不好。已经有(这么多!)介绍性教程了,我们在这里不是要在没有明确问题陈述的情况下再给你写一篇。此外,英语不是我的第一语言,所以我为我糟糕的语法道歉。Python也有大量的文档;看到了,非常感谢@Chris Montanaro,这正是我想要的解释,现在我“理解”了“for”和“IN”中的“does”,IN是整数“Value”,并且“for”每个值加上了替换“I”的值。i=cat in=1-5,所以它将cat添加到所有5个数字中。@HaleyAlisson不,这不是accurate@HaleyAlisson:
range
不会在Python 3中创建列表,您也可以使用非整数值:
用于['a','B','XYZ']中的值:
。仅供参考:堆栈溢出不是“论坛”,也不是“线程”。你真的不应该在这里发布答案来“与人交谈”。如果你想对某人的答案发表评论,就给他们写一条评论。@deceze我不是这么做的吗?除了我回答自己的问题。我以为你回答自己的问题是为了表明你已经完成了,你得到了你想要的帮助,取消“post”也很好“我以为你回答自己的问题是为了表明你已经完成了”-不,请看(实际上,在帮助中心呆一段时间通常是个好主意)最好说
iterator=iter(我的对象)
作为
。\uu iter\uu()
不是获得迭代器的唯一方法。
iterator = my_object.__iter__()
while True:
    try:
        something = iterator.next()
    except StopIteration:
        # StopIteration exception is raised after last element
        break

    # loop code
    print something
iterator = my_object.__iter__()
while True:
    try:
        something = iterator.next()
    except StopIteration:
        # StopIteration exception is raised after last element
        break

    # loop code
    print something