Python学习笔记之For循环用法详解


Posted in Python onAugust 14, 2019

本文实例讲述了Python学习笔记之For循环用法。分享给大家供大家参考,具体如下:

Python 中的For循环

Python 有两种类型的循环:for 循环和 while 循环。for 循环用来遍历可迭代对象。

可迭代对象是每次可以返回其中一个元素的对象, 包括字符串、列表和元组等序列类型,以及字典和文件等非序列类型。还可以使用迭代器和生成器定义可迭代对象

For 循环示例:

# iterable of cities
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
# for loop that iterates over the cities list
for city in cities:
  print(city.title())

For 循环的组成部分:

  • 循环的第一行以关键字 for 开始,表示这是一个 for 循环
  • 然后是 iteration_variable in iterable,表示正在被遍历的是可迭代的对象,并且用迭代变量表示当前正在被处理的可迭代对象的元素。在此示例中,迭代变量 city 在第一次迭代时将是 “new york city”,在第二次迭代时将是 mountain view。
  • for 循环头部始终以英文冒号 : 结束。
  • for 循环头部之后的是在此 for 循环的每次迭代时运行的缩进代码块。在此块中,我们可以使用迭代变量访问当前正在被处理的元素的值。
  • 你可以随意命名迭代变量。常见模式是为迭代变量和可迭代对象指定相同的名称,但是分别使用单复数形式(例如 ‘city' 和 ‘cities')

For 循环创建和修改列表:

# Creating a new list
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
capitalized_cities = []
for city in cities:
  capitalized_cities.append(city.title())

修改列表稍微复杂些,需要使用新的函数:range():

range() 是一个内置函数,用于创建不可变的数字序列。它有三个参数,必须都为整数。range(start=0, stop, step=1)

  • start是该序列的第一个数字,stop比该序列的最后一个数字大 1,step是该序列中每个数字之间的差。如果未指定的话,start默认为 0,step 默认为 1(即上述 =0 和 =1)。
  • 如果你在 range() 的括号里指定一个参数,它将用作 stop 的值,另外两个参数使用默认值。E.g. list(range(4)) 返回 [0, 1, 2, 3]
  • 如果你在 range() 的括号里指定两个参数,它们将用作 start stop 的值,step 将使用默认值。 E.g. list(range(2, 6)) 返回 [2, 3, 4, 5]
  • 注意,在这些示例中,我们将 range 封装在列表中。因为 range 本身的输出是一个 range 对象。我们可以通过将其转换为列表或在 for 循环中遍历它,查看 range 对象中的值集合。

我们可以使用 range 函数为 cities 列表中的每个值生成索引。这样我们便可以使用 cities[index] 访问列表中的元素,以便直接修改 cities 列表中的值。

cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
for index in range(len(cities)):
  cities[index] = cities[index].title()

虽然修改列表是 range 函数的一个用途,但是并非只有这一个用途。你将经常使用 range 和 for 循环重复某个操作一定的次数。

for i in range(3)
  print("Hi!")

For 循环[相关练习]

写一个遍历 names 列表以创建 usernames 列表的 for 循环。要为每个姓名创建用户名,使姓名全小写并用下划线代替空格。对以下列表运行 for 循环:

names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]

应该会创建列表:

usernames = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]

解决方案如下:

names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
# write your for loop here
for name in names:
  usernames.append(name.lower().replace(" ", "_"))
print(usernames)

假设我们不想创建新的列表,而是修改 names 列表本身,并编写以下代码。下面的代码有什么作用?

names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
for name in names:
  name = name.lower().replace(" ", "_")
print(names)

分析: 这段代码没有效果。 在每次迭代时,name 变量设为从该列表中获取的一个字符串。然后赋值语句创建一个新的字符串 (name.lower().replace(" ", "_")) 并将 name 变量更改为该字符串。要修改该列表,你必须使用 range 对该列表本身操作。

写一个使用 range() 遍历 usernames 中的职位以修改该列表的 for 循环。和上一道练习一样,将每个姓名改成全小写形式并用下划线代替空格。运行 for 循环后,以下列表

usernames = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]

应该更改为:

usernames = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]

解决方案如下:

usernames = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
# escreva seu loop for aqui
for index in range(len(usernames)):
  usernames[index] = usernames[index].lower().replace(" ", "_")
print(usernames)

标记计数器: 写一个 for 循环,用于遍历字符串列表 tokens 并数一下有多少个 XML 标记。

解决方案如下:

tokens = ['<greeting>', 'Hello World!', '</greeting>']
count = 0
# write your for loop here
for t in tokens:
  if t[0] == '<' and t[-1] == '>':
    count += 1
print(count)

创建 HTML 列表: 写一个 for 循环,用于遍历字符串列表并创建单个字符串 html_str,它是一个 HTML 列表。例如,如果列表是 items = ['first string', 'second string],输出 html_str 应该会输出:

<ul>
<li>first string</li>
<li>second string</li>
</ul>

解决方案如下:

items = ['first string', 'second string']
html_str = "<ul>\n"
for item in items:
  html_str += "<li>" + item + "</li>\n"
html_str += "</ul>"
print(html_str)

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
python tkinter基本属性详解
Sep 16 Python
基于python实现从尾到头打印链表
Nov 02 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 07 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
python实现不同数据库间数据同步功能
Feb 25 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 #Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 #Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 #Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 #Python
使用Python实现图像标记点的坐标输出功能
Aug 14 #Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 #Python
python提取照片坐标信息的实例代码
Aug 14 #Python
You might like
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
用python代码做configure文件
2014/07/20 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python线程里哪种模块比较适合
2020/08/02 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
大学校园生活自我鉴定
2014/01/13 职场文书
出纳会计岗位职责
2014/03/12 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
公司联欢会主持词
2015/07/04 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
Python实现简繁体转换
2021/06/07 Python
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL