首页 > 其他分享 >流程控制(上)

流程控制(上)

时间:2024-10-29 17:49:29浏览次数:8  
标签:语句 控制 缩进 流程 else print 执行 代码

三 、流程控制上

什么是流程?
根据把大象装进冰箱分几步可以解释
1、打开冰箱
2、把大象装进去
3、关冰箱

在程序中流程就是代码执行的过程

在Python当中主要的流程分3大结构:顺序结构(目前)、分支结构、循环结构

  • 顺序结构:程序从头到尾的顺序依次执行每一条 Python 代码。
  • 分支结构(选择结构):程序有选择性的往下执行,相当于有了路A和路B,可以依靠判断条件布尔值来选择执行2条或者以上的路径
  • 循环结构:程序可以选择回头,不断地重复执行同一段代码。

3.1 分支结构

Python的缩进语法

Python 的代码结构确实非常独特,创始人 设计 通过 1个tab缩进 来组织代码块的规则

所以python中的缩进是有特殊含义的,表示语句块的进入和退出,不可以随便使用空格和缩进。

	a = 1 # 报错,因为前面有没意义的缩进或者空格

python通过 缩进(tab键) 来表示 里外结构,例如流程控制的循环和分支

# 缩进配合if 来表示 语句块的进入

if 条件判断(bool):   
    表示if内部,条件判断成立进入的代码  # 增加缩进,进入if
表示if外部,与if无关的代码 # 取消缩进,结束if

3.1.1 单分支

中文: 如果 年龄>=18 启动原神

  • 单分支语法

    if 判断语句:
        # 进入if语句
        当判断语句成立的时候(True),才会执行的代码1
        当判断语句成立的时候(True),才会执行的代码2
        当判断语句成立的时候(True),才会执行的代码3
        .....
    print("哈哈") # 结束if语句
    
    age = int(input("请输入年龄:"))
    
    if age >= 18:
        print("原神,启动")
    print("^_^")
    

3.1.2 双分支

如果条件为True时候,执行特定区域代码,条件为False的时候,也执行特定区域的代码

  • if else的语法结构
if 条件布尔值:
    条件成立执行的代码1
    条件成立执行的代码2
    ......
else:
	条件不成立执行的代码1
    条件不成立执行的代码2
    .....

中文理解: if(如果)  else(否则)
注意:双向分支只会执行其中1个分支,不可能同时输出  及格和不及格
# 如果 分数大于60 及格,否则 不及格

score = float(input("请输入分数:"))
if score >= 60:
    print("及格")
else:
    print("不及格")

3.1.3 多分支

某种年龄分段为

童年:0岁—6岁

少年:7岁—17岁

青年:18岁—40岁

中年:41—65岁

老年:66岁以后

# 从上往下判断,如果为true了就不会再往下执行了
if 布尔值1:
    执行语句1
elif 布尔值2:
    执行语句2
elif 布尔值3:
    执行语句3
else:
    执行语句4
	
中文理解:if(如果)  elif(否则如果)  else(否则)

elif => else if
# 年龄分层
age = int(input("请输入年龄:"))

if 0 <= age <= 6:
    print("童年..")
elif 7 <= age <= 17:
    print("少年..")
elif 18 <= age <= 40:
    print('青年..')
elif 41 <= age <= 65:
    print('中年')
else:
    print("老年")
    
ps: elif 可以有0个 或者 多个  看实际分层需求来
ps: else 可以有0个 或者 1个  else只能放最后

3.1.4 嵌套分支

嵌套就是套娃
在这里插入图片描述

模板举例

if 表达式1:
	if 表达式2:
        语句块3
	else:
        语句块4
else:
    语句块2

比如,在判断年龄分层之前,要求年龄必须要为 正数

age = int(input("请输入年龄:"))
if age > 0:
    if 0 < age <= 6:
        print("~~正在童年阶段~~")
    elif 7 <= age <= 17:
        print("~~正在少年阶段~~")
    elif 18 <= age <= 40:
        print("~~正在青年阶段~~")
    elif 41 <= age <= 65:
        print("~~正在中年阶段~~")
    else:
        print("~~正在老年阶段~~")
else:
    print("请输入正确年龄")

注意:嵌套分支了一定要注意缩进结构

上图中有3层关系

在这里插入图片描述

红色区域 是一层 if else 结构

蓝色区域的 属于 红色区域的 内部代码

绿色区域的 属于 蓝色区域的 内部的代码

  • 案例:购物打折计算
"""
    编写一个程序
    	用户输入 商品单价,购买数量,收款余额
    	程序输出 打折后找零多少钱
    	
   	打折制度
    如果购物金额超过100元但不超过200元,享受9折优惠
    如果购物金额超过200元但不超过500元,享受8折优惠
    如果购物金额超过500元,享受7折优惠
    100元及以下不打折
    	
"""
price = float(input("请输入商品单价:"))
count = int(input("请输入购买数量:"))
amount = float(input("请输入付款金额:"))
total = price * count
# 打折制度,对total进行 修改
if 100 < total <= 200:
    total = total * 0.9
