Python流程控制与循环

一、if...else分支

1、什么是if判断

  判断一个条件如果成立则如何,不成立则如何

2、为何要有if判断

  让计算机能像人一样具有判断能力

语法1:if...else

1 if 判断条件:
2   代码块1
3 else:
4   代码块2

语法2:if嵌套

1 if 条件1:
2     if 条件2:
3         代码块1
4     代码块2

语法3:if...elif...else

1 if 条件1:
2     代码块1
3 elif 条件2:
4     代码块2
5 else:
6     代码块3

二、while 循环

1、什么是循环

  循环指的是一个重复做某件事的过程

2、为什么要有循环

  为了让计算机能够像人一样重复做某件事

while 循环又叫条件循环,循环的次数取决于条件

语法:

1 while 判断条件:
2     代码块

上面这个循环是一个死循环,因为条件永远成立,会不停的执行下去,要想结束while循环,有两种方式:

方式一:操作 while 循环的条件让其结束即设置一个标志位让其为 True,一旦想终止循环,让标志位为 False,等到下一次循环判断标志位不成立,就会结束循环

方式二:break 强行终止本层循环

例如:用户登录程序,登录失败超过三次则退出

方式一:

 1 print("start...")
 2 count = 0
 3 
 4 while count < 3:
 5     username = input("Please input your username: ")
 6     password = input("Please input your password: ")
 7     if username == 'qiuxi' and username == '123':
 8         print('登录成功')
 9         break
10     else:
11         print('登录失败, 请重新登录')
12         count += 1
13         
14 print('end....')
运行结果:

start...
Please input your username: dsa
Please input your password: dsa
登录失败, 请重新登录
Please input your username: ei
Please input your password: qi
登录失败, 请重新登录
Please input your username: dsa
Please input your password: d
登录失败, 请重新登录
end....

方式二:

 1 print("start...")
 2 count = 0
 3 
 4 while True:
 5     if count == 3:
 6         print("输入错误过多")
 7         break
 8     username = input("Please input your username: ")
 9     password = input("Please input your password: ")
10     if username == 'qiuxi' and password == '123':
11         print('登录成功')
12         break
13     else:
14         print('登录失败, 请重新登录')
15         count += 1
16 
17 print('end....')
运行结果:

start...
Please input your username: xi
Please input your password: 534
登录失败, 请重新登录
Please input your username: ha
Please input your password: ha
登录失败, 请重新登录
Please input your username: ca
Please input your password: dsa
登录失败, 请重新登录
输入错误过多
end....

continue:表示结束本次循环,进入下一次循环

1 # 打印1 2 3 5
2 count = 1
3 while count < 6:
4     if count == 4:
5         count += 1
6         continue
7     print(count, end=' ')    # end=' '表示使print不换行打印
8     count += 1

注意:continue的位置,不能将它作为循环体最后一步执行的代码,否则continue不会起到作业

1 while True:
2     print('11111')
3     print('22222')
4     print('33333')
5     continue  # continue不起作用

while - else的应用:当while循环正常执行完毕,不被break打断的情况下,会执行else语句的内容

 1 print("start...")
 2 count = 0
 3 while count < 3:
 4     username = input("Please input your username: ")
 5     password = input("Please input your password: ")
 6     if username == 'qiuxi' and username == '123':
 7         print('登录成功')
 8         break
 9     else:
10         print('登录失败, 请重新登录')
11         count += 1
12 else:
13     print("输错的次数过多")
14 
15 print('end....')
运行结果:

start...
Please input your username: qi
Please input your password: 43
登录失败, 请重新登录
Please input your username: ad
Please input your password: jhg
登录失败, 请重新登录
Please input your username: cs
Please input your password: 765
登录失败, 请重新登录
输错的次数过多
end....

while循环嵌套

 1 name_of_db = 'qiuxi'
 2 pwd_of_db = '123'
 3 print("start...")
 4 count = 0
 5 while count < 3:
 6     username = input("Please input your username: ")
 7     password = input("Please input your password: ")
 8     if username == name_of_db and password == pwd_of_db:
 9         print('登录成功')
10         while True:
11             print('''
12                 1   浏览商品
13                 2   添加购物车
14                 3   支付
15                 4   退出
16             ''')
17             choice = input("请输入你的操作: ")
18             if choice == '1':
19                 print("开始浏览商品...")
20             elif choice == '2':
21                 print("正在添加购物车...")
22             elif choice == '3':
23                 print("正在支付...")
24             elif choice == '4':
25                 break
26         break
27     else:
28         print('登录失败, 请重新登录')
29         count += 1
30 else:
31     print("输错的次数过多")
32 
33 print('end....')
运行结果:

start...
Please input your username: qiuxi
Please input your password: 123
登录成功

                1   浏览商品
                2   添加购物车
                3   支付
                4   退出
            
请输入你的操作: 1
开始浏览商品...

                1   浏览商品
                2   添加购物车
                3   支付
                4   退出
            
请输入你的操作: 2
正在添加购物车...

                1   浏览商品
                2   添加购物车
                3   支付
                4   退出
            
请输入你的操作: 3
正在支付...

                1   浏览商品
                2   添加购物车
                3   支付
                4   退出
            
请输入你的操作: 4
end....

上面的代码,要想终止循环,每一个while都需要对应一个break,不好配对,使用设置标志位即可控制所有循环终止条件。

 1 name_of_db = 'qiuxi'
 2 pwd_of_db = '123'
 3 print("start...")
 4 flag = True
 5 count = 0
 6 while flag:
 7     if count == 3:
 8         print("尝试次数过多")
 9         break
10     username = input("Please input your username: ")
11     password = input("Please input your password: ")
12     if username == name_of_db and password == pwd_of_db:
13         print('登录成功')
14         while flag:
15             print('''
16                 1   浏览商品
17                 2   添加购物车
18                 3   支付
19                 4   退出
20             ''')
21             choice = input("请输入你的操作: ")
22             if choice == '1':
23                 print("开始浏览商品...")
24             elif choice == '2':
25                 print("正在添加购物车...")
26             elif choice == '3':
27                 print("正在支付...")
28             elif choice == '4':
29                 flag = False
30                 
31     else:
32         print('登录失败, 请重新登录')
33         count += 1
34 
35 print('end....')
运行结果:

start...
Please input your username: qiuxi
Please input your password: 123
登录成功

                1   浏览商品
                2   添加购物车
                3   支付
                4   退出
            
请输入你的操作: 1
开始浏览商品...

                1   浏览商品
                2   添加购物车
                3   支付
                4   退出
            
请输入你的操作: 4
end....

四、for 循环

Python的for循环主要用于取值,可以遍历任何序列的项目,如一个列表或者一个字符串。

语法:

1 for <variable> in <sequence>:
2     <statements>
3 else:
4     <statements>

range( ) 函数

如果需要遍历数字序列,可以使用内置 range( ) 函数。它会生成数列,例如:

range( )也可以指定区间的值:

也可以使 range 以指定数字开始并指定不同的步长

 

可以结合 range( ) 和 len( ) 函数以遍历一个序列的索引

补充:Python2中 range( ) 和 Python3中 range( ) 的区别

  Python2中 range( ) 函数可创建一个整数列表

  

  Python3 range() 函数返回的是一个可迭代对象(后面会学到),而不是列表类型

  

   但是可以利用 list 函数返回列表

  

原文地址:https://www.cnblogs.com/qiuxirufeng/p/9647602.html