流程控制 while和for循环

流程控制

1.宏观一定是自上而下(逻辑上方代码一定比逻辑下方代码先执行):顺序结构
2.遇到需要条件判断选择不同执行路线的执行方式:分支结构
3.有些事情需要重复不断的去执行(当满足某种条件或不满足某种条件结束重复动作):循环结构

一.if分支结构

1.if:

if 条件:
    代码1
    代码2
    代码3
    ...
# 条件成立时执行代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)

2.if ... else ...:

if 条件:
    代码1
    代码2
    代码3
    ...
else:
    代码1
    代码2
    代码3
### if条件成立时执行代if的码块,否则执行else的代码块

3.if…elif…else

if 条件1:
    代码1
    代码2
    代码3
    ...
elif 条件2:
    代码1
    代码2
    代码3
    ...
elif 条件3:
    代码1
    代码2
    代码3
    ...
...
else:
    代码1
    代码2
    代码3
#哪一个条件成立就执行那个代码块,只会执行一个分支的代码块

while循环

一.基本语法和工作原理

1.语法:
 while 条件:

      循环体代码

2.工作步骤:

#1.当条件满足时,会执行循环体,然后再去判断条件成功与否

#2.如果还满足,重复1,2的过程,不满足结束循环

二.while+break

break的意思是终止当层的循环,执行其他代码。

# break语法演示
示例1:
while True:
    print('1')
    print('2')
    break
    print('3')
# 上面仅仅是演示break用法,实际不可能像我们这样去写,循环结束应该取决于条件

示例2:
user_db = 'jason'
pwd_db = '123'
while True:
    inp_user = input('username: ')
    inp_pwd = input('password: ')
    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')
        break
    else:
        print('username or password error')
print('退出了while循环')

三.while+continue

continue的意思是终止本次循环,直接进入下一次循环

示例1:
n = 1
while n < 10:
    if n == 6:
        n += 1  # 如果注释这一行,则会进入死循环
        continue
    print(n)
    n += 1

四.循环嵌套

#1. 退出双层循环的while循环嵌套
user_db = 'jason'
pwd_db = '123'
while True:
    inp_user = input('username: ')
    inp_pwd = input('password: ')
    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')
        while True:
            cmd = input('请输入你需要的命令:')
            if cmd == 'q':
                break
            print('%s功能执行'%cmd)
        break
    else:
        print('username or password error')
print('退出了while循环')


上述方法有点low,有多个while循环就要写多个break,有没有一种方法能够帮我解决,只要我退出一层循环其余的各层全都跟着结束>>>:定义标志位
# 退出双层循环的while循环嵌套
user_db = 'jason'
pwd_db = '123'
flag = True
while flag:
    inp_user = input('username: ')
    inp_pwd = input('password: ')
    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')
        while flag:
            cmd = input('请输入你需要的命令:')
            if cmd == 'q':
                flag = False
                break
            print('%s功能执行'%cmd)
    else:
        print('username or password error')
print('退出了while循环')

五.while+else(了解)

while+else:else会在while没有被break时才会执行else中的代码。

# while+else
n = 1
while n < 3:
      if n == 2:break  # 不会走else
    print(n)
    n += 1
else:
    print('else会在while没有被break时才会执行else中的代码')

for循环

一.语法和原理介绍

for用来完成特定的循环需求

语法:
for 循环得到的结果 in 被循环的容器:
    循环体

# 1.第一次循环,循环得到的结果 就是 被循环的容器 中第一个值
# 2.再次循环,循环得到的结果 会被重新赋值为 被循环的容器 中第二个值,以此类推
# 注:每一次循环 循环得到的结果 不使用,下一次循环就会被覆盖,无法找回
# 3.当 被循环的容器 中的值被 循环得到的结果 全部赋值一遍后,循环自动结束
'''

# range()
# 1. range(结束不被包含)
# 2. range(开始被包含, 结束不被包含)
# 3. range(开始被包含, 结束不被包含, 步长)
# 4. range(10, 5, -1)  # [10, 9, 8, 7, 6]

二.示例:

#1.列表循环
name_list = ['jason', 'nick', 'tank', 'sean']
for name in name_list:
  print(name)  # 对比与while更加简便

#2. 再来看for循环字典会得到什么
info = {'name': 'jason', 'age': 19}
for item in info:
    print(item)  # 拿到字典所有的key
    print(info[item])
    
# for可以不依赖于索引取指,是一种通用的循环取指方式
# for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定的

三.for+break

break的意思是终止当层的循环,执行其他代码。

# for+break
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
    if name == 'jason':
        break
    print(name) # nick

四.for+continue

continue的意思是终止本次循环,直接进入下一次循环

# for+continue
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
    if name == 'jason':
        continue
    print(name) 
结果:

  nick
  tank
  sean

 

     

posted @ 2019-04-16 20:52  心慌得初夏  阅读(206)  评论(0编辑  收藏  举报
levels of contents