所以我一直试图让我的脑袋里面的python循环,但我不明白他们是如何工作的。我正在尝试创建一个for循环,它将遍历数字列表并将它们全部添加在一起,但我真的在语法的工作方式上苦苦挣扎。无法理解的循环Python
从我了解的语法是:
for w in words:
print w, len(w)
有人能解释一下这迭代变量作品(W),也许用数字列表的例子吗?
我试过这个,但我认为我有错。
所以我一直试图让我的脑袋里面的python循环,但我不明白他们是如何工作的。我正在尝试创建一个for循环,它将遍历数字列表并将它们全部添加在一起,但我真的在语法的工作方式上苦苦挣扎。无法理解的循环Python
从我了解的语法是:
for w in words:
print w, len(w)
有人能解释一下这迭代变量作品(W),也许用数字列表的例子吗?
我试过这个,但我认为我有错。
For
环路参加一个事情每个项目,分配一个值给一个变量像w
或number
,做一个手术,然后移动到下一个项目,直到他们用完。
让我们的例子第一个工作日...
numberstring = raw_input("> ") # expect a string like "1 2.0 4 100"
addition = 0
numberlist = numberstring.split(" ") # convert the chars into a list of "words"
for number in numberlist:
addition = addition + float(number)
print addition
不coverting使用.split()
列表,你的循环将通过串中的每个字母移动,将其解释为一个字母而不是数字。并且,如果不将这些单词转换为数字(使用float()
),它甚至可以将字符串加回(除非在这种情况下,初始化为零)。
列表混淆的一个来源:变量的名称并不重要。如果你说for letter in myvar:
它不强制程序选择字母。它只需要下一个项目并将该值分配给变量letter
。在Python中,这个项目可以是单词,数字等的列表,或者如果给定一个字符串,它将以字符作为项目。
另一种方式来想象它是你有一个购物篮装满物品,和收银员通过他们一次一个循环:
for eachitem in mybasket:
# add item to total
# go to next item.
如果你把他们一袋苹果,问他们通过它循环,他们会拿出每个苹果,但如果你给他们一个篮子,他们会把袋子作为一个项目...
你有什么更像是一个foreach
循环。
也许是这样的:
input = raw_input("> ") #separate with spaces
sum = 0
numbers = [int(n) for n in input.split()]
for number in numbers:
sum = sum + number
print sum
有两种类型的for循环。
你是用什么大概是:
sum = 0
for i in range(0,10):
sum += 1
#prints 9
你质疑的语法设置符号。它表示“对于每个成员词汇w”,打印w和w的长度。在python 2.7及更低版本中,print
可以用作一个声明,其中包含多个要打印的内容,例如,print w, len(w)
可打印单词w及其长度。这不会像python 3或更高版本中所述的那样工作。
只有一种for循环。 '对于范围(0,10)'中的我循环遍历可迭代的'范围(0,10)'。 – abarnert
For循环工作的对象是iterables
(对象是能够一次返回一个物体)。字符串是可迭代
>>> for c in "this is iterable":
... print c + " ",
...
t h i s i s i t e r a b l e
然而一些则不是。
>>> for x in 3:
... print "this is not"
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
遍历一系列号码,蟒蛇给你一个很好发电机称为功能......你猜对了,这range
在Python 2.x中返回一个列表
>>> for x in range(3):
... print x
...
0
1
2
那么,一个小的控制台会话应该清除它。简而言之,Python会遍历iterable
对象。现在这是什么意思。这意味着像字符串,如列表或数组。
>>> numbers = [1, 2, 3, 4, 5]
>>> for n in numbers: print n
1
2
3
4
5
基本上,它会循环任何可以循环的东西。下面是另一个例子:
>>> my_happy_string = "cheese"
>>> for c in my_happy_string: print c
c
h
e
e
s
e
这里是一个单词列表的例子:
>>> list_of_words = ["hello", "cat", "world", "mouse"]
>>> for word in list_of_words: print word
hello
cat
world
mouse
基本上,蟒蛇的需求对象,它可以遍历做一个for循环,所以如果你想要一个for循环将开始在0
和10
结束了,你会做这样的事情:
>>> for i in range(0, 10): print i
0
1
2
3
4
5
6
7
8
9
让我们来看看什么range
FUNC回报:
>>> range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
基本上,它只是返回一个列表。所以,简单来说,你需要一个列表。从技术上讲,字符串是粘在一起的字符列表。
希望有所帮助。
其他语言称之为'foreach'循环,如果有帮助的话。 – roippi
在你的第二个例子中,'numbers'将是一个字符串。如果你遍历一个字符串,每个项目(在你的例子中''编号')将是该字符串中的单个字符。看起来你想要类似的东西遍历数字列表 - 看看['str.split()'](http://docs.python.org/2/library/stdtypes.html#str.split )的方式来分割字符串(例如空白)。然后你可以迭代它给你的列表,明确地将每个数字转换为一个“int”。 – thegrinner
你的for循环没问题,这是你的raw_inout不能按照你的想法工作。尝试用'numbers =(1,4,5,8)'替换该行,然后您会看到您期望的内容。 – Kevin