什么是循环

在编程中,循环意味着以相同的顺序多次重复同一组计算。

想想现实生活中的情况。 您是一名实地生物学家,正在调查森林中的树木。 你挑了一棵树,测量它的直径和高度,把它们记在你的笔记本上,然后估计它的总体积。 接下来,你选择另一棵树,测量它的直径和高度,将它们写在你的笔记本上,并估计它的总体积。 然后,你再挑一棵树,测量它的直径和高度,把它们写在你的笔记本上,并估计它的总体积。

您将不断重复相同的过程,直到用尽示例中的所有树。 在编程术语中,您将遍历每棵树并以相同的顺序执行相同的任务集。

回到编程,如果给你一个整数值列表并要求对每一项进行平方,加上 5,并在最后报告结果——这是一个循环的例子。

我们可以循环什么?

那么我们可以循环什么呢? 基本上python中split的用法,任何可迭代数据类型都可以使用循环来操作。 Python中的可迭代对象是以不同数据格式存储的一系列值,例如:

有哪些类型的循环?

有两种主要类型的循环:for 循环和 while 循环。 其中,for 循环是应用于数据科学问题的最常见的循环类型。 主要区别是:

遍历列表

遍历列表非常简单。 给出一个值列表,并要求对每个项目做一些事情。 假设你有:

 my_list = [1,2,3,4]

然后要求您计算列表中每个值的平方:

 for each_value in my_list:
     print(each_value * each_value)Out:
 1
 4
 9
 16

同样,您可以执行一些更复杂的循环(例如“嵌套循环”)。 例如,给你两个列表并要求:

(i) 将一个列表的值与另一个列表相乘

(ii) 将它们附加到一个空列表

(iii) 打印新列表。

 new_list = []list1 = [2, 3, 4]
 list2 = [4, 5, 6]for i in list1:
     for j in list2:
         new_list.append(i*j)
         
 print(new_list)Out:
 [8, 10, 12, 12, 15, 18, 16, 20, 24]

遍历元组

遍历元组可能有点复杂,具体取决于元组的结构和您要完成的任务。

让我们将一些元组存储在一个列表中,每个元组代表班级中学生的姓名和年龄:

 students = [('Allie', 22), ('Monty', 18), ('Rebecca', 19)]

现在的任务是:

(i) 提取所有年龄段

(ii) 将它们存储在列表中

(iii) 计算平均年龄

 ages = []for i,j in students:
     ages.append(j)
 
 avg = sum(ages)/len(ages)
 print(avg)
 
 Out: 
 19.666666666666668

这里的每个元组包含两个条目(姓名和年龄)。 即使您对名称不感兴趣,通过 i 和 j,您也是在指定这两个项目并要求将项目 j(年龄)附加到新列表。 它被称为“元组拆包”。

遍历字典

Python 中的字典是键值对的集合:字典中的每个项目都有一个键和一个关联的值。 示例字典:

 # fruit price dictionary
 fruit_prices = {"apple": 2.50, "orange": 4.99, "banana": 0.59}

您可以遍历这些字典元素并执行各种操作。 这里有些例子:

提取字典中的所有键值:

 for i in fruit_prices.keys():
     print(i)
 
 Out:
 apple
 orange
 banana

将所有值存储在一个列表中:

 values = []
 for i in fruit_prices.values():
     values.append(i)
 print(values)
 
 Out:
 [2.5, 4.99, 0.59]

遍历字符串

让我们考虑字符串 – “Hello”。 它看起来像一个可迭代的对象吗? 它的确是。

 for i in 'Hello':
     print(i)
 
 Out:
 H
 e
 l
 l
 o

您可以使用 for 循环来解压缩字符串中的每个字符并对它们执行各种操作。

同样,也可以遍历句子中的每个单词。 但在这种情况下,需要一个额外的步骤来分割句子。

 sent = 'the sky is blue'
 # splitting the sentence into words
 sent_split = sent.split()
 # extract each word with a loop
 for i in sent_split:
     print(i)
 
 Out:
 the
 sky
 is
 blue

while循环

与 for 循环类似,while 循环重复执行一段代码——只要条件为真。 只有当循环条件为假时,循环才会中止。

while循环的一般结构是这样的:

 i = 0while i <=5:
     print(i)
     i = i+1 
 
 # option to break out of the loop
 Out:
 0
 1
 2
 3
 4
 5

在上面的每次迭代中,i 的值最多输出 5。此后python中split的用法,while 循环条件变为假(即当 i = 6 时,i≤5 变为假)。

 user_id = 'user101'
 while True:
     user = input('Enter your user ID: ')
     
     if user == user_id:
         print("You have entered ", user) 
         break
     else:
         print("Enter a valid user ID ")

循环控制:继续,中断,通过

有3个所谓的循环控制关键字:continue、break、pass。 这些语句会改变循环流程,并允许程序在某些外部条件被触发时退出或跳过部分循环。

休息

如果循环内部有break语句,当条件满足时循环终止。

 string = 'hello, there'
 for i in string:
     if i == ',':
         break
     print(i)
 Out:
 h
 e
 l
 l
 o

在上面的代码片段中,我们要求程序在找到字符串中的逗号时执行下一条语句(打印 i)

继续

continue 语句只是跳过一次迭代并继续下一次迭代,而不是跳出循环。

让我们执行上面相同的代码,但使用 continue 关键字。

 string = 'hello, there'
 for i in string:
     if i == ',':
         continue
     print(i)Out:
 h
 e
 l
 l
 o
  
 t
 h
 e
 r
 e

在这种情况下,如果循环遇到逗号,循环将继续跳过逗号。

经过

pass 不做任何事情,它只是一个尚未写入的语句的占位符。

 string = 'hello, there'
 for i in string:
     pass

如果我们不在那里放一个 pass,它会抛出一条错误消息,其余代码将不会执行。

总结

本文的目的是对 Python 中的 for 和 while 循环有一个直观的了解。 举例说明如何遍历可迭代对象,例如列表、元组、字典和字符串。 在文章的最后,我们通过示例介绍了循环控制语句的概念——break、continue 和 pass。

本文旨在初步概述循环的工作原理。