Python_基础语法_流程控制_分支语句_循环语句(3)

本节概要:

                 一、流程控制语句介绍
                 二、顺序控制语句
                 三、分支控制语句
                 四、分支嵌套结构
                 五、三元表达式
                 六、循环控制结构
                 七、while循环
                 八、for循环
                 九、range()函数
                 十、综合案例


一、流程控制语句介绍

返回文章顶部

流程:计算机执行代码的顺序,就是流程
流程控制:对计算机代码执行顺序得控制,就是流程控制
流程分类:流程控制一共分为三类,分别是顺序结构、分支(选着)结构、循环结构


为什么要用控制语句?
类别人在十字路口进行抉择一样,使python程序也能进行选择

二、顺序控制语句

返回文章顶部
        顺序流程控制语句,就是程序从上到下依次执行,在python语言当中设计都是自上而下运行的,其它语言也是如此执行的
#1、顺序流程控制
print("hello world")
print("你好")

三、分支控制语句

返回文章顶部
结构 格式 执行流程
单分支 if 条件表达式: 如果表达式成 True,则执行if块(if 体)中的代码,否则不执行
双分支 if 条件表达式:
代码块1
else:
代码块2
如果条件表达式成立True,则执行if块(if体)当中的代码1,否则执行else块(else体)中的代码2
多分支结构 if 条件表达式1 :
代码1
elif 条件表达式2:
代码2
elif 条件表达式3:
代码3
else:
代码4
如果条件表达式1成立则执行if快中代码1,不成立则往后面推移

案例操作一 菜单跳转:

"""
选择结构案例
    项目中的菜单上下级跳转
    上午:上级菜单进入下级菜单
"""
# 打印界面
print("    购物商城     ")
print("~ * ~ * ~ * ~ * ~ * ~")
print("      1、会员登录")
print("      2、用户注册")
print("      3、退出系统")
print("~ * ~ * ~ * ~ * ~ * ~")

# 提示用户输入选项 choice~选择
choice = input("请输入您的选项(1/2/3):")

# 判断用户输入的选项:用户输入的是字符串~我直接跟字符串判断
if choice == "1":
    # 会员登录
    account = input("请输入账号:")
    passwd = input("请输入密码:")
    input("系统正在升级中,请稍后再试~按任意键退出程序")

elif choice == "2":
    # 用户注册- username 用户名~ password 密码 ~ confirm 确认
    username = input("请输入账号:")
    password = input("请输入密码:")
    confirm = input("请确认密码:")
    input("系统正在升级中,请稍后再试~按任意键退出程序")
elif choice == "3":
    # 退出程序?怎么退出?
    print("谢谢惠顾,客观下次光临噢")
    exit(1)
else:
    input("没有这个选项,是不是按错了?按任意键退出系统")


print("程序继续执行中...")

案例操作二 猜大小 :

"""
选择结构
    案例操作:猜大小
"""
# 告诉python解释器我们要使用random随机数
import random

# 打印游戏界面
print("    休闲小游戏:猜大小")
print("#######################")
print("   系统正在生成1~10数据中..")
print("   大于等于5: 大")
print("   小于5:    小")
print("   请根据自己的判断输入")
print("   :大 or 小")
print("   最后系统会给出结果")
print("  用户会得到奖励或者惩罚")
print("#######################")

# 随机生成一个数据
r = random.randint(1, 10)

# 用户输入并判断结果
result = input("1~10的数字已经产生,请给出结果(大|小):")

if result == "大" and r >= 5:
    print("恭喜玩家,获得胜利..奖励2积分..")
elif result == "小" and r < 5:
    print("恭喜玩家,获得胜利,奖励2积分")
else:
    print("你失败了,扣除1积分")


#  立立: 非常优秀!
#  需要注意:出现多个运算符号时~一定要通过小括号提升运算符优先级!
if (result == "大" and r >= 5) or (result == "小" and r < 5):
    print("恭喜玩家,获得胜利,奖励2积分")
