[Python学习日记-10] Python中的流程控制(if...else...)

news2024/9/22 13:31:57

简介

        假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动作的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办?很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

        基本上在各个语言中,都是用语法 if...else... 来实现,可分为单分支、双分支、多分支

缩进

        如果你看过其他人写的代码,你会发现每行代码之间会有不同的缩进,会使代码非常有层次感,以下面的 if 代码为例

if 0 < number < 10:
    print("this number is less than 10.")
else:
    print("this number is greater than 10.")

        上面的 if 代码里,每个条件的下一行都缩进了4个空格,这是为什么呢?这就是 Python 的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序将不会知道当条件成立时要去执行那些代码。
        在其它的语言里,大多通过 {} 来确定代码块,比如 C、C++、Java、JavaScript 都是这样,看一个 JavaScript 代码的例子

var age = 56
if(age < 50){
    console.log("还能折腾")
    console.log("可以执行多行代码")
}else{
    console.log("太老了")
}

        在有 {} 来区分代码块的情况下,缩进的作用就只剩下让代码变的整洁了。而Python是门超级简洁的语言,发明者定是觉得用 {} 太丑了,所以索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。

Python的缩进有以下几个原则:

  • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
  • 同一级别的代码,缩进必须一致
  • 官方建议缩进用4个空格,当然你也可以用2个(如果你想被人笑话的话)

单分支

一、语法结构

if 条件:

        满足条件时要执行的代码 

注意:

1、冒号(:)是判断的语法格式必须写

2、在 if 下需要执行的代码必须要往后缩进4个空格或者一个 Tab(换挡键),如果没有以 if 为基础缩进将表示该代码和 if 并没有什么关系

二、代码示例

today_weather = "rain_day"

#单分支
if today_weather == "rain_day":
    print("take your umbrella with you ")

 

 

双分支

一、语法结构

if 条件:

        满足条件时要执行的代码

else:

        不满足条件时要执行的代码

二、代码示例

age_of_jove = 58

# 双分支
if age_of_jove > 50:
    print("Too old, time to retire..")
    print("hahah")
else:
    print("还能折腾几年!")

多分支

一、语法结构

if 条件1:

        满足条件1时要执行的代码

elif 条件2:

        满足条件2时要执行的代码

elif 条件3:

        满足条件3时要执行的代码

else:

        不满足上面所有条件时要执行的代码

注意:

1、代码从上往下进行匹配,若匹配中后将会执行该条件下的代码,执行完毕后将会退出

2、else 可以选择不写,非固定结构 

二、代码示例

age = 35

# 多分支
if age < 12:
    print("you are child")
elif age < 18:
    print("you are teenager")
elif age < 30:
    print("you are young man")
else:
    print("your are oil middle-age man")

练习 

一、开发匹配成绩的小程序

题目:

成绩有ABCDE5个等级,与分数的对应关系如下

A        90-100
B        80-89
C        60-79
D        40-59
E        0-39

程序启动,提示用户输入分数,根据分数打印等级

答案:

while True:    # 本篇没有学到 while 循环,这里不使用 while 循环也能实现
    exam_score = int(input("输入你的成绩:"))
    if exam_score <= 100 and exam_score >= 0:
        if exam_score < 40:
            print("极差 E")
        elif exam_score < 60:
            print("不及格 D")
        elif exam_score < 80:
            print("及格 C")
        elif exam_score < 90:
            print("良好 B")
        else:
            print("优异 A")
        break
    else:
        print("输入成绩错误")

二、开发猜随机数的小程序

题目:

启动程序生成一个0-10的随机数,提示用户输入一个整数,用户有5次机会猜数,若输入没有中则提示大了还是小了,超出范围则提示用户超出了猜数的范围,成功则提示猜中了然后退出循环,若循环次数使用完了则提示游戏结束并显示正确的数字

答案: 

import random

number = random.randint(0,10)
count = 5

while count > 0:
    print("请输入你心目中的号码,你有", count, '次机会:')
    user_number = int(input())
    if user_number == number:
        print("恭喜你,猜对了")
        break
    elif user_number < number:
        print("不好意思,猜小了")
    elif user_number > number and user_number <= 10:
        print("不好意思,猜大了")
    else:
        print("超出范围请重猜")
    count -= 1
