流程控制

流程控制即控制事物的执行流程

任何使用执行流程只有三种情况
	1.顺序结构
    	自上而下依次运行
        	# 我们之前编写的代码就是顺序结构
    2.分支结构
    	在运行过程中根据条件的不同可能会执行不同的流程
    3.循环结构
    	在运行过程中有些代码需要反复执行

 同在一个屋檐下 为何差距那么大

image

image

image

必知必会

1.条件都会转成布尔值  从而决定子代码是否执行
2.在python中 使用缩进来表示代码的从属关系
3.并不是所有的代码都可以拥有子代码
4.同属于某个代码的多行子代码 必须要保持相同的缩进量
	在python中推荐使用四个空格来缩进
ps:小技巧 上一行代码的结尾如果是冒号 那么下一行代码必缩进

分支结构

关键字if

# 1.单if分支结构
"""
if 条件:
	条件成立之后执行的子代码块
"""
    # 如果年龄小于28 叫小姐姐
    age = 36
    if age < 28:
        print('小姐姐好')
     
# 2.if与else连用
"""
if 条件:
	条件成立之后执行的子代码块
else:
	条件不成立的情况下执行的子代码块

ps:if与else连用 两者的子代码永远只会执行一个
"""
# 如果年龄小于28 叫小姐姐 否则叫 不好意思认错人了
age = 25
if age < 28:
    print('小姐姐好')
else:
    print('认错人了')
    
    
# 3.if elif else三者连用
"""
if 条件1:
	条件1成立之后执行的子代码块
elif 条件2:
	条件1不成立 条件2成立之后执行的子代码块
elif 条件3:
	条件1和2都不成立 条件3成立之后执行的子代码块
...
else:
	上述条件都不成立 执行的子代码块

ps:elif可以有多个
三者连用也是只会其中一个子代码块
"""
	# 根据成绩评判分类
    # 大于90优秀 大于80良好 大于70一般 大于60及格 其他挂科
    score = 79
    if score > 90:
        print('优秀')
    elif score > 80:
        print('良好')
    elif score > 70:
        print('一般')
    elif score 78> 60:
        print('及格')
    else:
        print('挂科重修')

image

if判断之嵌套

# 一定要图文相结合去消化理解吸收
age = 26
height = 165
weight = 99
is_beautiful = True
is_success = True
if age < 28 and height > 160 and weight < 100 and is_beautiful:
    print('小姐姐能否加个微信')
    # 判断小姐姐是否会给微信
    if is_success:
        print('吃饭 看电影 天黑了...')
    else:
        print('去你妹的 变态!')
else:
    print('可惜了')

image

if练习题

# 1.编写一个用户登录功能  用户名是jason 密码是123
    # 用户如果输入正确则打印来宾三位 否则登录失败
    """
    1.先写思路 注释 流程
    2.再动手写代码
    """
    # 1.获取用户输入的用户名和密码
    # username = input('username>>>:')
    # password = input('password>>>:')
    # # 2.判断用户名和密码是否正确
    # if username == 'jason' and password == '123':
    #     print('来宾三位')
    # else:
    #     print('去你妹的 没钱滚蛋')
  
# 2.根据用户名的不同打印不同的用户身份
    # jason管理员 tony安保人员 kevin财务 jack销售 其他普通员工
    # 1.获取用户名
    username = input('username>>>:')
    # 2.判断用户名身份
    if username == 'jason':
        print('管理员')
    elif username == 'tony':
        print('安保')
    elif username == 'kevin':
        print('财务')
    elif username == 'jack':
        print('销售')
    else:
        print('普通员工')

image

image

while循环

# 语法结果
"""
while 条件:
	条件成立之后循环执行的子代码块
"""
while True:
    # 1.获取用户输入的用户名和密码
    username = input('username>>>:')
    password = input('password>>>:')
    # 2.判断用户名和密码是否正确
    if username == 'jason' and password == '123':
        print('来宾三位')
    else:
        print('去你妹的 没钱滚蛋')

image

while+break

# while + break
# break结束本层循环
# while True:
#     # 1.获取用户输入的用户名和密码
#     username = input('username>>>:')
#     password = input('password>>>:')
#     # 2.判断用户名和密码是否正确
#     if username == 'jason' and password == '123':
#         print('来宾三位')
#         # 直接结束本层循环
#         break
#     else:
#         print('去你妹的 没钱滚蛋')

