如何在 Python 中创建 For 循环

什么是 For 循环?

Python 中的 for 循环用于重复使用函数或过程,每次将其应用于前一个序列的结果。 这个重复的过程称为迭代。 for 循环检查每次迭代,直到满足条件。 通常,当我们必须运行一个代码块将其复制 X 次时,会使用这些。 每次迭代一个序列时,它都会重新执行代码。

For 循环的语法

python 脚本中 for 循环的典型语法如下所示。

#!/usr/bin/python3 for a in sequence: body of for

For 循环如何工作

多种语言在其代码中具有 for 循环语法选项。 在 Python 中,任何具有可迭代方法的对象都可以在 for 循环中使用。 可迭代方法被定义为以列表形式呈现的数据,其中多个值以有序的方式存在。 我们还可以通过使用 next() 或 iter() 方法创建对象来定义我们的可迭代数组。

代码示例

使用简单的 For 循环

Pythonfor 语句按顺序一遍又一遍地运行一系列代码,每次都执行相同的代码块。 此函数允许我们重新运行命令 X 次,直到达到所需的结果。 替代循环命令使用 while 语句。 这两种构造都用于不同的目的。 在这里,我们使用 (0,3) 来确定要运行的迭代次数。

#!/usr/bin/python3 #simple for loop example for x in range(0, 3):         print("Loop %d" % (x))

命令的输出如下。

[email protected]:~# python forloop1.py Loop 0 Loop 1 Loop 2 [email protected]:~#

我们可以看到 for 循环运行了固定数量的迭代 (0, 3),同时为每个完成的循环添加一个数字。 在下一个示例中,while 语句(使用布尔值 True)永远不会改变。

在 For 循环中使用 Range 语句

range() 函数有两组主要参数:

  • 范围(停止) – 停止表示要渲染的整数(或整数)的数量,从 0 开始。
  • 范围([start], 停止[, step])
  • 开始:这是序列的开始编号。
  • 停止: 生成的数字最多但不包括此数字。
  • : 序列内数字之间的差异。

在脚本中使用 range() 函数,我们可以定义一定数量的循环来遍历该序列。 例如,我们可以将范围定义为 range(12)。 因为 Python 将 0 定义为范围(或索引列表)中的第一个数字,所以我们的示例范围是 0 到 11,而不是 1 到 12。Python 是基于 0 索引的。 这意味着索引列表从 0 开始,而不是 1。最后,用户应该注意所有参数都应该是正整数或负整数。

例如,在如下所示的 range() 函数中指定起点和终点,将生成一个从 4 到 7(5 个数字)的列表。

范围(4,7)

使用 forloop4.py 脚本,我们可以生成两个参数的范围。

#!/usr/bin/python3 for i in range(4, 7):      print(i)

脚本输出如下。

[email protected]:~# python forloop4.py 4 5 6 [email protected]:~#

使用以下 forloop3.py 脚本,我们可以输出数字 0-6 的单个列表。

#!/usr/bin/python3 for i in range(7):      print(i)

脚本输出如下。

[email protected]:~# python forloop3.py 0 1 2 3 4 5 6 [email protected]:~#

使用相同的方法,我们可以使用 forloop5.py 脚本来增加负数列表,以三为单位。

#!/usr/bin/python3 for i in range(0, -12,  -3):      print(i)

脚本输出如下。

[email protected]:~# python forloop5.py 0 -3 -6 -9 [email protected]:~#

在 For 循环中使用 While 语句

如果我们选择永远循环一个命令,我们可以在像下面这样的脚本中使用 while 语句重复重新运行一个简单的命令。

注意:如果您创建此脚本并运行它,它将运行得非常快。 我们的脚本跑了 54,000 在我们能够按 CTRL+C 结束运行之前不到一秒钟的迭代。

#!/usr/bin/python3 #simple for loop example x = 1 while True:         print("Loop number %d " % (x))             x += 1

脚本输出如下。

[email protected]:~# python forloop2.py Loop number 1 Loop number 2 Loop number 3  . . .  Loop number 54345 Loop number 54346 Loop number 54347 Loop ^C Traceback (most recent call last):   File "forloop2.py", line 5, in <module>     print("Loop number %d " % (x)) KeyboardInterrupt [email protected]:~#

初始 for 循环运行固定次数,因此在本例中运行了 3 次。 同时,while 循环会一直运行,直到循环条件发生变化或受到限制器的作用。

在 For 字符串上使用循环语句

字符串可以产生一系列字符,因为它们被视为可迭代对象。 使用 forloop6.py 脚本,我们可以按顺序列出字符串。

#!/usr/bin/python3 for x in "watermelon":     print(x)

脚本输出如下。

[email protected]:~# python forloop6.py w a t e r m e l o n [email protected]:~#

在 For 循环中使用 Break 语句

使用 break 语句时,我们可以在循环遍历所有列出的项目之前停止循环。 使用 forloop7.py 脚本,我们可以在循环到达 Chevy 条目时终止脚本。

#!/usr/bin/python3 cars = ["Ford", "Chevy", "GM"] for x in cars:    print(x)    if x == "Chevy":      break

脚本输出如下。

[email protected]:~# python forloop7.py Ford Chevy [email protected]:~#

在 For 循环中使用 Continue 语句

如果我们使用 continue 语句,我们可以停止当前的迭代循环并继续下面的条目。 使用采用我们之前的汽车示例的 forloop8.py 脚本将停止当前的迭代循环并继续列表中的下一个条目。