if count == 0:
    print("游戏结束,正确数字为", number)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2054345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合宙LuatOS AIR700 IPV6 TCP 客户端向NodeRed发送数据

为了验证 AIR700 IPV6 &#xff0c;特别新建向NodeRed Tcp发送的工程。 Air700发送TCP数据源码如下&#xff1a; --[[ IPv6客户端演示, 仅EC618系列支持, 例如Air780E/Air600E/Air780UG/Air700E ]]-- LuaTools需要PROJECT和VERSION这两个信息 PROJECT "IPV6_SendDate_N…

Leetcode面试经典150题-155.最小栈

解法都在代码里&#xff0c;不懂就留言或者私信 我写了两种解法&#xff0c;建议选择双栈的&#xff0c;感觉这才是考察点 /**一般解法&#xff1a;过个笔试没问题&#xff0c;建议用双栈的方法 */ class MinStack2 {/**至少应该有一个栈用于保存数据 对于push和pop以及top的话…

STM32之SPI读写W25Q128芯片

SPI简介 STM32的SPI是一个串行外设接口。它允许STM32微控制器与其他设备&#xff08;如传感器、存储器等&#xff09;进行高速、全双工、同步的串行通信。通常包含SCLK&#xff08;串行时钟&#xff09;、MOSI&#xff08;主设备输出/从设备输入Master Output Slave Input&…

【React Hooks - useState状态批量更新原理】

概述 所谓批量处理就是当在同时更新多个状态下&#xff0c;能够统一批量处理更新&#xff0c;避免了重复渲染。在React17及之前版本&#xff0c;React只会在合成事件以及生命周期内部进行批量处理&#xff0c;在setTimeout、Promise、Fetch等异步请求中&#xff0c;则不会自动…

【GH】【EXCEL】P1: Write DATA SET from GH into EXCEL

文章目录 WriteFast WriteGH data material :GH process and components instructionFast Write DataFast Write Data & Clear DataFast Write to Cell EXCEL written results Write by ColumnGH data material :Compile ColumnGH process and components instructionWrite…

三、Kafka副本

2、创建2个分区两个副本 /usr/local/kafka/bin# ./kafka-topics.sh --bootstrap-server 192.168.58.130:9092 --create --topic atguigu2 --partitions 2 --replication-factor 23、查看topic详细信息 /usr/local/kafka/bin# ./kafka-topics.sh --bootstrap-server 192.168.5…

如何理解CAPL—Test编程中的测试对象

前言&#xff1a;CAPL—Test编程中的对象&#xff0c;是一个比较复杂的概念&#xff0c;对象的作用是作为Test特定函数的参数。来执行特定的功能&#xff08;这是比较复杂的一个概念&#xff0c;下文会慢慢讲解&#xff09;。 注意&#xff1a;因为翻译的问题&#xff0c;有些…

arm:ADC模数转换器

比较器 AD&#xff1a; 精度&#xff1a;10位 转换速率&#xff1a;500 KSPS 量程&#xff1a;0~3.3v void adc_init(void) {ADCCON (1 << 14) | (49 << 6) | (1 << 1); }unsigned short adc_read(void) {unsigned short value ADCDAT0;while(~(ADCCON &am…

华为M60首次降价,消费回暖能延续?

导语 8月15日&#xff0c;华为Mate 60系列首次官宣降价&#xff01;能否带动消费电子进一步回暖&#xff1f; 在当前全球经济形势复杂多变的背景下&#xff0c;各行各业都在寻求新的增长点和突破口。 消费电子市场作为科技与日常生活紧密结合的重要领域&#xff0c;其发展态势一…

基于HarmonyOS的宠物收养系统的设计与实现(一)

基于HarmonyOS的宠物收养系统的设计与实现&#xff08;一&#xff09; 本系统是简易的宠物收养系统&#xff0c;为了更加熟练地掌握HarmonyOS相关技术的使用。 项目创建 创建一个空项目取名为PetApp 首页实现&#xff08;组件导航使用&#xff09; 官方文档&#xff1a;组…