else:
    print("你失败了,扣除1积分")

案例操作三 石头剪刀布:

"""
需求分析:
    目的:石头剪刀布 游戏开发
    
    过程:
        玩家 PK 电脑
      数据输入 随机产生
      input    random(数字)

      石头剪刀布:石头0|剪刀1|布2  字符
      玩家输入:石头|剪刀|布  0|1|2

    结果:
        使用数字 分别表示 石头|剪刀|布
        电脑的数据:随机产生
        玩家的数据:输入产生
        最两个数据进行比较得到结果
"""
import random

# 打印游戏界面
print("     休闲小游戏")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("  石头剪刀布游戏")
print("   游戏中,电脑会自动出招")
print("   玩家根据自己的想法按照提示")
print("   输入自己的招数")
print("   最终:系统会根据电脑的数据")
print("   和玩家的输入数据,进行比较")
print("   最终得到游戏结果")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~")

# 电脑出招  computer-电脑
print("系统正在数据运算中....")
print("系统开始出招")
# 整数
computer = random.randint(0, 2)  # 0|1|2
print("系统出招完成!")

# 提示玩家出招 user-用户 字符串
user = input("玩家;请输入您的招数(0-石头|1-剪刀|2-布):")

# 判断输赢
# 如果使用逻辑判断时~一定要使用and而不是&(逻辑与-二进制-位)
# 如果使用逻辑判断时~一定要使用or而不是|(逻辑或-二进制-位)
print("系统正在运算数据中...")
if (computer==0 and user=="2") or (computer==1 and user=="0") or (computer==2 and user=="1"):
    print("恭喜,玩家获胜,奖励2积分")
elif computer == int(user):
    print("注意注意:平局平局")
else:
    print("SORRY,玩家失败,扣除1积分")

input("游戏结束,按任意键退出")

四、分支嵌套结构

返回文章顶部
名称 格式 执行流程
多分支嵌套结构 if 条件表达式 1 :
代码1
if 条件表达式 2
代码2
else:
代码4
else:代码3
如果条件表达式1成立,则执行代码1,如果条件表达式2成立,则执行代码3,否则执行代码4

五、三元表达式

返回文章顶部

格式 说明
变量 = 条件为真返回的结果 if 条件判断 else 条件为假返回的结果 变量赋值时,要做条件判断时,简化代码使用
a = 5
print("真") if a >4 else print("假") #结果为 真

六、循环控制结构

返回文章顶部

循环:就是重复的意思,循环结构就是按照某个条件判断是否重复执行的结构,下面是循环语句的一般形式
Python_基础语法_流程控制_分支语句_循环语句(3)_第1张图片

七、while循环

返回文章顶部
格式 执行流程
初始条件设置:通常是一个计数器,来控制条件表达式是否成立
while 条件表达式:
代码1
代码2
改变计数器的值
如果条件表达式成立True,执行循环体中的代码块,执行完循环体中的代码后,继续判断条件表达式是否成立,如果成立继续执行循环体,直到条件表达式为Fasle后程序继续往下执行

循环就是:重复的意思,循环结构就是按照某个条件判断是否重复执行的结构

基本案例:

a =  1

while a <= 3 :
    print("循环的数字",a)
    a += 1

#得到结果

#循环的数字 1
#循环的数字 2
#循环的数字 3

(一)循环控制关键字

1.break 关键字

break : 让不断执行的循环中断,直接跳出循环

基本案例:当循环到数字5时候停止循环

a =  1

while a <= 10 :
    print("循环的数字",a)
    if a == 5 :
        print("终于到我了 我是数字5 到我这里结束")
        break
    a += 1

#得到结果
# 循环的数字 1
# 循环的数字 2
# 循环的数字 3
# 循环的数字 4
# 循环的数字 5
# 终于到我了 我是数字5 到我这里结束

