码迷,mamicode.com
首页 > 编程语言 > 详细

python入门--流程控制

时间:2020-03-09 17:41:48      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:结构   技术   cmd   循环   转换   continue   列表   inf   自动   

一、流程控制的基本概念

流程控制即控制流程,具体指控制执行流程,而流程控制分为顺序结构、分支结构、循环结构

顺序结构:就是代码从上到下依次执行

选择结构:就是用到了if判断

循环结构:就是用到了while和for

技术图片

二、分支结构

1.什么是分支结构?

? 分支结构就是根据条件判断的真假取执行不同分支对应的子代码

2.为什么要用分支结构

? 人类在某些时候需要根据条件来决定做什么事情,比如:如果今天下雨就带雨伞

? 所以程序中必须有相应的机制来控制计算机具备人的这种判断能力

3.如何使用分支结构

1)if语句

? 用if关键字来实现分支结构,完整的代码如下所示

if 条件1 :    # 若条件1为True,则依次运行代码1,代码2,...
    代码1
    代码2
    ...
elif 条件2 :  # 若条件2为True,则依次运行代码3,代码4,...
    代码3
    代码4
    ...
else:       # 其他情况就依次执行代码5,代码6,...
    代码5
    代码6
    ...
# 注意:python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下地运行
# 条件可以是任意表达式,但是执行结果必须是布尔类型
    # 在if判断中所有的数据类型也都会自动转换成布尔类型
        # None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
        # 其余皆为True

2)if语句的案例

# 如果女人的年龄>30岁,那么叫阿姨,否则叫小姐姐
age_of_girl = input("请输入年龄:")
if age_of_girl > 30:
    print("阿姨好")
else:
    print("小姐姐好")
# 用户输入账号密码,程序分别单独判断账号与密码是否正确,正确输出True,错误输出False即可
user_info = {"Egon":'123',
            "Tank":'123'}
uesrname = input("请输入账号:")
password = input("请输入密码:")
if (uesrname in user_info) and (password == user_info[uesrname]) :
    print("True")
else:
    print("False")

三、循环结构

1.什么是循环结构

? 循环结构就是重复某段代码块

2.为什么要用循环结构

? 人类某些时候需要重复做某件事情

? 所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力

3.如何使用循环结构

1)while循环的语法与基本使用

while 条件:
    代码1
    代码2
    代码3
while的运行步骤:
# 1.如果条件为真,那么依次执行:代码1、代码2、代码3、...
# 2.执行完毕后再次判断条件,如果条件为真,那么依次执行:代码1、代码2、代码3、...,如何条件为假,则循环终止

2)while循环用法

a.死循环与效率问题
# 纯计算无io的死讯会导致致命的效率问题
while True:
    1+1
while 1:
    print('xxxx')
b.循环的应用
# 两个问题:
# 1、重复代码
# 2、输对了应该不用再重复
username = 'egon'
password = '123'
while True:
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')
    if inp_name  == username and inp_pwd == password:
        print('登录成功')
    else:
        print('账号名或密码错误')
c.退出循环的两种方式
# 方式一:将条件改为False,等到下次循环判断条件时才会生效
tag=True
while tag:
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')

    if inp_name  == username and inp_pwd == password:
        print('登录成功')
        tag = False # 之后的代码还会运行,下次循环判断条件时才生效
    else:
        print('账号名或密码错误')
    # print('====end====')
# 方式二:break,只要运行到break就会立刻终止本层循环
while True:
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')
    if inp_name  == username and inp_pwd == password:
        print('登录成功')
        break # 立刻终止本层循环
    else:
        print('账号名或密码错误')
    print('====end====')
    
# break的使用方式:立刻终止本层循环
while True:
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')

    if inp_name  == username and inp_pwd == password:
        print('登录成功')
        while True:
            cmd=input("输入命令>: ")
            if cmd == 'q':
                break
            print('命令{x}正在运行'.format(x=cmd))
        break # 立刻终止本层循环
    else:
        print('账号名或密码错误')
    print('====end====')
d.while +continue:结束本次循环,直接进入下一次

? 强调:在continue之后添加同级代码毫无意义,因为永远无法运行

# 举例
count=0
while count < 6:
    if count == 4:
        count+=1
        continue
        # count+=1 # 错误
    print(count)
    count+=1
e.while + else:针对break

? else包含的代码会在while循环结束后,并且while循环是在没有被break打断的情况下正常结束的,才不会运行

count=0
while count < 6:
    if count == 4:
        break
    print(count)
    count+=1
else:
    print('======>')

3)while循环的实例

# 版本 1
count=0
tag=True
while tag:
    if count == 3:
        print('输错三次退出')
        break
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')

    if inp_name  == username and inp_pwd == password:
        print('登录成功')
        while tag:
            cmd=input("输入命令>: ")
            if cmd == 'q':
                tag=False
            else:
                print('命令{x}正在运行'.format(x=cmd))
    else:
        print('账号名或密码错误')
        count+=1
# 版本 2:优化
count=0
while count < 3:
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')

    if inp_name  == username and inp_pwd == password:
        print('登录成功')
        while True:
            cmd=input("输入命令>: ")
            if cmd == 'q': # 整个程序结束,退出所有while循环
                break
            else:
                print('命令{x}正在运行'.format(x=cmd))
        break
    else:
        print('账号名或密码错误')
        count+=1
else:
    print('输错3次,退出')

python入门--流程控制

标签:结构   技术   cmd   循环   转换   continue   列表   inf   自动   

原文地址:https://www.cnblogs.com/zhuyouai/p/12449838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!