流程控制基础

流程控制

流程控制之if判断

语法

if判断是干什么的? if判断简单来说其实是计算机在判断人在做判断.就是说,如果这样干什么,如果那样干什么.

1.1 (if)

记住我们学习计算机编程,不管如何变,都是为了让计算机像人一样工作.比如你判断一个女生,是不是你喜欢的,我们首先会判断她年龄多大,年龄在18到20长得漂亮,很好表白,我们的if就是让计算机去判断这么一个过程.if表示if成立代码会干什么.

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

if girl_of_age == 18 and girl_of_age < 20:
    print("喜欢表白")

print('结束')
      

喜欢表白

结束

1.2 if...else

if 条件
   代码1
   代码2
   代码3
   ...
else:
    代码1
    代码2
    代码3
    ...

if...else 表示if成立代码会干什么,else不成立会干什么.

girl_of_age = 25

if girl_of_age == 18 and girl_of_age < 20:
    print("喜欢表白")
else:
    print('阿姨好')

阿姨好

1.3if...elif...else

if 条件1:
    代码1
    代码2
    代码3
    ...
elif 条件2:
    代码1
    代码2
    ...
else:
    代码1
    代码2
    ...

if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么.

girl_of_age = 25

if girl_of_age > 18 and girl_of_age < 20:
    print("喜欢表白")
elif girl_of_age < 30 and girl_of_age >20:
    print("考虑下")
else:
    print('阿姨好')

考虑下

if的嵌套

简单理解就是我们表白成功了,那我们又要干啥,不成功又要干啥.

girl_of_age = 18
is_success = False

if  girl_of_age > 16 and girl_of_age < 22:
    print('开始表白')
    if is_success:
        print('那我们一起走吧...')
    else:
        print('我逗你玩呢')
else:
    print('阿姨好')
    

开始表白
我逗你玩呢

流程控制之while循环

语法

简单理解为循环就是一个重复的过程,我们人需要需要重复的干一件事,那么计算机就是在模仿人做事.比如你游戏账号验证失败,那么就需要从新验证.这时候就用到了while循环,while循环又称为条件循环.

while 条件
   code1
   code2
   code3
    ...
while True:
    print(10)
age = 16

 while True:
     inp_age = input('age:')
     inp_age = int(inp_age)

     if inp_age > age:
         print('猜大了')
     elif inp_age < age:
         print('猜小了')
     else:
         print('猜对了')

这样就实现了一个猜年龄的循环,虽然实现了功能但你输对了他也会继续.

while + break

break的意思为终止掉当前层的循环,执行其他代码.

while True:
    print("1")
    print('2')
    break
    print('3')

1
2

上面的代码没啥意义,要记住循环的目的就是让计算机像人一样工作,去循环的处理事情,下面我们来通过while+break展示一下有意义的代码.

age = 16

while True:
    inp_age = input('age:')
    inp_age = int(inp_age)

    if inp_age == age:
        print('猜对了')
        break
    elif inp_age < age:
        print('猜小了')
    else:
        print('猜大了')
print('猜对了,结束')

age:16

猜对了

猜对了,结束

while + continue

continue的意思是终止掉当前层的循环,直接进入下次循环.

n = 1
while n < 4:
    print(n)
    n += 1

1

2

3

n = 1
while n < 4:
    if n == 2:
        n += 1
        continue
    print(n)
    n += 1

1

3

continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。ps:注意是最后一步执行的代码,而不是最后一行。

while True:
    if 条件1:
        code1
        code2
        code3
        ...
    else:
        code1
        code2
        code3
        ...

    continue

while循环的嵌套

这里演示ATM机,

比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。

# 退出内层循环的while循环嵌套
while True:
    user_db = 'nick'
    pwd_db = '123'

    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(f'{cmd} 功能执行')
    else:
        print('username or password error')

print('退出了while循环')
# 退出双层循环的while循环嵌套
while True:
    user_db = 'nick'
    pwd_db = '123'

    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(f'{cmd} 功能执行')
        break
    else:
        print('username or password error')

print('退出了while循环')

username: nick
password: 123
login successful
请输入你需要的命令:q
退出了while循环

while + else

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

我来简单介绍下这几个语句的区别

假设,让你每天8点起来25点睡觉,连续30天,如果中途没有被干掉,奖励你一本书<修仙大法>

break: 跳出本层循环,跳出循环.当你第十天的时候break了,剩下的20天全部减免了

continue:跳出本次循环.当你第十天的时候continue,第十天减免了,但是剩下的天数还得继续

else:当你中途没有被break干掉,一直在修仙,就会得到<修仙大法>

流程控制之for循环

语法

为什么有了while循环,还需要有for循环呢?不都是循环吗?我给大家出个问题,我给出一个列表,我们把这个列表里面的所有名字取出来

name_list = ['nick', 'jason', 'tank', 'sean']

n = 0
while n < 4:
    # while n < len(name_list):
    print(name_list[n])
    n += 1

nick

jason

tack

sena

字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。

name_list = ['nick', 'jason', 'tank', 'sean']
for item in name_list:
    print(item)

nick

jason

tack

sena

for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值

print(list(range(1, 10)))

[1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in range(1, 10):  # range顾头不顾尾
    print(i)

1

2

3

4

5

6

7

8

9

for +break

for循环调出本层循环。

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

三、for + continue

for循环调出本次循环,进入下一次循环

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

四、for循环嵌套

外层循环循环一次,内层循环循环所有的。

# for循环嵌套
for i in range(3):
    print(f'-----:{i}')
    for j in range(2):
        print(f'*****:{j}')
-----:0
*****:0
*****:1
-----:1
*****:0
*****:1
-----:2
*****:0
*****:1

五、for+else

for循环没有break的时候触发else内部代码块。

# for+else
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
    print(name)
else:
    print('for循环没有被break中断掉')
nick
jason
tank
sean
for循环没有break中断掉

六、for循环实现loading

import time

print('Loading', end='')
for i in range(6):
    print(".", end='')
    time.sleep(0.2)
posted @ 2019-08-01 19:05  Feeling_afraid  阅读(99)  评论(0编辑  收藏  举报