一、range( )函数:
在学习for循环之前,我们必须掌握range( )函数的用法:
一般有如下三种格式的用法:
1. range(number) #### 表示生成一串连续的整数,范围是 0--number-1
2. range(startnum,stopnum) ##### 表示生成一串连续的数字,范围是 startnum - stopnum-1
3. range(startnum,stopnum,step) ####### 表示生成一串连续的数字,范围是 startnum -- stopnum-1, step为步长
二、python中 for 循环的使用语法:
for variableName in range(«起始值startValue», «终止值tailValue»)
(主体部分)
通常,主体部分可以有好几行,只要这几行都有同样的缩进幅度。首先,循环的主体是从variableName
的startValue
开始运行。然后随着variableName
的值变成startValue+1
,主体再次运行。接着,变量名称的值变成startValue+2
。一直重复,直到variableName
变成tailValue-1
,之后循环停止。
下面举几个小例子:
eg1 :用python 的for循环实现 1+2+……+100的和。
sum = 0
for i in range(1,101):
sum = i + sum
print(sum)
eg2 :python 实现 100内的奇数相加:
sum = 0
for i in range(1,101,2):
sum = i+sum
print(sum)
eg3 :python 实现100内的偶数相加:
sum = 0
for i in range(0,101,2):
sum = i+sum
print(sum)
eg4 : 接受用户输入的一个数字,求其阶乘:
factorial_num = int(input('请问您要求哪个数字的阶乘:'))
factorial_sum = 1
for i in range(1,factorial_num+1):
factorial_sum = factorial_sum*i
print('%d的阶乘是%d:' %(factorial_num,factorial_sum))
三、python中 break、 continue、 exit 的作用:
1. break : 跳出整个循环
break效果演示:
测试代码如下:
for i in range(6):
if i == 3:
break
print(i)
运行结果:
2. continue : 跳出当前循环
continue效果演示:
代码如下:
for i in range(6):
if i == 3:
continue
print(i)
运行结果如下:
3. exit : 跳出整个程序。
主要要区分开和break的区别!
下面两段代码只有一点区别:当if判断成立时,上边的用exit()退出,下边的用break退出:
for i in range(6):
if i == 3:
exit()
print(i)
print('这就是break和exit的区别')
for i in range(6):
if i == 3:
break
print(i)
print('这就是break和exit的区别')
下面我们看运行结果:
用exit()退出的结果:
用break退出的执行结果:
四、for 与else的组合:
for中的else表示:for循环执行完后要执行的动作,但是异常退出循环该动作不执行(如break、exit退出)。
示例:
for i in range(6):
if i == 3:
continue
print(i)
else:
print('~~~')
运行结果:
练习题:
设计用户登陆系统(防止暴力破解,只能验证3次用户密码):
for i in range(1,4):
user_name = input('请输入用户名:')
user_passwd = input('请输入用户密码:')
if user_name == 'root' and user_passwd == 'westos' :
print('登陆成功!')
break
else :
print('您已经登陆失败%d次,还有%d机会!' %(i,3-i))
continue
else :
print('登陆失败,请100s后再试!')
五、python练习题:
1. for嵌套if 实现基本的命令提示行功能,python的os模块,可以实现调用shell命令的功效:
import os
for i in range(1,1000):
cmd = input('[kiosk@foundation13 test] ')
if cmd != '':
if cmd == 'exit':
print('logout')
break
else:
print('run %s' %(cmd))
os.system(cmd)
else:
continue
2.求最大公约数和最小公倍数:
# 1.接收两个输入值
num1 = int(input('number1:'))
num2 = int(input('number2:'))
# 2.找出两个数中较小的那一个,目的是优化程序
if num1 > num2: ### 这里的4行if判断可以用 min(num1,num2)代替
n = num2
else:
n = num1
# 3.求最大公约数:
for i in range(1,n+1):
if num1%i == 0 and num2%i == 0 :
max_number = i
else:
continue
# 4.求最小公倍数:
min_number = (num1*num2)/i
print('%d和%d的最大公约数是:%d' %(num1,num2,max_number))
print('%d和%d的最小公倍数为:%d' %(num1,num2,min_number))