Python 中的 while 循环。 它是如何工作的,使用示例

循环是任何语言的主要工具之一。 Python中有两个基本循环,其中之一是while。 考虑一下,也为了更好地理解图片,再来一张。 确实,与类似的东西相比,任何材料都更容易理解,不是吗?

循环的概念

当某个动作需要多次执行时,需要循环。 这是非常简单的,因为实际上循环的应用范围要广泛得多。 Python中有两种主要的循环类型:for和while。 最受欢迎的是for。

除了特定的操作之外,您还可以将不同的代码段循环到某个点。 这可以是一定次数,或者只要特定条件为真。

在我们开始理解循环和 while 的类型之前,我们仍然需要理解什么是迭代。 这是在当前应用程序运行的当前周期内重复一个动作或一系列动作。

循环

我们的 For 循环不是计数器,就像在许多其他语言中一样。 它的任务是枚举一定的值序列。 这是什么意思? 假设我们有一个元素列表。 首先,循环采用第一个、第二个、第三个,依此类推。

在 Python 中这个循环的好处是你不需要确定元素的索引来知道什么时候退出循环。 一切都会自动完成。

>>> spisok = [10, 40, 20, 30]

>>> 对于列表中的元素:

… 打印(元素 + 2)

...

12

42

22

32

在我们的示例中,我们使用了变量 element 在 for 命令之后。 一般来说,名字可以是任何东西。 例如,一个流行的名称是 i。 并且在每次迭代中,都会为这个变量分配一个列表中的特定对象,我们称之为适当的词。

在我们的例子中,列表是一个数字序列 10,40,20,30。 在每次迭代中,相应的值都会出现在变量中。 例如,一旦循环开始,变量 element 赋值为 10。 在下一次迭代中,十变为数字 40,第三次变为数字 20,最后,在循环的最后一次迭代中,变为 30。

循环结束的信号是列表中元素的结束。

如果您需要循环来执行经典的值枚举,就像在其他编程语言中一样,您应该创建一个列表,其中包含一系列自然数,直到我们需要的值。

>>> spisok = [1,2,3,4,5]

或者使用函数 只要(), 来确定列表的长度。 但在这种情况下,最好使用循环 同时, 因为不需要使用变量。

如果需要改变列表中值的顺序,循环 这里来救援。 为此,在每次迭代中,必须为列表的每个元素分配一个适当的值。

While循环

不同于循环 ,它只是简单地迭代序列的值,循环 有更多用途。 这种循环的名称被翻译为“还”。 也就是“直到”。

这是在所有编程语言中都可以找到的通用循环。 在某些方面它类似于条件运算符 红豆杉, 它执行检查以查看是否满足特定条件。 仅与条件运算符相反, 在每次迭代时执行检查,而不仅仅是一次。 只有当条件为假时,循环才会结束并执行其后的命令。 简而言之,如果他工作的情况不再有效。

如果我们画一个循环 简单地说,这是使用这样的方案完成的。Python 中的 while 循环。 它是如何工作的,使用示例

程序的主分支(在循环外运行)在此图中用蓝色矩形表示。 绿松石代表周期的主体。 反过来,菱形是在每次迭代时检查的条件。

周期 可能导致两个异常:

  1. 如果在循环开始时逻辑表达式没有返回真,那么它根本就没有开始,在执行之前已经完成。 一般来说,这种情况是正常的,因为在某些情况下,应用程序可能不会在循环体中提供表达式的存在。
  2. 如果表达式始终为真,则可能导致循环。 也就是无限滚动的循环。 因此,在这样的程序中,循环或程序中应该总是有一个退出语句。 但是,如果程序能够确定特定条件的真假,就会出现这种情况。 如果她没有这样做,则程序终止时返回错误。 或者您可以处理错误,然后,如果发生错误,将执行某些代码。

如何处理错误可能有很多选项。 例如,程序可能会要求用户正确输入数据。 因此,如果一个人在只能是正数的情况下指示负数,或者在只能是数字的情况下输入字母,程序可以告诉它。