注意 brak 关键字用于跳出当前循环!执行循环后面的代码 brak 关键字只能使用在循环中

2.continue关键字

continue : 循环过程会有很多次,这个关键字结束本次循环,直接开始下一次循环

"""
循环结构
    火车站售票
        10张票
        预留6|8号票
    笔试:要求~可以使用if判断
            不能使用else
"""
import time

# 票的号码
ticket = 0

while ticket < 10: # ticket <= 9
    ticket += 1
    time.sleep(1)
    print("准备售出", ticket, "号票")

    # 预留6|8号票
    if ticket == 6 or ticket == 8:
        print("这是预留票,不能出售")
        continue
       
    print("成功售出", ticket, "号票")

print("下班")

3. else关键字

当while循环完毕后,才执行else后面的代码块

"""
循环中的else关键字
    只要循环中没有执行break语句
        最终都会执行<一次>else的代码
        哪怕循环的条件是假的!
"""
import time

# 票的号码
ticket = 1

while ticket <= 10:
    time.sleep(0.5)
    print("准备售出", ticket, "号票")
    print("成功售出", ticket, "号票")
    ticket += 1
# 给while循环添加的else关键字
# 循环中只要不执行break
# 这里的代码就会执行1次[不论while的条件是否为True]
else: 
    print("所有的票都卖完啦~ 正常下班~")

(二)嵌套循环

嵌套循环,就是循环结构里面使用了else,break,continue,if循环,包括后面才提到for循环等等一系列嵌套进去


这里通过改造前面的案例 剪刀石头布猜数字游戏,来进行体现

改造剪刀石头布案例:

"""
需求分析:
    目的:石头剪刀布 游戏开发
    通过循环改造
        每次游戏结束~提示用户是否继续游戏?
        有一种可能:用户永远都不退出?!有
            循环~死循环!
"""
import random

# 第几局游戏
index = 1

# 打印游戏界面
print("     休闲小游戏")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("  石头剪刀布游戏")
print("   游戏中,电脑会自动出招")
print("   玩家根据自己的想法按照提示")
print("   输入自己的招数")
print("   最终:系统会根据电脑的数据")
print("   和玩家的输入数据,进行比较")
print("   最终得到游戏结果")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~")

while True:
    # 电脑出招  computer-电脑
    print("第", index, "次游戏正式开始..")
    print("系统正在数据运算中....")
    print("系统开始出招")
    # 整数
    computer = random.randint(0, 2)  # 0|1|2
    print("系统出招完成!")

    # 提示玩家出招 user-用户 字符串
    user = input("玩家;请输入您的招数(0-石头|1-剪刀|2-布):")

    # 判断输赢
    print("系统正在运算数据中...")
    if (computer==0 and user=="2") or (computer==1 and user=="0") or (computer==2 and user=="1"):
        print("恭喜,玩家获胜,奖励2积分")
    elif computer == int(user):
        print("注意注意:平局平局")
    else:
        print("SORRY,玩家失败,扣除1积分")
    
    # 循环改造代码:
    is_goon = input("尊敬的用户您好,是否继续游戏(Y/N)?")
    index += 1
    if is_goon == "Y":
        print("准备开始下一局游戏")
        continue
    elif is_goon == "N": #
        print("游戏结束")
        break

input("游戏结束,按任意键退出")

改造猜数字游戏:

"""
循环案例
    猜数字
    import的内容~规范要求在文件开头的位置写
    但是~ 某些偶尔只用到一次的情况,可以在使用的地方编写
"""
import time
import random

# 打印界面
print("########################")
print(" 猜数字游戏")
print(" 系统会自动产生1~100的数字")
print(" 用户输入猜测的数字")
print(" 系统会提示用户偏大|偏小")
print(" 直到猜中")
print("########################")
input("按任意键开始游戏")

# 系统产生数字
print("系统正在高速运算中.....")
time.sleep(2)
r = random.randint(1, 100)
print("系统数字已经产生,请按照提示开始操作")

