python流程控制基础

流程控制

流程控制>>>:控制事物的执行流程
事物执行流程总共可以分为三种
1.顺序结构
从上往下依次执行 我们之前所编写的代码都属于该结构
2.分支结构
事物的执行会根据条件的不同做出不同的执行策略
3.循环结构
事物的执行会根据某个条件出现重复

顺序结构

所需材料:排骨500克,料酒1勺,生抽2勺,胡椒粉半勺,盐适量,糖1勺,淀粉2汤匙,大蒜一头,老抽1小勺。

步骤1.排骨剁成小块洗净,加入料酒,生抽,胡椒粉,盐,淀粉抓匀,腌制30分钟。

步骤2.腌制好的排骨,入油锅炸制金黄,捞出沥干油备用。

步骤3.大蒜剁成蒜末 … …

按照步骤做就可以了!
image

分支结构

如下 先判断富or不富 如果富 则yes,嫁,如果不富,则判断帅不帅… 依此类推!
image

循环结构

地铁每天都从早运行到晚 ,这是一个循环结构,直到满足条件:地铁下班了! 就会跳出这个循环。
image

python缩进

1. python中用缩进表示代码之间的从属关系。
    缩进的代码 称为 子代码
	
2. 并不是所有的代码都可以拥有缩进的代码.
print('hello')
    print('hello,world')  # print不能拥有子代码
if True:
    print('hello world')  # if语句可以拥有子代码print('hello world')

3.如果有多行子代码属于一个父代码,那么他们必须有相同的缩进量
if True:
    print('hello world')
		print('hi')  # 这样是不行的

4.当某一行代码需要编写子代码的时候 那么这一行代码的结尾肯定需要冒号

5.相同缩进量的代码彼此之间平起平坐 按照顺序结构依次执行

# 建议使用四个空格作为缩进量,快捷键tab
# 在pycharm中遇到父代码时,按回车会自动缩进。

分支结构

1.单if分支结构:

if 条件:
条件成立之后才会执行的代码快
ps:单if可以借助于流程图理解

username = 'oshio'
if username == 'oshio':
	print('hello')
	
