当前位置: 首页 > 后端技术 > Python

For循环用法详解

时间:2023-03-25 21:42:02 Python

好程序员Python培训分享For循环用法详解,结合例子形式,详细分析了Pythonfor循环的作用、原理、用法及相关操作注意事项,一起来看看吧一起。  Python有两种类型的循环:for循环和while循环。for循环用于迭代可迭代对象。  可迭代对象是一次可以返回其元素之一的对象,包括字符串、列表、元组等序列类型,以及字典、文件等非序列类型。您还可以使用迭代器和生成器来定义可迭代对象For循环示例:iterableofcitiescities=['newyorkcity','mountainview','chicago','losangeles']forloopthatiteratesoverthecitieslistforcityincities:print(city.title())For循环的组成部分:循环的第一行以关键字for开头,表示这是一个for循环然后是iteration_variableiniterable,表示被遍历的对象是一个可迭代对象,和使用迭代变量来表示当前正在处理的可迭代对象的元素。在此示例中,迭代变量city在第一次迭代中为“newyorkcity”,在第二次迭代中为mountainview。for循环的头部总是以冒号结尾:。在for循环标头之后是缩进的代码块,它在for循环的每次迭代中运行。在这个块中,我们可以使用迭代变量来访问当前正在处理的元素的值。您可以随意命名迭代变量。一种常见的模式是为可迭代变量和可迭代变量赋予相同的名称,但分别使用单数和复数形式(例如'city'和'cities')Forloopscreatingandmodifyinglists:Creatinganewlistcities=['newyorkcity','mountainview','chicago','losangeles']capitalized_cities=[]forcityincities:capitalized_cities.append(city.title())修改列表有点复杂,需要使用新函数:range():range()是一个内置函数,用于创建不可变的数字序列。它有三个参数,必须都是整数。range(start=0,stop,step=1)start是序列中的第一个数,stop比序列中的最后一个数大1,step是序列中每个数的差值。如果未指定,则开始默认为0,步骤默认为1(即上面的=0和=1)。如果你在range()的括号中指定一个参数,它将作为stop的值,另外两个参数使用默认值。例如list(range(4))返回[0,1,2,3]如果在range()的括号中指定两个参数,它们将作为开始值和结束值,step将使用默认值。例如,list(range(2,6))返回[2,3,4,5]请注意,在这些示例中,我们将范围包装在列表中。因为range的输出本身就是一个range对象。我们可以通过将其转换为列表或在for循环中对其进行迭代来查看range对象中值的集合。我们可以使用范围函数为城市列表中的每个值生成一个索引。这样我们就可以通过cities[index]访问列表中的元素来直接修改cities列表中的值了。cities=['newyorkcity','mountainview','chicago','losangeles']forindexinrange(len(cities)):cities[index]=cities[index].title()同时修改list是range函数的一种用法,但不是唯一一种。您将经常使用range和for循环来重复某个操作一定次数。foriinrange(3)print("Hi!")For循环[相关练习]编写一个for循环,遍历名称列表以创建用户名列表。要为每个名称创建用户名,请将名称全部小写并将空格替换为下划线。在以下列表上运行for循环:names=["JoeyTribbiani","MonicaGeller","ChandlerBing","PhoebeBuffay"应该创建列表:usernames=["joey_tribbiani","monica_geller","chandler_bing","phoebe_buffay"]解决方法如下:names=["JoeyTribbiani","MonicaGeller","ChandlerBing","PhoebeBuffay"]usernames=[]writeyourforloopherefornameinnames:usernames.append(name.lower().replace("","_"))print(usernames)假设我们不想新建一个列表,而是修改names列表本身,编写如下代码。下面的代码是做什么的?names=["JoeyTribbiani","MonicaGeller","ChandlerBing","PhoebeBuffay"]fornameinnames:name=name.lower().replace("","_")print(names)分析:此代码无效。在每次迭代中,名称变量都设置为从此列表中获取的字符串。赋值语句然后创建一个新字符串(name.lower().replace("","_"))并将名称变量更改为该字符串。要修改列表,您必须在列表本身上使用范围。编写一个for循环,使用range()遍历用户名中的作业来修改该列表。与上一个练习一样,将每个名称更改为全部小写并将空格替换为下划线。运行for循环后,以下列表usernames=["JoeyTribbiani","MonicaGeller","ChandlerBing","PhoebeBuffay"]应更改为:usernames=["joey_tribbiani","monica_geller","chandler_bing","phoebe_buffay"]解决方法如下:usernames=["JoeyTribbiani","MonicaGeller","ChandlerBing","PhoebeBuffay"]escrevaseuloopforaquiforindexinrange(len(usernames)):usernames[index]=usernames[index].lower().replace("","_")print(usernames)令牌计数器:编写一个for循环,遍历字符串列表令牌并计算有多少XML令牌。解决方案如下:tokens=['','HelloWorld!','']count=0writeyourforloopherefortintokens:ift[0]=='<'andt[-1]=='>':count+=1print(count)创建HTML列表:编写一个for循环,遍历字符串列表并创建一个字符串html_str,这是一个HTML列表。例如,如果列表是items=['firststring','secondstring],输出html_str应该输出:

  • firststring
  • secondstring
的解决方法如下:items=['firststring','secondstring']html_str="
    n"foriteminitems:html_str+="
  • "+item+"
  • n"html_str+="
"打印(html_str)