break本层的含义

# while嵌套
while True:
    # 1.获取用户输入的用户名和密码
    username = input('username>>>:')
    password = input('password>>>:')
    # 2.判断用户名和密码是否正确
    if username == 'jason' and password == '123':
        print('来宾三位')
        while True:
            cmd = input('请输入您的指令>>>:')
            # 判断用户是否想退出
            if cmd == 'q':
                break
            print('正在执行您的指令:%s' % cmd)
        break
    else:
        print('去你妹的 没钱滚蛋')

全局标志位

# 标志位的使用
flag = True
while flag:
    # 1.获取用户输入的用户名和密码
    username = input('username>>>:')
    password = input('password>>>:')
    # 2.判断用户名和密码是否正确
    if username == 'jason' and password == '123':
        print('来宾三位')
        while flag:
            cmd = input('请输入您的指令>>>:')
            # 判断用户是否想退出
            if cmd == 'q':
                flag = False
            print('正在执行您的指令:%s' % cmd)
    else:
        print('去你妹的 没钱滚蛋')

作业

1.整理今日内容及博客
2.猜年龄的游戏
	普通要求
    	用户可以有三次猜错的机会 如果过程中猜对了直接退出
    拔高要求
    	三次机会用完之后提示用户是否继续尝试 如果是则再给三次机会 如果否则直接结束
数据类型转换提示
	age = input('age>>>:')
    real_age = 18
    # 将字符串的数字转换成整型
    age = int(age)

image

whlie+continue

1使用while循环打印出0——10

image

2使用while循环打印出0-10但是不打4

image

while+else

count = 0
while count < 5:
print(count)
count += 1
else:
print('小妹妹你在干嘛呢')
image
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print('小妹妹你在干嘛呢')

image

死循环

while True:
print(1)
image

for循环

for循环能做到的事情 while循环都可以做到但是for循环语法更加简洁 并且在循环取值问题上更加方便
for 变量名 in 可迭代对象: 字符串、列表、字典、元组、集合
for循环体代码

ps:变量名如果没有合适的名称 那么可以使用i,j,k,v,item等
循环取出列表的每一个元素并打印
while实现
name_list = ['jason', 'tony', 'kevin', 'jack', 'xxx']
count = 0
while count < 5:
print(name_list[count])
count += 1
image

for循环与while循环比较

name_list = ['jason', 'tony', 'kevin', 'jack', 'xxx']

count = 0

while count < 5:

print(name_list[count])

count += 1

for name in name_list:
print(name)
image

for循环字符串

for i in 'hello world':
print(i)
image

for循环字典:默认只能拿到k

d = {'username':'jason', 'pwd': 123, 'hobby':'read'}
for k in d :
print(k, d[k])
image

range关键字

range 在不同的的解释器中 本质不同

在python2.x中range会直接生成一个列表
在python2.x中有一个xrange也是迭代器(老母猪)
在python3.x中range是一个迭代器(老母猪) 节省内存空间

'''python2.x中xrange就是python3.x里面的range'''
1一个参数 从零开始 顾头不顾尾
for i in range (10):
print(i)
image
2两个参数 自定义起始位置
顾头不顾尾
for i in range (4, 10):
print(i)

image
3三个参数 第三个数字用来控制等差值
for i in range (2, 101, 10):
print(i)
image

for+break

break功能也是用于结束本层循环

for i in range (10):
if i == 4:
break
print(i)
image

for+continue

continue功能也是用于本次循环

for i in range (10):
if i == 5:
continue
print(i)

image

for+else

else也是在for循环正常结束的情况下才会执行

for i in range (10):
if i == 5:
break
print(i)
else:
print('学习使我快乐')

image

for循环的嵌套使用

去掉换行符

for i in range(3):
for j in range(5):
print("", end='' )
image
大环套小环
for i in range(1, 10):
for j in range(1, i + 1):
print('%s
%s=%s' % (i, j, i * j), end='')
print()

![image](https://img2020.cnblogs.com/blog/2479413/202111/2479413-20211105194124608-337649106.png)
posted on 2021-11-04 22:24  狼行千里吃肉  阅读(118)  评论(0)    收藏  举报

import time with open('a.txt', 'rb') as f: f.seek(0, 2) while True: line = f.readline() if len(line) == 0: # 没有内容 time.sleep(0.5) else: print(line.decode('utf-8'), end='')