While 循环示例

这是在这种情况下处理错误的代码示例。

n = input(“输入一个整数:”) 

而类型(n)!= int:

    尝试:

        n = 整数(n)

    除了ValueError:

        print(“输入错误!”)

        n = input(“输入一个整数:”) 

如果 n % 2 == 0:

    打印(“偶数”)

其他:

    打印(“奇数”)

请记住,Python 使用冒号来声明复杂的代码结构。

在上面的代码中,我们定义了一个条件,即我们应该检查数字是否为整数。 如果是,则返回 false。 如果不是,那么是真的。

在代码的第二部分中,使用了运算符 if,我们使用 % 运算符求除法运算后的余数。 下一步是检查数字是否为偶数。 如果不是,则在这种情况下余数为 XNUMX。 因此,该数字是奇数。 

简单来说,上面的代码首先检查用户输入的字符串是否为数字。 如果是,则进行第二次检查以查看除以二是否还有余数。 但是直到用户输入的值是数字才会执行第二个块。

即循环会定期执行,直到条件发生。 在这种情况下,它的工作原理是这样的。 

也就是说,你可以反其道而行之:循环某个动作,直到事件变为假。

代码解析

现在让我们更详细地了解这段代码是如何工作的。 为此,我们将逐步分析它。

  1. 首先,用户输入一个字符串,该字符串被变量 n 接受。 
  2. 使用循环 检查此变量的类型。 在第一个条目上,它不相等 INT. 因此,作为测试的结果,发现该条件为真。 因此,进入循环体。
  3. 在操作员的帮助下 尝试 我们正在尝试将字符串转换为数字。 如果这样做,则不会发生错误。 因此,不需要对其进行处理。 因此,解释器返回到循环的开头,根据检查的结果,原来它已经变成了一个整数。 所以让我们进入第 7 步
  4. 如果转换不成功,则抛出 ValueError。 在这种情况下,程序流被发送到 except 处理程序。
  5. 用户输入一个分配给变量 n 的新值。
  6. 解释器返回到步骤 2 并再次检查。 如果是整数值,则执行步骤7。如果不是,则按照步骤3再次尝试转换。
  7. 在操作员的帮助下 if 判断一个数除以 2 后是否有余数。 
  8. 如果不是,则返回文本“偶数”。
  9. 如果不是,则返回文本“odd”。

现在考虑这样一个例子。 试着确定这个循环会经历多少次?

总计 = 100 

I = 0

当 i < 5 时:

    n = int(输入())

    总计 = 总计 - n

    我=我+ 1 

打印(“剩余”,总计)

正确答案是 5。最初,变量的值 i - 零。 解释器检查变量是否相等 i 4个或更少。 如果是,则返回该值。 true,并相应地执行循环。 该值增加一。

在第一次迭代之后,变量的值变为 1。执行检查,程序知道这个数字又小于 5。因此,第二次执行循环体。 由于步骤相似,因此值也增加了 2,变量现在等于 XNUMX。

这个值也小于五。 然后循环第三次执行,添加到变量中 i 1,它被赋值为 3。这又小于 XNUMX。 所以它来到了循环的第六次迭代,变量的值 i 等于 5(毕竟,据我们所知,它最初是零)。 因此,该条件不通过测试,并且循环自动终止,并执行到其外部的下一步(或程序终止,如果未提供以下步骤)的转换。

循环也可能发生在相反的方向。 这是一个代码示例,其中每次后续迭代都会从变量的当前值中减去一个。 

总计 = 100 

而总> 0:

    n = int(输入())

    总计 = 总计 - n 

print(“资源耗尽”)

试着猜猜这个程序做了什么! 想象一下,在一个变量中 存储有关程序资源的信息。 每次解释器检查资源是否存在。 如果没有,则显示“资源耗尽”文本并关闭程序。 并且随着循环的每次迭代,资源会减少用户指定的数量。

现在做作业。 尝试更改上面的代码,使变量在物理上不会变为负数。 

4条评论

  1. si代码ahaan usoo gudbi

发表评论