Python的易读性使它成为初学者学习的最佳编程语言之一。一个很好的例子是为了环形。虽然类似的循环几乎存在于所有编程语言,但是Python为了循环更容易掌握,因为它几乎像英语。

在本教程中,我们将涵盖每个方面为了循环并向您展示如何使用各种示例使用它。我们还将进入一些常见的Python命令和功能加入,argv,对于更深入的课程等。为了循环和其他Python编程概念,查看本课程从头开始学习Python

在我们开始之前:你应该知道什么

使用为了循环,您需要熟悉基本的Python概念。主要是,你应该能够:

本教程中使用的所有示例都在Windows机器上写入,尽管您在OS X或Linux中不应有任何问题,但随时您已安装Python(您可以在此处抓取副本)。

如何使用本教程

掌握编程的唯一方法是通过积极参与。因此,我们将向您介绍核心概念和语法为了循环,您必须用手键入每个示例,并积极兴趣了解在本教程中使用的许多不同命令和函数。

随着那个方式,让我们开始吧为了循环!

什么是循环?

一种为了循环用于重复一段代码N次数。这为了循环通常与物品列表一起使用。基本语法为了循环看起来像这样:

为了列表:打印

翻译成常规英语,这将是:“对于每个列表中存在的项目,打印项目“。

这里有几件事可以注意到:

你已经使用过为了在自己的生活中广泛循环。作为一个例子,假设你必须去杂货店购物。你走进杂货店,抓住一辆购物车,并拔出你的购物清单。当您穿过通道时,您将在购物清单上拔出每个项目并将其放入购物车。在某种程度上,你正在使用为了循环 - 对于购物清单中存在的每个项目,您将其拉出并将其保留在购物车中。

但是足够的理论。让我们看看为了循环使用一个实际的例子:

例1

在这里,i是一个变量,用于引用列表中的单个项目打印i

输出:

Pythonforloopex1.

让我们看看另一个例子范围

例2.

因为我在范围内(0,10):打印我

输出:

Pythonforloopex2.

您可以看到上述示例如何用于在指定范围内打印数字列表。您也可以进行一些简单的数学,并打印出偶数或奇数的列表,因为我们将在以后的示例中看到。

对于循环而循环

Python支持两种环 -为了尽管。它们在语法和操作中非常相似,但在一个关键方面有所不同:a尽管只要满足条件,循环将无限地运行。

一种尽管循环具有以下语法:

尽管条件:做一点事

这是一个例子:

i = 0虽然我<100:i = i + 1 1#是必需的语句来制作循环状态假打印i

这是输出

Whileloop.

但是,如果要删除' i = i + 1 '部分,则尽管永远不会满足条件,即,数字永远不会达到100.因此,循环将无休止地运行,程序将崩溃。这被称为无限循环。

现在就试一下-删除i = i + 1部分并运行程序。你应该看到如下内容:

whileloop2.

因为尽管循环无限地运行,直到条件变为假,它们通常会导致程序丢弃错误或崩溃。这就是你应该尝试使用的原因为了循环而不是尽管循环。

对于循环和列表

最常见的用途为了循环是从列表中提取信息。

您可能知道的列表基本上是项目或数据的集合。列表基本上只是六种不同类型的一个序列用于Python。但是,对于本教程,我们只关注两种类型的序列:列表和元组。

列表的基本语法如下:

list_name = [list_item_1,list_item_2,list_item_3]

基本上,列表就像一个包含多条数据的变量。让我们考虑一个例子:

Odd_numbers = [1,3,5,7,9,11,13]

它也可以保存文本字符串:

名称= [“John”,“Roger”,“Ben”,“George”]

文本字符串和数字可以出现在同一个列表中:

names_numbers = [“John”,1,“Ben”,2,“乔治”,3]

打印上面的列表将以其全部内容产生列表:

徒步乐队1

loopsandists2

元组

元组就像一个具有不变元素的列表,即,元组的内容无法更改。代替正常列表中的方括号,元组坐在圆形括号内()。基本语法如下:

