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

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

简介

缩进

单分支

双分支

多分支

练习 

简介

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

        基本上在各个语言中,都是用语法 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")breakelse:print("输入成绩错误")

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

题目:

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

答案: 

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】Python实现XGBoost算法的详细理论讲解与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Python编码系列—Python数据可视化:Matplotlib与Seaborn的实战应用

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Ps:首选项 - 单位与标尺

Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K Photoshop 首选项中的“单位与标尺” Units & Rulers选项卡允许用户根据工作需求定制 Photoshop 的测量单位和标尺显示方式。这对于保持工作的一致性和精确性&#xff0c;尤其是在跨设备或跨平台…

专题--自底向上的计算机网络(物理层)

目录 计算机网络概述 物理层 数据链路层 网络层 运输层 应用层 网络安全 详细见http://t.csdnimg.cn/MY5aI http://t.csdnimg.cn/8Ipa4 http://t.csdnimg.cn/uvMxS 信道复用技术不仅在物理层有运用&#xff0c;在数据链路层也确实需要信道复用技术。‌ 数据链路层是…

第N8周:使用Word2vec实现文本分类

本文为365天深度学习训练营 中的学习记录博客原作者&#xff1a;K同学啊 一、数据预处理 任务说明: 本次将加入Word2vec使用PyTorch实现中文文本分类&#xff0c;Word2Vec 则是其中的一种词嵌入方法&#xff0c;是一种用于生成词向量的浅层神经网络模型&#xff0c;由Tomas M…

隐语隐私计算实训营「数据分析」第 5 课:隐语PSI介绍及开发实践

深入理解隐语(SecretFlow)中的PSI技术 隐私集合求交(Private Set Intersection, PSI)是隐私计算中的一个重要技术,它允许多方在不泄露自己数据的前提下找出共同的数据交集。在本文中,我们将深入探讨SecretFlow(隐语)中PSI的实现和应用。 PSI的基本概念 PSI是一种特殊的安全多…

鸿蒙内核源码分析(时钟任务篇)

时钟概念 时间是非常重要的概念&#xff0c;我们整个学生阶段有个东西很重要,就是校园铃声. 它控制着上课,下课,吃饭,睡觉的节奏.没有它学校的管理就乱套了,老师拖课想拖多久就多久,那可不行,下课铃声一响就是在告诉老师时间到了,该停止了让学生HAPPY去了. 操作系统也一样&…

php源码编译与初始化

1 php源码编译 解压 yum install -y bzip2 # 安装解压工具 tar -xf php-7.4.12.tar.bz2 # 解压文件./condigure ./configure --prefix/usr/local/php --with-config-file-path/usr/local/php/etc --enable-fpm --with-fpm-usernginx --with-fpm-groupnginx --with-curl --wi…

线程面试题

1.JDK自带的线程池有哪些&#xff1f; 2.线程池中核心线程数与最大线程数与缓冲任务队列的关系&#xff1f; 先使用核心线程执行任务。 当核心线程不足时&#xff0c;新任务入队列等待。 当队列满且线程数未达最大值时&#xff0c;增加非核心线程执行任务。 当队列满且线程…

Leetcode每日刷题之209.长度最小的子数组(C++)

1.题目解析 根据题目我们知道所给的数组均是正整数&#xff0c;我们需要找到的是该数组的子数组&#xff0c;使其子数组内所有元素之和大于或等于给出的目标数字target&#xff0c;然后返回其长度&#xff0c;最终找出所以满足条件的子数组&#xff0c;并且要返回长度最小的子数…

网络硬盘录像机NVR程序源码海思3520D NVR 安防监控智能升级运用方案

随着安防技术的不断发展&#xff0c;传统的监控系统正逐步向智能化方向转变。海思Hi3520D作为一款高性能的网络视频处理芯片&#xff0c;在NVR&#xff08;网络视频录像机&#xff09;领域有着广泛的应用。本方案旨在探讨如何利用海思Hi3520D芯片的强大功能对现有的NVR系统进行…

vue2使用天地图

需求&#xff1a;用vue2使用天地图展示对应点位数据以及开发中出现的问题等&#xff0c;其实天地图的写法和百度地图差不多 注意&#xff01;&#xff01;&#xff01;天地图的接口不稳定&#xff0c;时常报错418&#xff0c;官网也是一样的情况&#xff0c;推荐还是使用百度或…

C++:C/C++的内存管理

目录 C/C内存分布 C语言中动态内存管理方式 C内存管理方式 new/delete操作内置类型 new/delete操作自定义类型 operator new与operator delete函数 new和delete的实现原理 定位new表达式 常见问题 malloc/free和new/delete的区别 内存泄漏 C/C内存分布 我们先来看以…

【机器学习】(基础篇七) —— 神经网络

神经网络 神经网络是一种模仿人脑神经元结构的计算模型&#xff0c;用于处理复杂的数据模式识别和预测问题。它由大量简单的处理单元&#xff08;称为“神经元”或“节点”&#xff09;组成&#xff0c;这些单元通过连接权重相互连接。神经网络可以学习从输入数据到输出结果之…

GitLab Merge Request流水线

GitLab Merge Request 流程文档 为了提升代码质量&#xff0c;让开发人员参与代码review&#xff0c;现在输出Merge Request的流程文档&#xff1a; 1.项目创建各自开发者的分支&#xff0c;命名规则是dev_名字首字母&#xff0c;比如我是dev_cwq.然后把本地分支推到远端orgin…

2024.8.19 学习记录 —— 作业

一、TCP机械臂测试 #include <myhead.h>#define SER_PORT 8888 // 与服务器保持一致 #define SER_IP "192.168.0.114" // 服务器ip地址int main(int argc, const char *argv[]) {// 创建文件描述符打开键盘文件int fd open("/dev/input/event1…

【数学建模】趣味数模问题——舰艇追击问题

问题描述 某缉私舰位于走私船以东 d 10 km&#xff0c;走私船以匀速 u 8 km/h 向北沿直线行驶。缉私舰立即以速度 v 12 km/h 追赶。缉私舰使用雷达进行跟踪&#xff0c;保持瞬时速度方向始终指向走私船。求解缉私舰的追逐路线和追上走私船所需的时间。 方法 理论求解&…

NIO中的异步—ChannelFuture、CloseFuture以及异步提升在NIO中的应用

ChannelFuture 客户端调用connect后返回值为ChannelFuture对象&#xff0c;我们可以利用ChannelFuture中的channel()方法获取到Channel对象。 由于上述代为为客户端实现&#xff0c;若想启动客户端实现连接操作&#xff0c;必须编写服务端代码&#xff0c;实现如下&#xff1a;…

python中的randint如何使用

python中的randint用来生成随机数&#xff0c;在使用randint之前&#xff0c;需要调用random库。random.randint()是随机生成指定范围内的整数&#xff0c;其有两个参数&#xff0c;一个是范围上限&#xff0c;一个是范围下限。 具体用法如下&#xff1a; import random print…

USB3.2 摘录(四)

系列文章目录 USB3.2 摘录&#xff08;一&#xff09; USB3.2 摘录&#xff08;二&#xff09; USB3.2 摘录&#xff08;三&#xff09; USB3.2 摘录&#xff08;四&#xff09; 文章目录 系列文章目录8 协议层&#xff08;Protocol Layer&#xff09;8.8 三个参数地址信息&…