python 循环语句
在python中,循环有一个语句:for语句。
简单的for循环例子
>>> hello = "world" >>> for i in hello: ... print i ... w o r l d
上面这个for循环是怎么工作的呢?
- 1.hello这个变量引用的是"world"这个str类型的数据
- 2.变量 i 通过hello找到它所引用的"world",然后从第一字符开始,依次获得该字符的引用。
- 3.当 i="w"的时候,执行print i,打印出了字母w,结束之后循环第二次,让 i="e",然后执行print i,打印出字母e,如此循环下去,一直到最后一个字符被打印出来,循环自动结束
顺便补充一个print的技巧,上面的打印结果是竖着排列,也就是每打印一个之后,就自动换行。如果要让打印的在一行,可以用下面的方法,在打印的后面加一个逗号(英文)
>>> for i in hello: ... print i, ... w o r l d >>> for i in hello: ... print i+",", #为了美观,可以在每个字符后面加一个逗号分割 ... w, o, r, l, d, >>>
因为可以通过使用索引编号(偏移量)做为下标,得到某个字符。所以,还可以通过下面的循环方式实现上面代码中同样功能:
>>> for i in range(len(hello)): ... print hello[i] ... w o r l d
其工作方式是:
- 1.len(hello)得到hello引用的字符串的长度,为5
- 2.range(len(hello),就是range(5),也就是[0, 1, 2, 3, 4],对应这"world"每个字母的编号,即偏移量。
- 3.for i in range(len(hello)),就相当于for i in [0,1,2,3,4],让i依次等于list中的各个值。当i=0时,打印hello[0],也就是第一个字符。然后顺序循环下去,直到最后一个i=4为止。
以上的循环举例中,显示了对字str的字符依次获取,也涉及了list,感觉不过瘾呀。那好,看下面对list的循环:
>>> ls_line = ['Hello', 'I am hiekay', 'Welcome you', ''] >>> ls_line ['Hello', 'I am hiekay', 'Welcome you', ''] >>> for word in ls_line: ... print word ... Hello I am hiekay Welcome you >>> for i in range(len(ls_line)): ... print ls_line[i] ... Hello I am hiekay Welcome you
for
一般化的公式,可以这么表示:
for 循环规则: 操作语句
例子:找出100以内的能够被3整除的正整数。
分析:这个问题有两个限制条件,第一是100以内的正整数,根据前面所学,可以用range(1,100)来实现;第二个是要解决被3整除的问题,假设某个正整数n,这个数如果能够被3整除,也就是n%3(%是取余数)为0.那么如何得到n呢,就是要用for循环。
- 流程图:
下面写代码就是按图索骥了。
代码:
#! /usr/bin/env python #coding:utf-8 aliquot = [] for n in range(1,100): if n%3 == 0: aliquot.append(n) print aliquot
结果:
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
别了,JavaScript;你好,WebAssembly
作为JavaScript替代,一种Web开发的新形式已经浮出水面:WebAssembly。 Web开发与JavaScript开发向来是同义词。就是说,直到现在。但一种新的Web开发形式已然出现,声言会取代JavaScript。作为一个拥有15年Web开发经验的程序员,这个新方向瞬间吸引了我。 WebAssembly (Wasm)是一种在浏览器中可以执行的二进制指令,旨在为C#等高级语言提供一种编译目标。去年,微软开始尝试基于WebAssembly使用Mono运行时让.NET进入浏览器。Mono为.NET运行库(.dll)提供了基于WebAssembly运行的环境。运行在Mono之上的是Blazor,一个构建于.NET的单页Web应用开发框架,通过Mono的WebAssembly运行时在浏览器中运行。WebAssembly-Mono-Blazor这个全栈.NET应用平台能够催生不用JavaScript或浏览器插件的开发者。 这个新东东的出现立即引发了问题,很正常。 做出选择 我的答案完全代表自己的想法,而且我觉得并非所有开发者、项目或工具都应该一样。对我而言,答案很清楚,简单说就是“选择...
- 下一篇
利用11行Python代码,盗取了室友的U盘内容
序言 那个猥琐的家伙整天把个U盘藏着当宝,到睡觉了就拿出来插到电脑上。 我决定想个办法看他U盘里都藏了什么,直接去抢U盘是不可能的,骗也是不可能的。那不是丢我Python程序员的脸? 我必须在电脑上智取,而且不能被他发现。 这个是我的思路: 当一个usb插入时,在后台自动把usb里的东西拷贝到本地或上传到某个服务器。 那么我就可以先借他电脑玩一会,然后把我写好的Python程序在电脑后台运行。每当有usb插入的时候,就自动拷贝文件。 如何判断U盘是否插入? 首先打开电脑终端,进入/Volumes目录,然后插入U盘,能够看到它被挂载在了这个目录之下,那么,如果我们随时扫描这个目录,当这个目录有新文件夹出现时,应该就是有U盘被插入了。 用time.sleep(3)函数,让程序保持运行状态,并且每隔3秒扫描一下/Volumes/目录,一出现新的文件夹,立马拷贝到另外的文件夹。 能够看到U盘在插入大约30s后全部复制到home目录下了。 我只能说到这里了。。。 原文发布时间为:2018-10-22 本文作者:全栈开发者社区 本文来自云栖社区合作伙伴“全栈开发者社区”,了解相关信息可以关注“全栈...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7