【编程】Python For 循环语句

在计算机程序开发中,循环是一个被广泛使用的基本设计概念。它可以重复执行一个指令串,一直到指定的条件得到满足为止。for 循环由两部分构成:头部指定遍历条件,指令体部分每次遍历执行一次。头部条件一般是声明一个循环计数器或循环变量,可以表明哪一次遍历被执行。

语法

for item in sequence:
statements(s)

用列表的 for 循环

directions = ['东','西','南','北'] 
for pole in directions:
print(pole)

输出


西

上面的 directions 是一个序列,包括方位的一个列表。 for 循环将第一项(东)赋值给变量 pole,开始执行。之后,print 语句被执行,并且一直循环执行到序列的最后一项。

用元组的 for 循环

colors = ("红", "蓝", "绿") 
for color in colors:
print(color)

输出



绿

用字典的 for 循环

myDict = dict() 
myDict["High"] = 100
myDict["Medium"] = 50
myDict["Low"] = 0
for var in myDict:
print("%s %d" %(var, myDict[var]))

输出

High 100
Medium 50
Low 0

用字符串的 for 循环

str = ("Python") 
for c in str:
print(c)

输出

P
y
t
h
o
n

Python for 循环的 range() 函数

for 循环里面的 range 函数功能强大,可以方便的产生整数序列。它可以带一个、两个、或三个参数,依据下界、上界和步长,返回或产生一个整数列表。Python 3 的用户需要注意:range 和 xrange() 没有区分。

  • range(stop)
  • range(start,stop)
  • range(start,stop,step)

所有参数必须是整数。

Python 有一个参数的 range() 函数

语法

range(stop)

  • stop:生成数的上限,但不包括这个数

例子

for n in range(4):
print(n)

输出

0
1
2
3

可以考虑:

i = 0 
print i
i = 1
print i
i = 2
print i
i = 3
print i

同样获得 0, 1, 2, 3 。

Python 有两个参数的 range() 函数

语法

range(start,stop)

  • start: 序列的开始数
  • stop: 生成数的上限,但不包括这个数

例子

for n in range(5,10):
print(n)

输出

5
6
7
8
9

函数 range(start,stop) 按照 start, start + 1, …, stop – 1,依次产生数列,不包括最后的 stop 值。

Python 有三个参数的 range() 函数

语法

range(start,stop,step)

  • start: 序列的开始数
  • stop: 生成数的上限,但不包括这个数
  • step: 序列的数差值

例子

for n in range(0,10,3):
print(n)

输出

0
3
6
9

start 的值是 0 ,end 的值是 10 ,步长是 3,也就是循环从 0 开始,每次递增 3,不超过 10。

Python Range() 函数可以定义空序列,比如range(-10) 或 range(10, 4)。



例子

for i in range(-10):
print('Python range()')

上面的代码不会被执行。

同样,可以利用 Python 的 range() 重复执行代码:

例子

for i in range(2 ** 2):
print('Python range()!!')

输出

Python range()!!
Python range()!!
Python range()!!
Python range()!!

递减的 for 循环

如果想让 for 循环递减,需要设定负数步长。

例子

for i in range(5,0,-1):
print (i)

输出

5
4
3
2
1

在 ‘for’ 循环内访问索引

Python 内置了 enumerate 函数,允许开发者在进行循环设计时,可以同时除了每项的索引和值。通过将索引和列表项封装成双单元的元组,屏蔽掉表面的复杂性,提供更简单的遍历性。

例子

months = ["January", "February", "March", "April", "May", "June", "July","August", "Spetember", "October", "November", "December"]
for idx, mName in enumerate(months, start=1):
print("Months {}: {}".format(idx, mName))

输出

Months 1: January
Months 2: February
Months 3: March
Months 4: April
Months 5: May
Months 6: June
Months 7: July
Months 8: August
Months 9: Spetember
Months 10: October
Months 11: November
Months 12: December

注意,上面的 start=1 是可选项,如果没有,默认从 0 开始。

Python 的 enumerate 函数完善了可遍历性,封装的每一项包括索引和每项的值。

这个函数表达的意思:

  • 处理列表的每一项
  • 也可以处理每一项的索引

同时遍历两个列表

下面的例子,同时处理两个列表的循环。

例子

grades = ["High", "Medium", "Low"]
values = [0.75, 0.50, 0.25]
for i, grade in enumerate(grades):
value = values[i]
print("{}% {}".format(value * 100, grade))

输出

75.0% High
50.0% Medium
25.0% Low

在 for 循环使用 Python 的 zip() 方法

Python 的 zip() 函数可以将多个列表合并到一个元组里面,通过这个元组可以同时遍历每一个列表。

grades = ["High", "Medium", "Low"] 
values = [0.75, 0.50, 0.25]
for grade, value in zip(grades, values):
print("{}% {}".format(value * 100, grade))

输出

75.0% High
50.0% Medium
25.0% Low

嵌套 for 循环

语法

for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)

例子

for outer in range(1,5):
for nested in range(1,5):
res = outer*nested
print (res, end=' ')
print()

输出

1 2 3 4 2 4 6 8 3 6 9 12 48 12 16

这个 Python 程序的第一个计数器在外循环,执行第一个遍历,第一个遍历控制内部嵌套的循环。内循环执行完毕,则返回到外循环,依次进行这个双重循环过程。 print() 函数以 end=’ ‘ 结尾,替换默认的换行,所以结果会在一行内显示。

for 循环使用 else 语句

和其他流行的开发语言类似,Python 也允许开发者使用 else 条件。

例子

lst = [1,2,3,4,8]
for num in lst:
if num >5:
print ("列表包含的数字大于5")
break
else:
print("列表包含的数字不大于5");

输出

列表包含的数字不大于5
列表包含的数字不大于5
列表包含的数字不大于5
列表包含的数字不大于5
列表包含的数字大于5

上面的例子,是一个整数列表。每一次的 for 循环检查是大于5,还是不大于5。

Python流控制语句

 Python 数据结构



此条目发表在人工智能, 服务器, 程序开发分类目录,贴了, , , , , , , , , , 标签。将固定链接加入收藏夹。