elif 200 < total <= 500:
    total = total * 0.8
elif 500 < total:
    total = total * 0.7
else:
    total = total * 1.0

if amount > total:
    print("应该找零: ", amount - total)
elif amount == total:
    print("不用找,刚好够")
else:
    print("钱不够,刷信用卡")

标签:语句,控制,缩进,流程,else,print,执行,代码
From: https://blog.csdn.net/2301_80202670/article/details/143303000

相关文章

  • 【系统设计】深入理解HTTP缓存机制:从Read-Through缓存到HTTP缓存的交互流程
    在现代Web开发中,缓存机制扮演着至关重要的角色。它不仅提升了用户体验,还极大地优化了资源的使用效率。在这篇博文中,我们将从“Read-Through”缓存的概念出发,深入探讨HTTP缓存的工作原理和交互流程,并详细描述max-age、Last-Modified、以及ETag在缓存管理中的重要性。什么是R......
  • 国标GB28181设备管理软件EasyGBS国标GB28181视频平台SIP信令注册流程是怎样的?
    在当今快速发展的科技时代,视频监控技术作为安全防范的重要手段,已经广泛应用于各行各业。从公共场所的安全监控到企业内部的生产监管,再到智能家居的日常防护,视频监控无处不在地守护着我们的安全。然而,随着监控规模的不断扩大和监控需求的日益复杂,如何高效、智能地管理这些监控资......
  • 青否数字人直播带货怎么操作效果好?一文讲清所有流程!
    随着人工智能技术的不断成熟,以数字人直播为首的各项应用逐渐被各大中小型企业引进,连带着与之相关的各类话题,如数字人直播带货怎么操作等也开始备受关注。而就目前的使用情况来看,绝大多数企业都或多或少地遭遇过数字人直播违规和数字人直播带货效果不佳等问题,让自身蒙受损失......
  • USB协议详解第24讲(USB包-控制传输包详解)
    1.控制传输包结构控制传输由三个阶段组成,设置阶段、可选的数据阶段、状态阶段,其中设置阶段由1个SETUP事务组成,数据阶段由0个或者多个IN/OUT事务组成,状态阶段由1个IN/OUT事务组成,其中每个阶段事务包结构有所不同,下图可以直观看出控制传输写传输的包结构组成。2.设置阶段包详解......
  • angular-变更检测流程理解
    变更检测是在js事件循环过程中,将组件的数据变化反映到视图上的一种机制具体过程如下: 几点关键的:1、子组件的ngonchangengDoCheckngAfterContentChecked是在父组件更新dom(第9步)前完成2、在所有子组件的afterViewChecked钩子执行之前,父组件的ViewChild查询表就会更新,在所......
  • DC/DC直流电源升压可调电压控制输出模块12v24v供电0-5v/0-10v转0-50v/80v/100v/110v/1
    特点效率高达75%以上1*2英寸标准封装单电压输出可直接焊在PCB上工作温度:-40℃~+75℃阻燃封装,满足UL94-V0要求温度特性好电压控制输出,输出电压随控制电压线性变化应用GRB系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为:4.5~9V、9~18V、18~36V及36~7......
  • FOC矢量控制
    FOC(FieldOrientedControl,磁场定向控制)是控制三相交流电机(如直线电机和旋转电机)的一种常用矢量控制方法。它通过将三相电机的定子电流转化为与转子磁场对齐的两个独立分量:磁通分量和转矩分量,从而能够精确控制电机的磁场和转矩,达到优化电机性能的目的。FOC的关键步骤:电流采样:测......
  • Anthropic Computer Use for Mac:释放Mac潜力的AI控制工具
    在人工智能技术飞速发展的今天,我们对于计算机的控制和交互方式也在不断进化。最近,一款名为AnthropicComputerUseforMac的工具引起了我的注意。这是一款专为Mac系统设计的AI控制工具,它不仅能够在Mac上原生运行,还能通过macOS命令和工具直接控制系统,提供了一系列令人兴奋的功......
  • 基于神经网络为无人机开发模型预测控制 (MPC) 方案(Matlab代码实现)
         ......
  • 【C++练习】基于函数嵌套调用的点餐流程
    题目:基于函数嵌套调用的点餐系统实现描述:        需要实现一个简化的点餐系统,该系统能够处理多位顾客的点餐、支付以及提供食物的过程。系统的主要流程通过函数嵌套调用来实现,包括展示菜单、点餐、生成账单、支付以及提供食物等功能。具体要求:菜单展示:使用 showMe......