python教程(二)·循环语句
计算机程序中常常需要重复执行某些语句,我们总不能将同一语句写上百遍吧?所以在python中,当然其它计算机语言也是,有一种语句可以重复执行相同的操作,这种语句就是 “循环语句”,而被重复执行的一组语句称为 “循环体”。
在python中有两种循环语句,分别是for
循环语句,while
循环语句,下面来一一介绍。
for循环
for
循环在上一节中也提到了,可以用来遍历列表、元组、字典,如下代码:
list1 = ['python', 'c/c++', 'java', 'php']
tuple1 = tuple(list1) # 将list1转换成list1
dict1 = {
'baidu':'https://www.baidu.com',
'feather':'https://featherl.gitee.io'
}
# 遍历列表
for e in list1:
print(e)
print('-----')
# 遍历元组
for e in tuple1:
print(e)
print('-----')
# 遍历字典
for k in dict1:
print(k,dict1[k])
输出:
python
c/c++
java
php
-----
python
c/c++
java
php
-----
baidu https://www.baidu.com
feather https://featherl.gitee.io
上面的只是基本,现在来详细讲讲。
for
语句和if
语句一样,是一种代码块,其基本形式为:
for 变量 in 可迭代对象:
循环体
上面的“可迭代对象”暂时理解成列表、元组、字典这些数据类型,for
语句会把可迭代对象中的元素赋值给“变量”,执行“循环体”,再把下一个元素赋值给“变量”,再执行“循环体”,这样一直循环下去,直至所有元素都遍历完
上面讲的是遍历“可迭代对象”,而本节讲的是循环,是不是有点离题?既然是“循环”,是否可以控制代码执行5次或者100次呢?
学过C语言、java或者其它类似语言的同学会知道,for
循环通常会有这样的形式:
//打印5行数字,分别是0、1、2、3、4
for(int i=0; i < 5; i++){
printf("%d\n", i); //这行代码执行了5次
}
如果要像上面那样输出5行连续的数字,或者说执行同样的代码5次,在python中该怎么做呢?
有同学可能这么说:
“这个不难,可以定义一个列表:[0, 1, 2, 3, 4],然后用for循环遍历输出”
对于这么想的同学,我只想表示,不如你去试试输出0~1000的 (≧∀≦)ゞ
开个玩笑而已,不要当真,回到话题上,难不成真的要手动输入成百上千个数字的列表吗?肯定不是,上代码!
# 输出100行整数,0~100,不包括100
for i in range(100):
print(i)
在这里有必要提一下下一节的知识了,这个range
是一个函数,100
是它的一个参数,range(100)
表示调用这个函数,并提供参数100
,range
函数的作用是生成一个类似列表的东西,就当是列表(在python2.x中它就是列表,我们学的是python3.x,不太一样),它返回的这个“列表”含有整数0~99,用数学上的区间表示就是:[0, 100)(x ∈ Z)
,也就是 整数0到100,不包括100
好了,点到为止,关于函数的详细讲解会在下一节介绍。
介绍完range
函数后就清楚很多了,上面的代码相当于用for
循环遍历了一个列表,这个列表含有整数0~100(不包括100 即0~99),然后输出遍历得到的整数。
回到根源,我们其实想做的是,将同样的代码重复执行一定次数,所以当我们要重复执行100次同样的代码,可以这么做:
# 因为range(100)生成整数0~99,有100个整数,所以循环执行100次
for i in range(100):
代码块
有时候我们真的只是想得到连续的整数,并且我们不要0~99而要2~10这样不是0开始的连续整数,这时我们调用range
函数的方式就要变一变了。下面看代码:
# range(起点,终点)
# range(2, 10)中,第一个参数2表示从2开始生成整数,生成的整数小于10
for i in range(2, 10):
print(i)
又有时候,我们需要连续的整数,这些整数之间的间隔不是常规的1,而是2或以上,比如偶数和奇数,这时可以用3个参数的调用方法,其中一个参数指定间隔,代码如下:
# range(起点,终点,间隔)
# range(1, 10, 2) 生成 1、3、5、7、9 间隔为2,也就是每2步取一个数
for i in range(0, 10, 2):
print(i)
又有时候……
还有 ⊙▽⊙
?!
应该是没有了 ^_^
while循环
咳咳~
我们继续。
相比for
循环,while
循环则简单很多,C语言中的while
循环是这样的:
while(条件){
代码块
}
C语言的代码块是用花括号标识的{中间是代码块}
,而python呢,前面也学习到,python使用缩进的方式来标识代码块,所以除了代码块的表示方式不一样外,while
循环的形式和C语言是非常相像的:
while 条件:
代码块
while
语句的工作方式是这样的:首先,判断条件,若条件不成立,则这个while
语句执行完毕;若条件成立,则执行代码块;这样为一轮循环,只要条件一直成立,这个while
语句也就一直执行下去。
现在我们来用while
循环改写上面for
循环输出连续整数的代码:
# 输出整数0~99
i = 0
while i < 100:
print(i)
i += 1 # i=i+1 也就是给i加上1
注:其实,一般情况下,明确知道循环的次数或者遍历可迭代的对象的时候使用for
循环,其它情况下使用while
循环,所以上面的代码仅做例子,实际中并不用while
来做这种情况,而是用for
循环。
循环控制
循环的条件是什么?执行到什么时候?
在某些情况下,我们是无法在一开始就确定上述问题的答案的,我们需要根据实际情况来断定循环是否要中断,或者跳过这一次循环直接开始下一次条件的判断,这时候就需要循环的控制语句。
循环控制语句只有两种:
- break
- continue
这两种语句也就仅仅两个关键字,break
、continue
,break
终止当前循环,而continue
则跳过本次循环直接开始下一轮循环,它们适用于所有循环语句(一共就两种循环语句),下面以for
循环来讲解。
抛出一段简单的代码,看注释即可:
for i in range(10):
if i == 2:
# 跳过 i为2的一轮循环
continue
if i == 7:
# i为7时终止循环
break
print(i) # 输出变量i
运行上面代码得到如下输出:
0
1
3
4
5
6
总结
这一节我们学习了两种循环语句,分别for
循环和while
循环,通常在确定循环次数时,或者用于遍历时,使用for
循环,其它情况使用while
循环。
我们还了解了循环控制语句,break
和continue
,break
用于终止循环,continue
用于跳过当前这轮循环,结合条件语句,我们可以很好的控制循环的进行。
这一节有点长,望读者能好好消化,下一节见 ヾ( ̄▽ ̄)、
python教程(二)·循环语句的更多相关文章
- 【python】Python3 循环语句
[python]几种常见的循环 注意:如果涉及到程序中print语句中含有%d,%s,那么要在脚本最开始写语句:#coding=utf-8,才能够正常输出想要的数字或者字符串. Python3 循环语 ...
- 05 . Python入门值循环语句
一.Python循环语句 程序一般情况下是按照顺序执行的 编程语言提供了各种控制结构,允许更复杂的执行路径 Python中的循环语句有for和while但没有do while 循环语句允许我们执行一个 ...
- Python数据结构与循环语句
# Python数据结构与循环语句: 首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟. 关于买书: 学会python之后,才需要买书 ...
- python入门10 循环语句
两种循环: 1 for in 2 while #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 循环语句 ...
- Python 3基础教程6-for循环语句
本文介绍另外一种循环语句,for循环,直接看例子. 用for实现打印1到9的数字. 方法一:写入一个列表,然后遍历列表 # 这里介绍 for循环# 打印1到9 exampleList = [1,2,3 ...
- Python 3基础教程5-while循环语句
本文开始介绍循环语句,和其他编程语言一样,Python中有while循环和for循环,这里介绍while循环. 语法: while 条件表达式为真: 做一些事情 实际生活中有很多这样的循环场景,这里举 ...
- 详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
- Python 安装、循环语句、数据类型(一)
一.关于版本的选择 Should i use Python 2 or Python 3 for my development activity?转载自Python官网 Short version: P ...
- 单片机c语言教程:C51循环语句
单片机c语言教程第十三课 C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 ...
- python基础之循环语句
一.if条件语句: 语法: 1.if单分支(单重条件判断) if expression: expr_true_suite 注释:expession为真执行代码expr_true_suite if单分支 ...
随机推荐
- QT的hint的toolTip的使用
QString value = ''1213213231"; this->setToolTip(value);//QT自带的接口 value就是自己想要塞进的数据. 如果字符多的话 怎 ...
- php简单的数组递归
参照 http://www.oschina.net/code/snippet_105637_11401 的例子 $arr = array('aa' => array('bb' => ...
- 位运算(Bit Manipulation)在算法中的应用
最近刷LettCode,遇到几个没思路的算法题,都是关于位运算的 # 136 Single Number Given a non-empty array of integers, every elem ...
- 解决Unity3D操作界面字体模糊的问题
新装的电脑安装了UNITY后,操作界面的字体异常模糊,搜了半天看看有没有换字体的功能,也没找到 后来快放弃的时候,偶然看到这篇文章http://eyehere.net/2014/unity3d-int ...
- APUE1.11:系统调用 库函数
区别是: system call:提供一种最小接口,而库函数通常提供比较复杂的功能.
- 双十一问题:kafka消费能力低下原因思考
抛去cpu.内存等机器原因,在每个分区皆分配一个进程消费的情况下,利用扩机器来提高kafka消费速率已无能为力 此时发现,在实际洪峰时段的消费速率元达不到先前压测时的消费速率 原因思考: 1.洪峰时段 ...
- python UI自动化实战记录四:测试页面1-pageobject
该部分记录测试页面1-IndexPage,所有首页上的元素定位.操作.获取属性等方法都写在该类中. 1 首页类继承自BasePage 2 首页类第一部分写的是所有的定位器 3 首页类第二部分类的方法, ...
- Django 模型中DateField字段
DateField¶ class DateField([auto_now=False, auto_now_add=False, **options])¶ 这是一个使用Python的datetime.d ...
- 完整详解GCD系列(三)dispatch_group
http://blog.csdn.net/hello_hwc/article/details/41409135 一.dispatch_group把一组任务提交到队列中,这些队列可以不相关,然后坚挺这组 ...
- HDU 4676 Sum Of Gcd 【莫队 + 欧拉】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=4676 Sum Of Gcd Time Limit: 10000/5000 MS (Java/Others ...