📜  Python For 循环

📅  最后修改于: 2022-05-13 01:55:28.021000             🧑  作者: Mango

Python For 循环

Python For 循环用于顺序遍历,即用于迭代字符串、元组、列表等可迭代对象。它属于确定迭代的范畴。确定的迭代意味着重复的次数是事先明确指定的。在Python中,没有 C 风格的 for 循环,即 for (i=0; i

注意:在Python中,for 循环仅实现基于集合的迭代。

句法:

for var in iterable:
    # statements

for循环流程图

Python For 循环

这里的可迭代对象是列表、元组等对象的集合。 for 循环中的缩进语句对迭代中的每个项目执行一次。变量 var 每次通过循环获取可迭代项的下一项的值。

示例:使用列表、字典、字符串的Python For 循环

Python3
# Python program to illustrate
# Iterating over a list
print("List Iteration")
l = ["geeks", "for", "geeks"]
for i in l:
    print(i)
 
# Iterating over a tuple (immutable)
print("\nTuple Iteration")
t = ("geeks", "for", "geeks")
for i in t:
    print(i)
 
# Iterating over a String
print("\nString Iteration")
s = "Geeks"
for i in s:
    print(i)
 
# Iterating over dictionary
print("\nDictionary Iteration")
d = dict()
d['xyz'] = 123
d['abc'] = 345
for i in d:
    print("% s % d" % (i, d[i]))


Python3
# Prints all letters except 'e' and 's'
for letter in 'geeksforgeeks':
    if letter == 'e' or letter == 's':
        continue
    print('Current Letter :', letter)


Python3
for letter in 'geeksforgeeks':
 
    # break the loop as soon it sees 'e'
    # or 's'
    if letter == 'e' or letter == 's':
        break
 
print('Current Letter :', letter)


Python3
# An empty loop
for letter in 'geeksforgeeks':
    pass
print('Last Letter :', letter)


Python3
# Python Program to
# show range() basics
 
# printing a number
for i in range(10):
    print(i, end=" ")
print()
 
# using range for iteration
l = [10, 20, 30, 40]
for i in range(len(l)):
    print(l[i], end=" ")
print()
 
# performing sum of first 10 numbers
sum = 0
for i in range(1, 10):
    sum = sum + i
print("Sum of first 10 numbers :", sum)


Python3
# Python program to demonstrate
# for-else loop
 
for i in range(1, 4):
    print(i)
else:  # Executed because no break in for
    print("No Break\n")
 
for i in range(1, 4):
    print(i)
    break
else:  # Not executed as there is a break
    print("No Break")


输出:

List Iteration
geeks
for
geeks

Tuple Iteration
geeks
for
geeks

String Iteration
G
e
e
k
s

Dictionary Iteration
xyz 123
abc 345

循环控制语句

循环控制语句改变其正常顺序的执行。当执行离开一个范围时,在该范围内创建的所有自动对象都将被销毁。 Python支持以下控制语句。

继续声明

Python continue 语句将控制返回到循环的开头。

示例:带有 Continue 语句的Python for 循环

Python3

# Prints all letters except 'e' and 's'
for letter in 'geeksforgeeks':
    if letter == 'e' or letter == 's':
        continue
    print('Current Letter :', letter)

输出:

Current Letter : g
Current Letter : k
Current Letter : f
Current Letter : o
Current Letter : r
Current Letter : g
Current Letter : k

中断语句

Python break 语句将控制带出循环。

示例:带有 Break 语句的Python For 循环

Python3

for letter in 'geeksforgeeks':
 
    # break the loop as soon it sees 'e'
    # or 's'
    if letter == 'e' or letter == 's':
        break
 
print('Current Letter :', letter)

输出:

Current Letter : e

通过声明

用于编写空循环的 pass 语句。 Pass 也用于空的控制语句、函数和类。

示例:带有 Pass 语句的Python For 循环

Python3

# An empty loop
for letter in 'geeksforgeeks':
    pass
print('Last Letter :', letter)

输出:

Last Letter : s 

范围()函数

Python range() 是一个内置函数,在用户需要执行特定次数的操作时使用。 Python (3.x) 中的 range() 只是Python (2.x) 中名为 xrange() 的函数的重命名版本。 range()函数用于生成数字序列。根据用户传递给函数的参数数量,用户可以决定该系列数字的开始和结束位置以及一个数字之间的差异有多大,next.range() 主要采用三个参数。

  • start:整数,从其开始返回整数序列
  • stop:整数,在此之前要返回整数序列。
    整数范围在 stop – 1 处结束。
  • step:整数值,确定序列中每个整数之间的增量

示例:带有范围函数的Python for 循环

Python3

# Python Program to
# show range() basics
 
# printing a number
for i in range(10):
    print(i, end=" ")
print()
 
# using range for iteration
l = [10, 20, 30, 40]
for i in range(len(l)):
    print(l[i], end=" ")
print()
 
# performing sum of first 10 numbers
sum = 0
for i in range(1, 10):
    sum = sum + i
print("Sum of first 10 numbers :", sum)
输出
0 1 2 3 4 5 6 7 8 9 
10 20 30 40 
Sum of first 10 numbers : 45

Python for 循环与 else

在大多数编程语言(C/C++、 Java等)中,else 语句的使用受到 if 条件语句的限制。但是Python也允许我们在 for 循环中使用 else 条件。

注意: for/while 之后的 else 块仅在循环未被 break 语句终止时执行

Python3

# Python program to demonstrate
# for-else loop
 
for i in range(1, 4):
    print(i)
else:  # Executed because no break in for
    print("No Break\n")
 
for i in range(1, 4):
    print(i)
    break
else:  # Not executed as there is a break
    print("No Break")

输出:

1
2
3
No Break

1

注意:有关更多信息,请参阅我们的Python for 循环与 else 教程。