python流程控制if判断与循环(for、while)

流程控制if判断与循环for、while

一、if判断

1.1单分支

# 单分支

# if一般用于判断/选择的场景
# 90以上优秀
score = 95
if score > 90:
    print('优秀')

1.2双分支(1)

# 双分支

# if...else
# 90以上优秀,90一下良好
score = 95
# if score > 90:
#     print('优秀')
# else:
#     print('良好')

1.2双分支(2)

score = 75
# print('优秀') if score > 90 else print('良好')  
# 单分支没有,多分支也没有

#结果一  条件  结果二

1.3多分支(1)

## if...elif...elif...else
## 90以上优秀,90-70良好,70以下不及格
# score = 95
# if score > 90:
#     print('优秀')
# elif score > 70:
#     print('良好')
# else:
#     print('及格')

1.3多分支(2)

## if...if...if...if
## 90以上优秀,90-70良好,70以下不及格
score = 95
if score > 90:
    print('优秀')
if score > 70 and score < 90:
    print('良好')
if score < 60:
    print('及格')

二、while循环

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

2.1 while循环

while循环又称为条件循环,所谓的循环就是重复做某件事,当然要给一定的条件限制,不然就永远的循环下去了,成为了死循环。

  1. while循环的格式
while 条件:
code 1
code 2
code 3
...
#可以这样理解
'''
while(当) <条件>:
    <需要进行重复的代码块>  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
'''

如:
while True:
    print('*1'*100)
    print('是不是傻'*10)
#其实这是一个死循环,一直输出到电脑报废,请谨慎使用

# 在实现登陆功能的时候可使用,一直到登陆成功
while True:
    name = 'chen'
    pwd = '123'
    inp_name =input('name:')
    inp_pwd = input('pwd:')
    if name==inp_name and pwd == inp_pwd:
        print('登陆成功')
    else:
        print('你咋那么笨呢')
    ##其实这还是一个死循环,但是存在阻塞

其实这还是一个死循环,但是存在阻塞

2.2while + break

break就是循环限制的一种哦,意思是直接退出循环

# 可以这样理解
'''

while(当) <条件>:
    <需要进行重复的代码块>  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
    break  # 遇到break后终止while循环
'''
while True:
	print(1)
	print(2)
	break
	print(3)
#输出:
1
2		
# 在实现登陆功能的时候可使用,一直到登陆成功,后退出
while True:
    name = 'chen'
    pwd = '123'
    inp_name =input('name:')
    inp_pwd = input('pwd:')
    if name==inp_name and pwd == inp_pwd:
        print('登陆成功')
        break
    else:
        print('你咋那么笨呢')

print('啊哈,不循环了哦')

2.3while + continue

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

n = 1
while n < 4:
    print(n)
    n += 1
#输出
1
2
3

n = 1
while n < 10:
    if n == 8:
        n += 1   # 如果注释这一行,则会进入死循环
        continue
    print(n)
    n += 1
#输出
1
2
3
4
5
6
7
9

注意:continue不能放在程序的最后一步执行,注意,不是最后一行

2.4 while 循环嵌套

退出一层循环

#退出内层循环的while循环嵌套
while True:
    name = 'chen'
    pwd = '123'
    inp_name = input('name:')
    inp_pwd = input('pwd:')
    if inp_name == name and inp_pwd == pwd:
        print('successful')
        while True:
            cmd = input('请输入命令')
            if cmd == 'q':
                print(f'{cmd}功能执行')
                break
    else:
        print('不对啊')
print('循环退出')

​ 退出双重循环

#退出内层循环的while循环嵌套
while True:
    name = 'chen'
    pwd = '123'
    inp_name = input('name:')
    inp_pwd = input('pwd:')
    if inp_name == name and inp_pwd == pwd:
        print('successful')
        while True:
            cmd = input('请输入命令')
            if cmd == 'q':
                break
            print(f'{cmd}功能执行')
        break
    else:
        print('不对啊')
print('循环退出')

2.5tag控制循环退出

tag = True
while tag:
    name = 'chen'
    pwd = '123'
    inp_name = input('name:')
    inp_pwd = input('pwd:')
    if inp_name == name and inp_pwd == pwd:
        print('successful')
        while tag:
            cmd = input('请输入命令')
            if cmd == 'q':
                tag = False
            print(f'{cmd}功能执行')
    else:
        print('不对啊')
print('循环退出')

2.6while+else

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

n = 1
while n<3
	print(n)
    n += 1
else:
    print('退出')
#输出:
1
2
退出

三、for循环

3.1for循环的语法

简单的来说for循环更像是遍历,for循环可以遍历任何序列的项目,如一个列表,字典或者一个字符串。for循环的循环次数受限于容器类型的长度,for循环也可以按照索引取值。

name = ['chen','python','nick','shanghai']
for i in name:
    print(i)
    
#输出:
chen
python
nick
shanghai

print(name[1])
#输出:
python

3.2for + break

for 循环被直接调出本层循环

name = ['chen','python','nick','shanghai']
for i in name:
    if i == 'python':
        break
    print(i)
#输出:
chen

3.3 for+continue

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

name = ['chen','python','nick','shanghai']
for i in name:
    if i == 'python':
        continue
    print(i)
#输出:
chen
nick
shanghai

3.4 for循环的嵌套

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

for i in range(3):
    print("----------",i)
    for j in range(2):
        print("**********",j)
#输出:
---------- 0
********** 0
********** 1
---------- 1
********** 0
********** 1
---------- 2
********** 0
********** 1

3.5 for+else

在没有break触发的时候执行else内部的代码

name = ['chen','python','nick','shanghai']
for i in name:
    if i == 'python':
        continue
    print(i)
else:
    print('没有了')
#输出:
chen
nick
shanghai
没有了

3.6 for循环实现loading

import time
print('Loading',end='')
for i in range(6):
    print(".",end='')
    time.sleep(0.2)

Loading......

四、for循环和while循环的区别

while:    
    1. 会进入死循环(不可控),尽量少使用while循环    
    2. 世间万物都可以作为循环的对象
for:    
    1. 不会进入死循环(可控),以后尽量使用for循环    
    2. 只对容器类数据类型+字符串循环(可迭代对象)
posted @ 2019-08-01 14:45  豆瓣酱瓣豆  阅读(584)  评论(0编辑  收藏  举报