一、for循环的基本结构
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的结构
for iter_var in iterable:
suite_to_repeat
注解:每次循环, iter_var 迭代变量被设置为可迭代对象(序列, 迭代器, 或者是其他支持迭代的对 象)的当前元素, 提供给 suite_to_repeat 语句块使用.
二、range函数
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列。
range(start,end,step=1):顾头不顾尾
range(10):默认step=1,start=0,生成可迭代对象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1,10,2):指定start=1,end=10,step=2,生成可迭代对象,包含[1, 3, 5, 7, 9]
eg:输出0~100内所有偶数之和
sum = 0 ##定义变量
for i in range(0, 101, 2): ##将i的值遍历为0~100的所有偶数
sum = sum + i ##所有数相加
print (sum)
输出结果:
三、for的运用:break&continue
for循环结合
输出
登陆系统:
for i in range(3): ##三次输出机会
name=input('please input username:') ##输入用户名
passwd=input('please input passwd:') ##输入密码
if (name=='westos')and(passwd=='123321'): ##如果用户密码符合
print('success')
break ##退出循环
else:
print('your usrname or passwd wrong!!! you have %d chance' %(2-i)) ##机会剩余次数
else:
print('you have not chance,please wait 100s') ##机会用完则输出
break&continue
break: 跳出整个循环。
continue: 跳出此次循环,continue后的代码不执行,继续下次循环。
exit():直接跳出程序。
小测试:
搭建shell环境:
import os ###import os 引用系统函数
for i in range(1000):
cmd=input('[kiosk@python test]$' )
if cmd:
if cmd=='exit':
print('bye')
break
else:
os.system(cmd) ###执行cmd命令
else:
continue
print('hello') ###不会执行
最大公约数和最小公倍数:
要求:
输入两个数值:
输出两个数的最大公约数和最小公倍数
最想公倍数:num1num2/最大公约数
方法1:
num1 = int(input(‘输入数字1:’))
num2 = int(input(‘输入数字2:’))
if num1 > num2:
for i in range(1, num2 + 1):
if num2 % i == 0 and num1 % i == 0:
aa = i
else:
for i in range(1, num1 + 1):
if num2 % i == 0 and num1 % i == 0:
aa = i
print(‘最大公约数:%d’ % (aa))
bb = (num1 * num2) / i
print(‘最小公倍数:%d’ % (bb))
方法2:
num1 = int(input(‘输入数字1:’))
num2 = int(input(‘输入数字2:’))
#比较num1和num2谁更小。
min_num = min(num1,num2)
for i in range(1, min_num + 1):
if num2 % i == 0 and num1 % i == 0:
aa = i
bb = (num1num2)/aa
print(‘最大公倍数为:%d’ %(aa))
print(‘最小公约数为:%d’ %(bb))
扩充:min() 表示输出最小值