`for` 循环
让我们学习 `for` 循环和 `Foreach` 循环的语法和实现。
什么是循环?
循环是一组用于重复执行代码块的指令。我们首先来讨论 for 循环。
for 循环
在编程中,我们经常需要重复执行某段代码而无需多次编写相同的代码块。for 循环是最简单且最常用的循环类型,但它的使用方式多种多样。
使用 range() 方法
在 Python 中,for 循环可以通过 range() 函数遍历一个数字序列。range() 函数返回指定范围内的数字列表。
Python 中 for 循环的语法如下:
1for i in range(n): 2 要重复执行的语句
让我们看一个简单的例子:使用 for 循环打印一系列数字(1, 2, 3, 4, 5)。
1for n in range(1, 6): 2 print(n)
这里发生了什么?我们从左到右阅读这个例子。对于 1 到 5 范围内的每一个数字,执行循环体中的语句。在本例中就是 print(n)。
1for n in range(6): 2 print(n)
注意:
range()函数是基于 0 的,这意味着如果没有指定起始值,计数将从 0 开始,而不是从 1 开始。
使用列表
除了数字范围,你也可以使用 Python 列表中的元素来通过 for 循环迭代执行语句。下面我们用列表来实现同样的数字打印示例。
1for n in [1, 2, 3, 4, 5, 6]: 2 print(n)
列表的优点在于,它可以包含字符、字符串和浮点数等不同类型的数据,而 range() 函数仅支持数字。
1## 使用字符列表 2for n in ['a', 'b', 'c']: 3 print('字符:', n) 4 5for n in list('abc'): 6 print('字符:', n) 7 8## 使用字符串列表 9for n in ['abc', 'def']: 10 print('字符串:', n) 11 12## 使用浮点数列表 13for n in [1.4, 2.3, 4.5]: 14 print('浮点数:', n)
ForEach 和 ForEach-Object
PowerShell 中 for 循环的替代写法是 ForEach 语句。与 Python 类似,我们可以定义要遍历的一组项目,并在循环体内访问它们。不过,在 PowerShell 中,使用双点操作符 (..) 来定义范围,例如 1..5 会返回从 1 到 5 的整数,-3..3 会返回从 -3 到 3 的所有整数(包括 0)。
PowerShell 中 ForEach 循环的语法如下:
1ForEach($i in start..end){ 2 要重复执行的语句 3}
在上述语法中,我们需要提供范围的起始值 start、结束值 end,以及用大括号 {} 包裹的循环体内容。下面是一个打印 1 到 5 数字的简单示例:
1ForEach($i in 1..5){ 2 $i 3}
PowerShell 还提供了一种可选的方式,通过 ForEach-Object cmdlet 来遍历循环中的项目。该命令只能接收来自 PowerShell 管道的数据,例如:
11..5 | ForEach-Object { $_ } 2 3## 或者使用别名 '%',它是 ForEach-Object 的简写 41..5 | % { $_ }
请在下方终端中输入这些命令以查看输出结果。
管道是 PowerShell 最强大的功能之一,它用于将一系列命令连接起来。这也被称为命令链式调用。若想了解更多关于管道的工作原理,请在上方终端中运行 Get-Help about_Pipelines 查看详细帮助文档。管道充当左右两侧命令之间的接口:左侧命令的输出会被自动作为右侧命令的输入。在上面的例子中,$_ 表示从左到右传递过来的当前对象。管道的精妙之处在于,对象可以逐个被处理并传递,因此右侧命令无需等待左侧命令完全执行完毕即可开始工作。