微服务中的Sidecar模式

微服务中的Sidecar模式 什么是sidecarsidecar如何工作Sidecar 代理服务注册发现Sidecar 代理异构服务发起服务调用异构服务如何被调用 常见应用以MOSN流量接管为例使用 sidecar 模式的优势sidecar和面向切片编程AOP的关系参考 什么是sidecar sidecar是服务网络架构的产物。 S…

【网络】 arp 命令 得到网段内所有物理设备ip

我的笔记本和 NVIDIA Jetson Orin 都位于同一个 192.168.1.x 的网段内&#xff0c;我想远程访问 Orin&#xff0c;但我不知道orin的ip 方法 1: 使用 arp 命令 打开命令提示符&#xff1a; 按下 Win R 键&#xff0c;打开“运行”对话框。输入 cmd 并按 Enter 键打开命令提示符…

JAVA类加载过程/类装载的执行过程/java类加载机制/JVM加载Class文件的原理机制?

JAVA类加载过程/类装载的执行过程/java类加载机制/JVM加载Class文件的原理机制&#xff1f; 类加载的过程主要分为三个部分&#xff1a;&#xff08;加链初&#xff0c;验准解&#xff09; 加载链接初始化 而链接又可以细分为三个小部分&#xff1a; 验证准备解析 骚戴理解…

散点图适用于什么数据 thinkcell散点图设置不同颜色

在数据可视化的众多工具和技巧中&#xff0c;散点图是一种极为有效的方式&#xff0c;能够揭示变量之间的关系&#xff0c;尤其是在探索数据集的相关性、分布趋势、集群现象时。而在众多助力于制作高质量散点图的工具中&#xff0c;think-cell插件以其高效的操作和丰富的功能&a…

重定向与追加

1、>和>> > 【重定向】 如果文件不存在&#xff0c;则创建&#xff0c;并将内容输入到文件&#xff1b; 如果文件存在&#xff0c;则先清空文件&#xff0c;然后将内容输入到文件&#xff1b;>> 【追加】 如果文件不存在&#xff0c;则创建&…

自监督学习self-supervised learning

Tags: #tutorial #machine-leanring #self-supervised 目录&#xff1a; The Importance of Self-Supervised Learning Popular Learning Methods Introduction to Self-Supervised Learning 1. The Inportance of Self-Supervised Learning 监督学习(supervised learnin…

【面试】tomcat类加载机制

目录 1. 说明2. 主要类加载器2.1 Bootstrap类加载器2.2 Common类加载器2.3 Catalina类加载器2.4 Shared类加载器2.5 Web应用类加载器2.5 JSP类加载器 3. 图示4. 特点5. 加载顺序6. 面试题 1. 说明 1.tomcat的类加载机制是违反了双亲委派原则的&#xff0c;对于一些未加载的非基…

初识指针3の学习笔记

目录 1>>前言 2>>冒泡排序 3>>二级指针 4>>指针数组 5>>指针数组模拟二维数组 6>>结语 1>>前言 今天我会继续分享一些我做的笔记&#xff0c;以及我对指针的理解&#xff0c; 后续会持续分享指针几天&#xff0c;毕竟指针的内…

实验室安全分级分类管理系统在高校中的具体应用

盛元广通高校实验室安全分级分类管理系统的构建&#xff0c;旨在通过科学合理的管理手段&#xff0c;提高实验室的安全水平&#xff0c;保障师生的人身安全&#xff0c;防止实验事故的发生。这一系统通常包括实验室安全等级评估、分类管理、风险控制、安全教育与培训、应急响应…

[Qt][绘图][上]详细讲解

目录 0.为什么&#xff1f;1.绘图API核心类2.设置画笔3.设置画刷4.设置画家1.移动画家位置2.保存/加载画家的状态 0.为什么&#xff1f; 虽然Qt已经内置了很多的控件&#xff0c;但是不能保证现有控件就可以应对所有场景&#xff0c;很多时候&#xff0c;需要更强的"定制…