Python的for循环[附带简单示例]

在Python中,for循环是一种迭代函数。如果你有一个序列对象,比如一个列表,你可以使用for循环来迭代列表中的项目。

for循环的功能与您在许多其他编程语言中看到的功能没有太大的区别。

在本文中,我们将详细探讨Python的for循环,并学习如何迭代不同的序列,包括列表、元组等等。此外,我们还将学习使用break和continue语句来控制循环的流程。

Python的for循环的基本语法。

在Python中,for循环的基本语法看起来类似于以下所示的样式。

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

让我更好地解释Python for循环的语法。

  • The first word of the statement starts with the keyword “for” which signifies the beginning of the for loop.
  • Then we have the iterator variable which iterates over the sequence and can be used within the loop to perform various functions
  • The next is the “in” keyword in Python which tells the iterator variable to loop for elements within the sequence
  • And finally, we have the sequence variable which can either be a list, a tuple, or any other kind of iterator.
  • The statements part of the loop is where you can play around with the iterator variable and perform various function

使用for循环,逐个打印字符串的字母。

Python的字符串是由字符组成的序列。如果在你的编程应用程序中,你需要逐个遍历字符串的字符,你可以在这里使用for循环。

这是你的情况会如何进行的。

word="anaconda"
for letter in word:
	print (letter)

输出:

a
n
a
c
o
n
d
a

这个循环能够运行的原因是因为Python将“字符串”视为字符序列,而不是整个字符串的观点。

使用for循环迭代遍历Python的列表或元组

列表和元组都是可迭代对象。让我们现在看看如何循环遍历这些对象中的元素。

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

输出:

Apple
Banana
Car
Dolphin

现在,让我们继续并开始对元组中的元素进行循环工作。

nums = (1, 2, 3, 4)

sum_nums = 0

for num in nums:
    sum_nums = sum_nums + num

print(f'Sum of numbers is {sum_nums}')

# Output
# Sum of numbers is 10

3. 嵌套Python的循环

当我们在一个for循环内部添加另一个for循环时,这就被称为嵌套的for循环。嵌套的for循环有多种应用。

请考虑上述的列表示例。for循环从列表中打印出单个单词。但是,如果我们希望打印出列表中每个单词的单个字符呢?

这就是嵌套的for循环比较合适的地方。第一个循环(父循环)将逐个遍历单词。第二个循环(子循环)将遍历每个单词的字符。

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        #This loop is fetching word from the list
        print ("The following lines will print each letters of "+word)
        for letter in word:
                #This loop is fetching letter for the word
                print (letter)
        print("") #This print is used to print a blank line

产出

python nested for loop example

4. 使用Python的循环,使用range()函数

Python range()是一个内置函数之一。当你想让for循环运行特定次数,或者需要指定要打印的对象范围时,range函数非常有效。考虑以下示例,我想打印数字1、2和3。

for x in range(3):
    print("Printing:", x)
	
# Output

# Printing: 0
# Printing: 1
# Printing: 2

range函数除了起始值和结束值之外,还可以接受另一个参数。这个参数是步长参数,用来告诉range函数在每次计数之间跳过多少个数字。

在以下的例子中,我使用了数字3作为步骤,你可以看到输出的数字是前一个数字加上3。

for n in range(1, 10, 3):
    print("Printing with step:", n)
	
# Output

# Printing with step: 1
# Printing with step: 4
# Printing with step: 7

5. 使用 for 循环的中断语句

当满足特定条件时,break语句用于提前退出for循环。它在特定条件满足时用于中断for循环。

假设我们有一个数字列表,想要检查某个数字是否存在。我们可以遍历数字列表,如果找到了数字,就退出循环,因为我们不需要继续遍历剩余的元素。

在这种情况下,我们将在我们的for循环中使用Python的if else条件语句。

nums = [1, 2, 3, 4, 5, 6]

n = 2

found = False
for num in nums:
    if n == num:
        found = True
        break

print(f'List contains {n}: {found}')

# Output
# List contains 2: True

6. 在for循环中使用的continue语句。

我们可以在for循环中使用continue语句,以跳过特定条件下的for循环体执行。

假设我们有一个数字列表,我们想要打印出正数的总和。我们可以使用continue语句来跳过负数的for循环。

nums = [1, 2, -3, 4, -5, 6]

sum_positives = 0

for num in nums:
    if num < 0:
        continue
    sum_positives += num

print(f'Sum of Positive Numbers: {sum_positives}')

6. 带有 else 块的 Python for 循环

我们可以在Python的for循环中使用else块。只有当for循环没有被break语句终止时,才会执行else块。

假设我们有一个函数,只有当所有的数字都是偶数时,才打印出数字的总和。

如果存在奇数,我们可以使用break语句来终止for循环。我们可以在else部分打印总和,这样只有在for循环正常执行时才会打印出来。

def print_sum_even_nums(even_nums):
    total = 0

    for x in even_nums:
        if x % 2 != 0:
            break

        total += x
    else:
        print("For loop executed normally")
        print(f'Sum of numbers {total}')


# this will print the sum
print_sum_even_nums([2, 4, 6, 8])

# this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])

# Output

# For loop executed normally
# Sum of numbers 20

结论是

在Python中,for循环与其他编程语言非常相似。我们可以在for循环中使用break和continue语句来改变执行的流程。然而,在Python中,我们还可以在for循环中使用可选的else块。

希望你从上面的教程中获得了一些有趣的想法。如果你有任何问题,请在下方评论中告诉我们。

发表回复 0

Your email address will not be published. Required fields are marked *


广告
将在 10 秒后关闭
bannerAds