一、For循环
- Python for 循环可以遍历任何序列的项目,如一个列表或者一个字符串或者字典等。
- 语法模式:for var in sequence:
-
while 循环和 for 循环的区别
-
表达式不一样
- for i in xxx:
- while True:
-
执行逻辑不一样
- for 循环可以遍历任何序列的项目,比如字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素
- while 循环会一直执行它下面的代码片段,直到它对应的布尔表达式为 False 时才会停下来。具体来讲,while 循环所作的和if语句类似,也是去检查一个布尔表达式的真假,不一样的是它下面的代码片段不是只被执行一次,而是执行完后再调回到 while 所在的位置,如此重复进行,直到 while 表达式为 False 为止
- for 循环的目的是遍历和为了限制循环体的执行次数
- while 循环目的是为了反复执行语句或代码块
- while 循环容易陷入死循环,而 for 循环不会陷入死循环
-
表达式不一样
(1)从某个集合(列表等)里顺次取值
#遍历字符串 name = \'ShenZhen\' list1 = [] for a in name: list1.append(a) print (list1) #变量列表 fruits = [\'banana\', \'apple\', \'mango\'] for i in fruits: print (\'当前水果 :\',i) #遍历字典 dic1 = {\'name\':\'zhangsan\',\'age\':\'18\',\'sex\':\'boy\'} for key in dic1: print (\'the key is %s,the value is %s\'%(key,dic1[key]))
#三次密码错误重新输入账号 users = {"zhangsan":"123456","lisi":"234567","wangwu":"345678"} A = True while A: user = input("请输入你的账号:") if user in users.keys(): for i in range(3): pwd = input("请输入你的密码:") if pwd == users.get(user): print ("登录成功") A = False break else: print ("密码错误") else: print ("用户不存在")
(2)另外一种执行循环的遍历方式是通过索引,结合 range()内置函数使用
fruits = [\'banana\', \'apple\', \'mango\'] #Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表 for index in range(len(fruits)): print (\'当前水果 :\', fruits[index]) print ("Good bye!")
# for循环求偶数和 list1 = [] for i in range(101): if i % 2 ==0: list1.append(i) print (sum(list1)) """ sum1 = 0 for i in range(0 ,101 ,2): sum1 += i print (sum1) """
# 用户登陆(三次机会重试) for i in range(3): a = input(\'请输入用户名:\') b = input(\'请输入密码:\') if a ==\'admin\' and b ==123456: print (\'登陆成功\') break else: print(\'登录失败\')
# 猜年龄游戏:要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出 for i in range(3): a = input(\'请输入年龄:\') if a == \'18\': print (\'恭喜\') break else: print (\'猜错了\')
(3)冒泡排序
a = [2,5,1,7,9,3,4] for x in range(len(a)-1): for y in range(x+1,len(a)): if a[y] > a[x]: a[x],a[y] = a[y],a[x] print (a)