tuple_name =(tuple_item_1,tuple_item_2,tuple_item_3)

与列表一样,元组可以按住文本字符串,数字或两者:

even_tuple =(2,4,6,8,10)names_tuple =(“John”,“Ben”,“George”)Names_and_numbers =(“John”,1,“Ben”,2,“乔治”,3)

与列表一样,打印一个元组将整个元组复制:

元组

但是,如果要打印列表中的单个项目或元组?

这是在哪里为了循环派上友好。

为了循环循环在列表中的单个项目中,再现结果。您不仅可以打印,还可以在列表项上执行数学操作,并添加/删除项目。

让我们看几个例子来理解它是如何工作的:

从列表中打印项目

List1 = [1,3,5,7,9,11]在List1中的项目:打印项

这将打印出列表中的每个单独项目:

印刷福莫斯

它是元组的过程:

For I in (1, 2, 3, 4, 5, 6): print I

输出:

printtuple.

修改列表中的项

我们可以通过对它们执行数学操作来修改列表项。下面,我们将占据上面的奇数列表,并为每个数字添加1:

list1 = [1,3,5,7,9,11]列表中的项目1:项目=项目+ 1打印项

笔记:而不是写入“项目=项目+ 1”,我们可以使用速记,“Item + = 1”。

结果:

modifileinlist.

将项目添加到列表中

如果要将物品添加到列表中,该怎么办?为此,我们将使用附加()方法。

这是一个例子:

list1 = [1,2,3,4,5,6,7]列表2 = [8,9,10] list1.append(list2)

但是,当我们打印列表1时,我们会看到以下输出:

添加托尔师

你能发现这个问题吗?这附加()方法将列表中的所有项目视为单个项目。因此,而不是8,9,10被视为单独的列表物品,它们一起获得俱乐部。

如果您使用的是打印列表的八个元素,您可以看到此功能打印[7] -[8,9,10]被视为单个元素。

添加olist2.

那么我们如何单独添加列表项?

通过使用为了循环,当然!

list1 = [1,2,3,4,5,6,7]列表2 = [8,9,10]在list2中,通过列表2列表中的单个元素1 .append(i)#appending这些单个元素list1打印列表1

这是list1现在的样子:

循环

因此,而不是附加整个列表,我们将单独地通过列表中的所有元素并将它们添加到list1。这只是对循环和列表的众多使用之一。

笔记:您可以使用的是使用单个元素添加到列表中的扩展()方法也是如此。

使用多个列表

到目前为止,我们已经使用过为了单个列表的循环。但是,如果我们想要使用多个列表 - 即列表中的列表,那么怎么办?

在这种情况下,我们必须使用嵌套为了循环。我们将覆盖稍后详细介绍嵌套循环。现在,我们将通过一个例子来说明如何使用多个列表:

假设我们有一个名单,名称,数字和国家的名称:

