1. 首页
  2. 技术文章

11、Python for循环

在本文中,您将学习使用for循环的不同变体对元素序列进行迭代。

什么是Python中的for循环?

Python中的for循环用于迭代序列(listtuplestring)或其他可迭代对象。在序列上进行迭代称为遍历。

for循环的语法

for val in sequence:
    Body of for

在这里,val是在每次迭代中获取序列内项目值的变量。

循环继续直到我们到达序列中的最后一项。使用缩进将for循环的主体与其余代码分开。

for循环流程图

Python编程中for循环的流程图
Python中for循环的流程图

示例:Python for循环

# Program to find the sum of all numbers stored in a list

# List of numbers
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]

# variable to store the sum
sum = 0

# iterate over the list
for val in numbers:
    sum = sum+val

print("The sum is", sum)

运行该程序时,输出为:

The sum is 48

range()函数

我们可以使用range()函数生成数字序列。range(10)会产生0到9之间的数字(10个数字)。

我们还可以将开始,停止和步长定义为range(start, stop,step_size)。如果未提供,则step_size默认为1。

range某种意义上说,该对象是“惰性”的,因为在创建对象时不会生成它“包含”的每个数字。然而,这不是一个迭代器,因为它支持inlen__getitem__操作。

此函数不会将所有值存储在内存中;这将是低效的。因此它会记住开始,停止,步长并在旅途中生成下一个数字。

要强制此函数输出所有项目,我们可以使用函数list()

以下示例将阐明这一点。

print(range(10))

print(list(range(10)))

print(list(range(2, 8)))

print(list(range(2, 20, 3)))

输出

range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]

我们可以range()for循环中使用该函数来迭代数字序列。可以将它与len()函数结合使用索引来遍历序列。这是一个例子。

# Program to iterate through a list using indexing

genre = ['pop', 'rock', 'jazz']

# iterate over the list using index
for i in range(len(genre)):
    print("I like", genre[i])

输出

I like pop
I like rock
​I like jazz

与其他循环

for环可以有一个可选else块为好。else如果用于for循环的序列中的项目用尽,则会执行该零件。

break关键字可以用来阻止一个for循环。在这种情况下,其他部分将被忽略。

因此,如果没有中断发生,则for循环的else部分将运行。

这是一个例子来说明这一点。

digits = [0, 1, 5]

for i in digits:
    print(i)
else:
    print("No items left.")

运行该程序时,输出为:

0
1
5
No items left.

在此,for循环将打印列表中的项目,直到循环用尽。当for循环用完时,它将执行代码块else并打印没有剩余的项目。

仅当未执行关键字时,此for...else语句可与break关键字一起使用以运行elsebreak。让我们举个例子:

# program to display student's marks from record
student_name = 'Soyuj'

marks = {'James': 90, 'Jules': 55, 'Arthur': 77}

for student in marks:
    if student == student_name:
        print(marks[student])
        break
else:
    print('No entry with that name found.')

输出

No entry with that name found.
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ1841324605,本站将立刻清除。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(2条)

联系我们

服务热线:130-0886-1890

QR code