#!/usr/bin/python3 cars = ["Ford", "Chevy", "GM"] for x in cars:    if x == "Chevy":      continue    print(x)

输出

[email protected]:~# python forloop8.py Ford GM [email protected]:~#

在 For 循环中使用 Else 语句

for 循环中的 else 语句在循环完成时运行特定的代码块。 使用 forloop9.py 脚本,我们可以输出一个范围,然后在完成时打印消息“Done”。 用户应注意,如果 break 语句停止运行循环,则不会执行 else 块。

#!/usr/bin/python3 for x in range(5):   print(x) else:   print("Done.")

输出。

[email protected]:~# python forloop9.py 0 1 2 3 4 Done. [email protected]:~#

在 For 循环中使用嵌套循环

嵌套循环只是循环中的循环。 对于外循环的每次迭代,内循环将运行一次。 使用 forloop10.py 脚本,我们

#!/usr/bin/python3 adj = ["Blue", "Yellow", "Red"] cars = ["Ford", "Chevy", "GM"]  for x in adj:   for y in cars:     print(x, y)

输出。

[email protected]:~# python forloop10.py ('Blue', 'Ford') ('Blue', 'Chevy') ('Blue', 'GM') ('Yellow', 'Ford') ('Yellow', 'Chevy') ('Yellow', 'GM') ('Red', 'Ford') ('Red', 'Chevy') ('Red', 'GM') [email protected]:~#

在 For 循环中使用 Pass 语句

从技术上讲,for 循环不应该留空。 如果我们必须将 for 循环留空,我们可以使用 pass 语句来防止错误。 使用 forloop11.py 脚本,在运行我们的脚本时,我们根本不应该得到任何输出。

#!/usr/bin/python3 for x in[1, 2, 3]:   pass

输出。

[email protected]:~# python forloop11.py [email protected]:~#

如果我们删除 pass 语句,这里是输出。

[email protected]:~# python forloop11.py   File "forloop11.py", line 3                        ^ IndentationError: expected an indented block [email protected]:~#

For 循环的 10 个实际用途

下面的示例(或其中的一些迭代)经常用于日常 Linux 管理。 其中一些可能是旧的或不再可用的参考函数,但列出它们是为了显示在脚本或终端中使用 for 循环的多功能性。 下面,我们将文件夹中的所有文件重命名为file1、file 2等…

j=1; for i in *; do mv "$i" File$j; j=$((j+1)); done

为 public_html/agora 文件夹中的所有用户更改目录 agora/ 下所有内容的所有权

for i in `ls -1 /var/cpanel/users/`; do chown -R $i. /home*/$i/public_html/agora/*; done

有时信号量会卡住 Apache 无法自行清理。 下面,我们运行 ipcs -s 命令来检查这一点。 用这个命令清除它们。

for i in `ipcs -s | awk '/httpd/ {print $2}'`; do (ipcrm -s $i); done

注意:下面的命令是清除特定文件夹。 谨慎使用,因为我们正在使用 rm 命令.

for i in $(ls -A .); do rm -f $i; done  -

这是如何同时检查每日/每周/每月文件夹中的特定帐户备份(如果存在)。

for i in $(find /backup/cpbackup/ -type d | grep -i [A-Z]);do ll $i| grep -i <keyword>; done

下面显示了我们如何优化数据库中的所有表。

for i in $(mysql -e "show databases;" | sed 's/Database//') ; do for each in $(mysql -e "use $i; show tables;"  | sed 's/Tables.*//' ;) ; do mysql -e "use $i ; optimize table $each" ; done ; done

在 cPanel 在 WHM 中具有可视化 SPF 安装程序之前,我们使用此命令添加 SPF 记录。

for i in `ls /var/cpanel/users` ;do /usr/local/cpanel/bin/spf_installer $i ;done

或者,如果我们想同时安装 SPF 和 DKIM 记录,我们使用这个命令。

for i in `ls /var/cpanel/users|grep -v "./"`; do /usr/local/cpanel/bin/dkim_keys_install &&  /usr/local/cpanel/bin/spf_installer $i ; done ;

在这里,我们使用 for 循环在 exim 主日志中搜索通过 IP 使用三个特定域的发件人,一旦找到,在添加评论的同时在防火墙中阻止他们。

for i in $(grep -i sendername /var/log/exim_mainlog |egrep 'domain.com| domain.net | domain.org | grep "<="| egrep "([0-9]{1,3}.){3}[0-9]{1,3}" -o | grep -v 72.52.178.16 | sort |uniq); do csf -d $i per ticket 4224475 for sending spam ;done

这里我们使用for循环杀死-9 nobody PHP进程,然后重启apache。

for i in $(ps aux |grep nobody |awk '{print $2}');do kill -9 $i;done && service httpd restart

结论

正如我们所见,for 循环直接在命令行或脚本中用于多种情况。 概括地说,for 循环是一种流控制语句,用于连续迭代特定代码块固定次数。 我们定义了这个 Python 语句,它经常执行一组条件,直到受到外部状态或影响。 总的来说,Python for 循环在现代编程语言中提供了一些最有用的选项。

我们以成为 Hosting™ 中最有帮助的人而自豪!

如果您对这些信息有任何疑问,我们将一年 365 天、每周 7 天、每天 24 小时回答有关本文的任何问题。

如果您是完全托管的 VPS 服务器, Cloud 专用,VMWare 私有 Cloud, 私有父服务器, 托管 Cloud 服务器或专用服务器所有者,并且您对执行列出的任何步骤感到不舒服,可以通过电话联系我们 @800.580.4985,a 聊天 或支持票以协助您完成此过程。