我需要制作一个简单的python脚本,但由于我主要使用PHP / C ++,因此我发现很难在没有简单for循环的情况下管理自己。 假设我有一个代码:
for(int i = 0; i < some_string_length; i++)
{
//do something...
}
正如你所看到的,它只是我字符串中的字母数量的多少。当然,我可以在while循环中执行此操作,但这有一个问题。我必须在循环外部创建一个变量,使其成为全局变量或在循环中创建它,但是这个变量的值不能在循环的参数中使用。
错:
while(i < some_string_length)
{
i = something; //declaring i for the first time
i++;
}
正如你所看到的那样根本没有意义。那我怎么能这样做呢?
答案 0 :(得分:8)
其他语言的构造
for (int i = start; i < stop; i += step) { … }
直接转换为range
上的Python for循环:
for i in range(start, stop, step):
…
默认情况下,step
为1,因此您无需为i++
指定它。 start
默认为零,因此如果您从i = 0
开始,也可以将其保留为:
for i in range(stop): # the same as `for (int i = 0; i < stop; i++)`
…
所以,如果你想在一个字符串的长度上迭代i
,你可以这样做:
for i in range(len(my_string)):
…
通常,您可能希望访问该字符串的字符,因此您可以直接迭代字符:
for char in my_string:
…
或者,如果您确实需要索引,则可以使用enumerate
来获取两者:
for i, char in enumerate(my_string):
…
答案 1 :(得分:5)
for i, item in enumerate(some_string):
# i is the index, item is the actual element
我认为你很少会感到惊讶,你实际上很少需要i
。你最好学习如何使用Python习语,而不是强迫自己用Python编写PHP / C ++代码。
答案 2 :(得分:1)
尝试:
for i in range(0,some_string_length):
# do something...
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您有string s
:
s = "some string"
你可以这样做:
for i in range(len(s)):
print i