'''if语句接受一个bool值,username == 'oshio'是一个表达式,表达式运算之后得到true。'''
'''因为这个值是true,所以if下的子代码会输出,如果是false,则不会执行if下的代码。

2.if else分支结构:

if...else...分支结构
	if 条件:
     	条件成立之后执行的子代码
	else:
      	条件不成立执行的子代码

3.if elif else分支结构

if...elif...else分支结构
	if 条件1:
       条件1成立之后执行的子代码
 	elif 条件2:
       条件1不成立 条件2成立执行的子代码
  	elif 条件3:
       条件1和2都不成立 条件3成立执行的子代码
   	else:
       上述条件都不成立 执行的子代码
	   get_data = input('请输入你的名字:')

    if get_data == 'jason':
        print('%s-->超级管理员' % (get_data,))
    elif get_data == 'tom':
        print('%s-->普通管理员' % (get_data,))
    elif get_data == 'jack' or get_data == 'rain':
        print('%s-->业务主管' % (get_data,))
    else:
        print('%s-->普通用户' % (get_data,))
		
'''在 if elif else分支中只有一个会执行,当if elif都不执行时,else捕获剩下的所有情况。'''

循环分支结构

就是想让一些代码反复的执行
while 条件:	
	条件成立之后执行的子代码(循环体代码)
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规律依次执行 直到条件不成立才会结束循环体代码的执行

count = 1
while count < 5:  # 当不满足count < 5,就不会执行下面的循环体
    print('hello world')
    count += 1

扩展

1.while else

while 条件:
    循环体代码
else:
    循环体代码没有被强制结束的情况下 执行完毕就会执行else子代码
	
break  # 强行结束循环体
	while循环体代码一旦执行到break会直接结束循环
continue  # 直接跳到条件判断处
	while循环体代码一旦执行到continue会结束本次循环 开始下一次循环
	
	
cont = 1
while cont < 3 :
    print('hello')
    cont += 1
else:
    print('hi') # hi 会输出
	
cont = 1
while cont < 3 :
    print('hello')
    break  # 循环被break强制结束了!
	else:
    print('hi') # hi 不会输出 只会输出hello
	  # for循环也可以使用 for else,用法相同

2.字符串的比较

print('9' > '100000')  # True
print('1' > '02')  # True
print('02' > '20')  # False
print('0'>'')  # True
print('9c' > 'b')  # False  # 9和b不能比较返回false
print('9c' > '1b')  # True
'''字符串比较 只看字符串的第一位 第一位是数字则比较数字大小'''

3.pass语句

pass 语句不执行任何操作。语法上需要一个语句,但程序不实际执行任何动作时,可以使用该语句。
while True:
	pass

4.python3.10支持match语句

match语句可以将一个目标值与一个或多个字面值进行比较
match status:
        case 400:  # 将status的值 和 400 比较 如果相同则输出 'Bad request'
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the internet"

更多扩展关于while循环

1.死循环
	真正的死循环是一旦执行 CPU功耗会急速上升 直到系统采取紧急措施
		尽量不要让CPU长时间不间断运算
        
2.嵌套及全局标志位
	强调:一个break只能结束它所在的那一层循环
 	强调:有几个while的嵌套 想一次性结束 就应该写几个break
  	强调:如果不想反复写break 可以使用全局标志位
 	is_flag = True
   while is_flag:
        username = input('username>>>:')
        password = input('password>>>:')
        if username == 'jason' and password == '123':
            while is_flag:
                cmd = input('请输入您的指令>>>:')
                if cmd == 'q':
                    is_flag = False
                print('正在执行您的指令:%s' % cmd)
        else:
            print('用户名或密码错误')

练习描述

1.根据用户输入内容打印其权限
    '''
    jason --> 超级管理员
    tom  --> 普通管理员
    jack,rain --> 业务主管
    其他 --> 普通用户
    '''
2.编写用户登录程序
 要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
    eg:black_user_list = ['jason','kevin','tony']
 如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
    eg: oscar 123
3.编写用户登录程序
 用户如果登录失败 则只能尝试三次
 用户如果登录成功 则直接结束程序
4.猜年龄的游戏
 假设用户的真实年龄是18 编写一个猜年龄的游戏 获取用户猜测的年龄
 基本要求:可以无限制猜测 每次猜错给出提示(猜大了 猜小了) 猜对则结束程序
 拔高练习:每次猜测只有三次机会 一旦用完则提示用户是否继续尝试 用户通过输入n或者y来表示是否继续尝试 如果是y则继续给用户三次猜测机会 否则结束程序

用户登录

false_num = 0  # 初始错误次数
can_use_times = 2  # 初始可尝试次数
black_user_list = ['tony']  # 黑名单列表
super_admin_list = ['jason']  # 超级管理员列表
admin_list = ['tom']  # 管理员列表
boss_list = ['rain']  # 业务主管列表

username = input('>>输入用户名:')
if username in black_user_list:  # 判断是否在黑名单
    print('黑名单禁止登入')
else:
    while false_num < 3:  # 密码只能输错3次 false_num 0 --> 3
        password = input('>>请输入密码:')
        if password == '123':
            if username in super_admin_list:
                print('登录成功!')
                print('%s——>超级管理员' % (username,))
                break  # 登录成功结束循环
            elif username in admin_list:
                print('登录成功!')
                print('%s——>普通管理员' % (username,))
                break
            elif username in boss_list:
                print('登录成功!')
                print('%s——>业务主管' % (username,))
                break
            else:
                print('%s——>普通用户' % (username,))
                break
        else:
            print(f'登录失败,剩余可用次数:{can_use_times}')
            false_num += 1  # 增加错误次数
            can_use_times -= 1 # 减少可用次数
if false_num >= 3:  # 输错3次之后跳出循环
    print('不能再登录了')

猜年龄

age = 18
num = 0
while True:
    while num < 3:
        glass = int(input('猜猜我年龄:'))
        if glass == 18:
            print('猜对了')
            break
        elif glass > 18:
            print('猜大了')
            num += 1
        elif glass < 18:
            print('猜小了')
            num += 1
    if glass != 18:
        data = input('要重新猜吗?')
        if data == 'y':
            num = 0
            continue
        if data == 'n':
            break
    else:
        break
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值