list1 = [[“matt”,“ben”,“jerry”],[1,2,3,4,5],[“丹麦”,“英格兰”,“苏格兰”]

如果我们使用我们的正常情况为了使用循环方法打印列表项,得到如下结果:

对于我的列表1:打印我

Printi.

但是由于我们想要从这些列表中打印单独的项,我们将不得不使用另一个为了循环,如下:

对于我在list1中:对于i中的x:print x

这基本上意味着您指示Python两次通过列表。输出看起来如此:

printX

我们会回来嵌套为了循环后面。现在,您应该知道要在列表中使用列表,您需要多个为了循环。

使用带范围的循环

内置的范围()使用环路时特别使用方法。这范围()方法基本上定义了必须执行特定动作的范围。

和往常一样,理解这一点的最好方法是通过一个例子:

假设我们想打印前10个数。最简单的方法是使用为了循环和循环范围()方法:

For I in range(0,10): print I

输出:

输出

范围()方法应包括上层和下部范围。如果您仅使用一个值(例如,对于IN范围(10)),Python将自动假设计数从0开始。很好的做法是在您的代码中包含较低和上部范围。

请注意,该范围的上限是包括在内,即在上面的例子中,10将不包括在内。

但如果你想计算怎么办向后?当然,你必须脱掉一些复杂的编程巫术,把它拉下来吗?

谢天谢地,范围()方法内置了一个名为一步。这是可以使用的第三个论点范围()。它不是必需的,但在使用时可能非常有用。

让我们看看它是如何适用的一个例子:

对于I系列(10,0,-1):打印i

这里,10是起点,0是终点,-1是步长。因此,计数将从10减少到0。

10.

我们甚至可以算作否定:

对于I系列(10,-10,-1):打印i

底片

一步可以是任何东西。让我们使用它来计算0到20的所有偶数:

因为我在范围内(0,20,2):打印i

范围

范围()使用数字时会非常方便。尝试与它一起玩,看看你可以想出的其他类型的序列。

使用if-els条件陈述的循环

我们已经看到了有用为了循环可以是,但你并没有真正释放出这些循环的力量,直到你用条件陈述使用它们如果别的。

如果 - else语句帮助程序员做出决策并指导程序的流程。要刷新内存,这是最基本的if-else语句看起来像:

如果condition1 = True:做某事el条件2 = true:做某事别的:做某事

当与If-else语句结合使用时非常有用为了循环。

让我们考虑一个例子。假设我们有一个数字列表,只有在偶数之外,我们只想打印出来。最简单的方法是使用两者为了循环和IF-ELSE语句。

list1 = [1,2,3,4,6,8,12,5,17,19,20,25,28]在列表1中,如果i%2 == 0则通过列表中的每个项目重新登录:#if-stalal在除以2打印时,检查列表项是否离开了任何剩余部分

这是此操作的结果:

ifelse

在后面的例子中,我们将使用为了循环和如果别的语句创建有用,复杂的程序。

嵌套循环

我们嵌套循环基本上是循环中的循环。我们在上面的一个例子中介绍了一个简单的嵌套循环。让我们进入这个有用的Python功能,其中一些示例。

假设您有一个项目列表:

list1 = [“汽车”,“飞机”,“船”,“自行车”]

要从列表中打印出单个项目,可以使用简单为了环形:

对于我的列表1:打印我

这将产生以下输出:

筑巢

但是如果我们添加另一个,会发生什么为了循环到上面的循环?

让我们找出:

对于我在list1中:对于i中的x:print x

镶嵌

基本上,Python将每个单词分解成它的组成字母并打印出来。这指出了一个重要的Python属性——字符串基本上是单个字母的列表。

重要的是要记住,您可以嵌套任何类型的循环。一种尽管循环可以坐在里面为了循环,它可以位于if-else条件语句中,等等。

退出循环

有时,有必要在没有满足循环的一些条件情况下实现退出循环的故障安全机制。通常需要这一点尽管循环但也可以使用为了循环。在Python中,正确的方法是使用休息命令。

让我们看看它是如何工作的:

x = I在X中的范围(1,100):断开印刷I

这根本不会产生输出,因为您已命令Python将在打印任何内容之前打破程序流。

在下面的示例中,我们将学习我们如何使用Python为了循环创建不同的程序。我们还将了解我们之前没有接触的一些Python命令和功能。

例子

1.使用用户提供的输入创建项列表

这是一个使用的简单初学计划的一个很好的例子为了循环和列表。与任何编程练习一样,它有助于在编写任何代码之前列出基本要求。在这个计划中,我们想要:

根据这些要求,我们可以收集我们需要使用的RAW_INPUT()收集用户输入,并附加()将元素添加到列表中。

让我们开始吧!

从sys导入argv #import命令用来导入argv或参数变量脚本,user_name = argv #argv用于提取用户名和程序名称打印“hello,欢迎来到%s程序,%s”%(脚本,user_name)打印“此程序将要求您输入您在开始之前”打印“的地方的名称,请输入要输入的地点”Number = int(RAW_INPUT(“>”))打印“谢谢你!”打印“我们现在将要求您输入您前往的所有位置到”创建的Parument_traveled = [] #eptenty列表以保持IN范围(数字):#Range(数字)使用,因为我们想要限制用户coice = raw_input(“>”)replay_traveled.append(位置)打印“这是您去过的地方列表:\ n”,parument_traveled

运行程序,我们看到了这一点(确保在命令提示符中的程序名称后输入您的用户名):

前任!

让我们更详细地分析和理解这个程序:

从SYS导入argv

argv称为“参数变量”。它就像一个正常变量,除了在命令提示符本身运行程序时被调用。当您想要输入用户名或程序名称时,这可能非常有用,如上面的示例。在此程序中,我们专门使用argv,因为我们想要提取脚本的名称。

脚本,user_name = argv

此行定义了在程序中使用的两个参数变量。脚本是一个内置的方法,提取程序的名称。

number = int(raw_input(“>”))

我们附上了RAW_INPUT()之内int()因为我们要确保输入的值是一个整数,而不是一个字符串。尝试再次运行该程序并在第一个提示处输入一个单词而不是数字。您将收到以下错误:

错误

这是Python告诉你它预计这里的整数,而是有一个字符串。

Places_Traveled = []

是的,您也可以创建空列表!

对于I系列(数字):

我们没有自己声明范围,而是要求用户输入他/她想要输入的项目数量。因此,我们在循环中使用变量之前声明了它。

这是一个稳固的初学者,但你怎么能改善它?以下是您可以致力的作业问题:

  1. 我们使用int()来确保输入的输入是一个数字。但有没有办法验证输入是否是字符串?

    暗示:查找isalpha()在python中的函数。

  2. 扩展这个项目,包括不止一份清单——比如,你去过的地方和和你一起旅行的人的清单。

2.加入字符串

虽然这项练习只使用了一个粗略的用途为了循环,我们将使用它来介绍一些有用的Python函数,即:isalpha()Len., 和加入()

基本要求如下:

这是完整的程序:

从sys导入argv脚本,user_name = argv打印“欢迎来到%s脚本,%s”%(脚本,user_name)打印“在这个程序中,我们会要求您输入一些文本”打印“我们将然后验证输入是否正确或不“打印”,我们最终将输入输入到现有列表“打印”,我们将显示具有不同格式“打印”的列表的内容,因此让我们开始吧!“list1 = [] I for i范围(3):项目= raw_input(“请输入文本项>”)如果len(项)> 0和item.isalpha():list1.append(项)else:print“您输入无效输入!“打印“记得只输入文本输入!”打印“这是您的最终列表看起来像”,list1打印“让我们看看列表如何使用不同的格式”print“.join(list1)打印” - “。加入(list1)打印”...“。加入(list1)打印“,”.join(list1)

下面是程序的结果:

ex2.

让我们试着理解这里发生了什么:

如果len(项目)> 0和item.isalpha():

在这里,我们使用的是两个内置Python函数 -len ()isalpha()检查有效输入。Len()返回所述变量的长度。这里,我们希望输入的数据在至少一个角色长。因此,我们已经使用过len(项目)> 0。

isalpha()是另一个内置的Python函数,可检查变量是否仅包含字母表。Item.isalpha()基本上意味着:“只有输入的输入按字母顺序排列。如果它包含任何数字,请继续前进别的声明”。

立即尝试一下 - 重新运行该程序,但在第一个提示中使用一个数字。您将看到以下输出:

输出2

组合len ()isalpha()用于检查用户输入。例如,您可以使用len ()检查Web表单中的用户名或密码字段是否为空,或包含太多字符。

示例中的下一个有趣的代码位加入

打印“”.join(list1)打印“ - ”。加入(list1)打印“...”。加入(list1)打印“,”.join(list1)

这里,加入()用于在列表中打印出由指定格式分隔的列表中的单个项目。格式必须括在引号内。在第一种情况下,我们在第二种情况下,在第二种情况下,在第三个小,三个点,第四个点,第四个,通过逗号和空格,我们通过空间分开了一个空间。

对于家庭作业,尝试完成以下练习:

  1. 查找两len ()isalpha()关于官方Python文档。您能想到哪两者可能使用的任何其他情况吗?
  2. 我们已经使用过加入(),但还调用了另一个Python函数分裂()可以用来分解字符串。抬头分裂()关于官方Python文档。它有何不同加入()?有什么可能的用例分裂()

3.打印前n个数字并检查它们是否是质数

这是一个很好的例子,它利用嵌套循环,如果 - else语句和休息命令。基本要求如下:

根据这些信息,我们可以开始创建我们的程序:

对于I范围(2,20):对于x范围(2,i):#using嵌套循环,如果i%x == 0,则在第一级范围内获取数字:#检查第一号码是否已被第二个数字打印i,“等于”,x,“*”,I / x打破了其他:打印i,“是一个素数”

结果:

结果

对于新手来说,上面的数学运算可能看起来非常复杂,所以让我们把它分解成更容易理解的部分:

对于I系列(2,20):

这用于获得一个数字,即在2-20之间的范围内。

对于范围(2,i)的X:

在这里,我们得到另一个号码x,它位于2和i之间。因此,如果第一号码,我是6,这里的范围将是2-6。

如果I % x == 0:

这是可除性的检验。我们知道如果一个数有两个以上的因数,它就不是质数。如果第一个数i,能被第二个数x整除,这意味着它有至少三个二数 - 本身,1和x。

打印i,“等于”,x,“*”,I / x

这是一个简单的打印语句,列出了号码I及其除数x。

休息

我们用了休息这里是因为我们想让程序继续别的而不是遍历为了再次循环。如果我们删除休息,我们得到以下输出:

休息

这显然不正确,因为4,6,8和9不是素数。

否则:打印i,“是一个素数”

在这里,我们使用过别的A.为了环形。这别的条件不限于if-else语句。你可以用a为了循环也是如此使用了休息在里面为了循环某处。使用别的基本上告诉Python切换到代码下面别的遇到了一个休息。因此,在上面的示例中,我们指示Python如果第一个数字被第二个数字可分离,则会打破代码,并检查代码别的反而。

对于家庭作业,回答以下问题:

  1. 在简单的英语中,记下Python在代码中的每一行正在做什么。
  2. 列出程序“流”。选择一个数字,说,6,看看我= 6时会发生什么。
  3. 抬头别的在线Python文档的条款。

经常问的问题

问:你应该在哪里使用为了循环而不是a尽管环形?

几乎到处。这尽管循环有其用途,但它也容易抛出错误。作为初学者,尽量减少数量尽管循环在你的程序和坚持为了循环。当然,有问题,你无法帮助但使用a尽管循环,但如果可能的话,坚持下去为了循环——无论您是打印数字列表、处理列表,还是使用if-else语句做决策。

问:有多少为了循环可以嵌套在现有循环内吗?

尽可能多的(或者程序需要多)。但就像If-Els的陈述一样,它最好限制为了循环深入两个层次。比这更深,你会开始走向“糟糕的练习”的领土(其他程序员不再喜欢你)。

问:我在网上的一些代码中看到了“通过”命令。那是什么?

'pass'命令基本上是一个空占位符。它没有任何作用,但用于在句法需要某些代码的地方使用。例如,查看以下问题。

问:之间有什么区别范围Xrange.

如果你抬起头来范围你可能在网上遇到过Xrange.也是。Xrange.使用a时是另一种指定范围的方法为了环形。它的工作原理范围,除了它更快,更高的记忆力。

当你使用范围,基本上创建了Python重新介绍的列表。因此,对于范围(0,100)的X基本上创建一个临时列表,数字为0到100。作为为了循环执行,Python通过此列表中的每个元素进行。这可能很慢,特别是在处理非常大的值范围时。

Xrange.另一方面,生成一个对象,该对象创建范围内所需的数量。了解这项工作如何需要进入面向对象的编程,这是一个完全新的球比赛。

的运行时测试范围(或任何其他功能)和Xrange.通过使用时代模块。要使用此方法,请在命令提示符中输入以下代码:

Python -M Timeit'范围内(0,200000):'PASS'

时代

(请注意我们如何在这里使用“通过”为了循环需要缩进块,但程序没有)

做同样的事情xrange:

Xrange.

因此,Xrange.通过每循环的2.93毫秒的范围重申范围每圈5.95毫秒同样,制作Xrange.几乎是速度的两倍范围

问:有什么词典?

我们简要介绍了本教程中的词典。字典基本上是Python中的另一种类型的序列。他们列出了列表,除了他们也有一个钥匙A.价值与之相关。您可以像实际的英语词典一样想到它们,其中有单词(keys)和与单词相关联的含义(值)。

字典的基本语法如下:

字典= {key1:value1,key2:value2,key3:value3}

这是一个例子:

动物= {“兔子”:“胡萝卜”,“牛”:“草”,“狮子”:“肉”}

在这里,“兔子”、“牛”和“草”是关键,而“胡萝卜”、“草”和“肉”是价值。每个键也可以有多个值:

动物= {“兔子”:(“胡萝卜”,“白菜”,“黄瓜”),“牛”:“草”,“狮子”:“肉”}

您可以通过提及其密钥来打印字典中的任何特定值:

印刷动物[“兔子”]

这将打印('胡萝卜','白菜','黄瓜')。

但是如果你想打印两个键和价值观怎么办?为此,您必须使用一个为了循环和内置函数调用iteritems()

对于i,Animals.ItniTems()的价值:打印i,价值

这里,i和值都是任意占位符变量。您可以使用您喜欢的任何其他变量。结果看起来像这样:

狮子硕士

字典对于存储数据非常有用。想象一下,用要用于提取和显示特定数据的字典,存储用户的名称,密码,登录,年龄和性别的字典。

您可以在本课程中了解有关词典和其他中级级别Python主题的更多信息Python为初学者

问:我在哪里可以了解有关不同Python命令的更多信息?

学习Python语法和内置功能的最佳地点是通过docs.python.org的官方Python文档进行。另一种选择是简单地只是谷歌'python + [命令或函数]'。您还可以通过内置pydoc概述特定的Python函数和功能。只需在命令提示符下输入以下内容:

Python -M pydoc命令名称

这是一个例子打开():

打开

我在哪里可以找到Python程序和代码?

编程语言很像实际的语言。你可以坐在教室里学习数百个单词和语法规则,但掌握一门语言的唯一方法是在你的日常生活中实际使用它,最好是在母语是它的国家。同样的规则也适用于Python和其他编程语言。在StackOverflow.com和GitHub.com这样的网站上看看其他程序员是如何使用这门语言的,并获得示例代码。GitHub上有数千个Python代码库和软件源代码,是学习Python语言的好地方。

下一步

现在您已经熟悉了Python中最常用的循环为了环形。在本教程之后的后续步骤应该是熟悉自己尽管循环,词典,最终词典,类和面向对象编程。尝试以下其中一些课程开始:

Python顶级课程

Python 3: Deep Dive (Part 4 - OOP)
Fred Baptiste.
4.8 (1,133)
Python为初学者完成MasterClass
Mihai Catalin Teodosiu,Epicpython学院
4.5 (2,349)
畅销书
Python的设计模式
Dmitri nesteruk.
4.5 (1,289)
算法交易A-Z配有Python,机器学习和AWS
Alexander Hagmann.
4.6 (464)
畅销书
数据科学:Python中的深度学习与神经网络
懒惰的程序员公司
4.6 (7,296)
人工智能:Python的强化学习
懒惰的程序员团队,Lazy Programmer Inc.
4.6 (8,530)
畅销书
Python中深入学习的自然语言处理
懒惰的程序员团队,Lazy Programmer Inc.
4.6 (6,434)
高级AI:Python的深度加固学习
懒惰的程序员团队,Lazy Programmer Inc.
4.6 (3,850)
收视率最高

更多Python课程

蟒蛇学生也会学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示