while True:
    # 请用户输入数字
    u = input("请输入您猜测的数字:")
    u = int(u)

    # 判断和提示
    if u > r:
        print("猜测的数字偏大了..\n")
    elif u < r:
        print("猜测的数字偏小了..\n")
    else:
        print("恭喜你,猜中了,就是", r)
        break


八、for循环

返回文章顶部

for 循环也是 python 中的一种循环结构,和 while 循环有着不一样的使用方式

备注1:
有其他语言基础的话,会知道其它编程语言中会有很多种循环,不同的循环可以相互替换[while / do-while / for ],并且互相替换之后对于程序的编写难度/可读性没有提升下降!
备注2:
python语言在诞生之初,定义的方向就是间接(简单易学),明了(可读性),没有多余(可用性)!
传统语法中的多种选着结构if/switch,在python中就被简化成了一种if
传统语法中的多种循环结构,在Python中根据不同的使用场景,简化while/for
while 语法与 for 语法 对比:
while基本语法:用来重复执行代码逻辑
for基本语法:主要针对多个数据进行遍历查看

同样的通过案例来看下for循环的简单运用:
Python_基础语法_流程控制_分支语句_循环语句(3)_第2张图片

临时变量就是,像一次性纸杯这里的X变量就是

执行过程如下图所示:”hello”中的数据按照顺序依次交给 x 在循环中使用,直到所有数 据全部遍历完,循环退出。Python_基础语法_流程控制_分支语句_循环语句(3)_第3张图片
for 循环也是一种循环,所以 for 循环中可以写 break/continue/else

九、range()函数

返回文章顶部

range(起始位,结束前一位,步数)

  • range(5) 输出0到5
  • range(1,5) 输出1到4
  • range(1,5,2) 输出 1 和3

十、综合案例

返回文章顶部

编写一个游戏登录的功能:运用到本章所提到的语法

"""
案例操作:多用户登录

    单个用户?账号+密码+昵称
        用户 = [账号, 密码, 昵称]
        user1 = ["admin", "123", "管理员"]
        user2 = ["wenwenc9", "111", "稳稳c9"]

    多个用户?
        users = [user1, user2]
        等价于
        users = [ ["admin", "123", "管理员"], ["wenwenc9", "111", "稳稳c9"]]
 
    用户登录:
        用户输入:账号 + 密码
        此时,~不能使用成员运算符了!【问题的重点】
            ["admin", "123"] in users   False[缺少昵称]
        这时候,我们就必须得遍历整个列表users~判断账号+密码是否正确
"""
import os

# 系统中的所有用户
users = [ 
    ["admin", "123", "管理员"],
    ["wenwenc9", "111", "wenwne"]
]

# 定义变量~判断用户登录成功(True)或者失败(False)
# 程序刚开始运行的时候,没有用户登录,所以默认False
ok = False
# 登录后的昵称: 没有用户登录的时候~ 没有昵称
n = ""

while True:
    # 多用户登录
    username = input("请输入账号:")
    password = input("请输入密码:")

    # 判断登录是否成功:遍历所有用户
    for u in users:
        # 第一次循环:u -> ["admin", "123", "大牧"]
        if username == u[0] and password == u[1]:
            input("登录成功,按任意键继续")
            ok = True # 登录成功
            n = u[2]     # 记录昵称
            break
    # [所有数据全部遍历完了]~没有发现正确的账号+密码,登录失败
    else:
        input("账号或者密码有误,请重新登录")
        ok = False

    # ok的目的:根据用户登录是否成功,判断要不要展示首页
    if ok == True:
        # 用户登录了,展示首页
        print("    欢迎进入游戏首页界面")
        print("尊敬的用户", n, ",欢迎进入xx游戏")
        input(" 首页功能正在升级中,按任意键继续")

你可能感兴趣的:(Python,python)