1. for循环
# for 循环的语法格式:
# for 变量 in range(循环次数):
# 循环需要执行的代码
# else:
# 循环结束时需要执行的代码
#range()函数:
#range(stop): 0~stop-1
#range(start,stop):start~stop-1
#range(start,stop,step):start~stop-1 step(步长)
下面举几个例子看一下:
range(10)的范围是0-9
range(3,10)的范围是从3开始取到9
拿出1-10之间所有的奇数
拿出1-10之间所有的偶数
补充:
#在python2中:
#range(1,5):即刻生成数据,消耗时间并且占用内存
#xrange(1,5):先生成一个xrange对象,使用值的时候才生成数据,才占用内存
#在python3中:
#range(1,5):相当于python2中的xrange
下面用for循环做几个小练习:
1.计算1+2+3+…+100=???
2.求1~100之间的所有偶数之和
3.求1~100之间的所有奇数之和
4.用户输入一个整形数,求该数的阶乘;3!=321
5.实现一个用户登陆程序,需求如下:
1)输入用户名和密码
2)判断用户名和密码是否正确(name = ‘potizo’,passwd=‘123’)
3)为了防止暴力破解,登陆仅有三次机会,如果超过三次,程序就报错
【注】这里控制剩余机会是(2-i),而不是(3-i)。原因i是从0开始取值
6.输入两个数值,求两个数的最大公约数和最小公倍数。
提示:最小公倍数=(num1*num2)/最大公约数
最大公约数的范围是1-min_num(两个数之间最小的数),这里我们直接用python自带的min函数来求最小数即可,同时最大公约数是两个数能同时整除的最大的数。根据这个条件我们就可以确定for循环的控制范围和if判断条件。最小公倍数根据已知公式即可求解。min函数如下,直接使用即可。
2. break & continue
#break:跳出整个循环,不会再执行循环后续的内容
#continue:跳出本次循环,continue后面的代码不再执行,但是还是会继续循环
#exit():结束程序的运行
for的循环本来应该输入0-9,但是加了if判断,当i==5时,执行break。break语句的作用是跳出整个大循环,即直接跳出for循环,不再执行for循环里面break语句后面的内容。
当i == 5时,执行continue。continue语句的作用是跳出本次循环但不跳出整个大循环,即i ==5时,不再执行for循环里面continue语句后面的内容,但仍需执行for循环。
执行到exit()语句时,直接结束整个程序。
break代码练习:
模拟我们平常使用的linux命令行交互界面。提示:可以导入os模块,该模块为python一种系统独立的方式与底层操作系统交互,而不论具体是什么操作系统。
导入os模块后,直接可以调用os.system()函数执行相应的命令,具体怎么实现的我们不需要了解,因为这个函数已经帮我们完成了与底层操作系统交互的工作。if cmd: 表示当cmd不为空时,再进行下一步判断是为exit还是其他命令;最外层的else:与if cmd:对齐,当cmd的输入为空时,进入这个判断,执行continue。
这里应该使用死循环来控制命令的输入,但是for循环一般适用于已知循环次数的循环,因此当需要死循环时,我们可以考虑一下使用while循环。
3. while循环
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
.....
while循环的使用格式如下:
要定义一个整数变量,记录循环次数。
while代码练习:
1.用while循环实现0-100之间所有偶数累加之和
2.用while控制死循环,模拟linux命令行交互界面。
3. 猜数字游戏,要求如下:
1)系统随机生成一个1~100的数字;
提示:如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
2)用户总共有5次猜数字的机会;
3)如果用户猜测的数字大于系统给出的数字,打印“too big”;
4)如果用户猜测的数字小于系统给出的数字,打印"too small";
5)如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环;
执行如下: