python学习 lesson4循环语句:for循环

一、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 = (num1
num2)/aa
print(‘最大公倍数为:%d’ %(aa))
print(‘最小公约数为:%d’ %(bb))
扩充:min() 表示输出最小值

猜你喜欢

转载自blog.csdn.net/qq_38864155/article/details/84843385