当前位置: 首页 > news >正文

6.1 Python 单分支结构 if语句

第6章 程序流程控制

6.1 单分支结构 if语句

6.1.1 顺序结构

控制流指的是控制程序的执行流程。
Python控制流有三种结构:顺序结构分支结构循环结构
【体验代码】

# 定义2个变量
a = 10
b = 20 

# 计算2个变量的和
sum = a + b

# 输出和
print(sum)

【终端输出】

30

分析上述代码的执行顺序:
第一句、第二句代码执行赋值;
第三句代码计算2个变量的和;
第四句执行打印语句。
像这样从上到下一行一行执行的流程,就是控制流的中的顺序结构。

在这里插入图片描述

6.1.2 单分支结构 if语句

【体验代码】

# 利用input函数输入
identity  = input('请问你是学生吗(请输入是或不是):')

# if 条件判断语句
# == 比较运算符,判断左右两边是否相等
if identity == '是' :
    print('学生购买火车票可以享受5折优惠!')
if identity == '不是' :      
    print('不是学生不享受购票优惠!')

【终端输出】

不是学生不享受购票优惠!

identity [aɪˈdentəti]:身份。
运行上述代码,当我们输入不同的内容,终端会输出不同的结果。
当我们输入,输出的是学生购买火车票可以享受5折优惠!
当我们输入不是,输出的是不是学生不享受购票优惠!
像上面这样根据不同条件的结果,执行不同的代码块,就是Python控制流中的分支结构,if 语句就称之为条件判断语句。

在这里插入图片描述

if语句语法
一个if 语句包含5个要素:

在这里插入图片描述

语法讲解
一个 if 语句包含有五个要素:
① 关键词"if";② “条件”;③ 英文冒号":";④ 缩进;⑤ 代码块

注意事项
1、注意键词if 后面有空格,没有空格程序会报错。
2、条件后面的冒号必须是英文冒号,若使用中文冒号,程序会报错:SyntaxError: invalid character (无效字符)。
3、注意代码块前有缩进(缩进是指四个空格),这是我们学的第一个缩进,缩进在Python中是一种语法格式,必须严格执行。
4、代码块可以是一句代码,也可以是多句代码。

缩进的实现
1、方法一:在if语句后输入英文冒号后回车,系统会自动缩进4个空格。
2、方法二:按tab键可以也可以实现缩进4个空格。
3、方法三:连续敲击4次空格键,可以实现缩进4个空格。
4、方法四:按Ctrl+可以实现向右缩进4个空格,按Ctrl+可以实现向左缩进4个空格。

代码优化

# 利用input函数输入
identity  = input('请问你是学生吗(请输入是或不是):')

# if 条件判断语句
# == 比较运算符,判断左右两边是否相等
if identity == '是' :
    print('学生购买火车票可以享受5折优惠!')
else:    
    print('不是学生不享受购票优惠!')

【终端输出】

不是学生不享受购票优惠!

我们的第一段代码中文释义为:
如果你是学生,购买火车票可以享受5折优惠,如果你不是学生,不享受购票优惠!
我们的第二段代码中文释义为:
如果你是学生,购买火车票可以享受5折优惠,否则不享受购票优惠!
观察上述代码,我用else: 替代了我们最开始的if identity == '不是' :
大家发现if...else...语句书写更为简洁方便。
if...else...相当于中文的【如果…就…;否则就….】。

代码讲解
第一行input 获取终端输入的值,这里要注意input 获取的值是字符串类型,如果是进行数字的判断,记得要转换数据类型。
第二行,if 语句的条件是 identity == '是' 如果输入的内容为,输入的值满足 if 语句的条件,就会执行 if 语句的代码块,即'学生购买火车票可以享受5折优惠!'
如果输入的内容为不是,输入的值不满足 if 语句的条件,程序就会选择 else 语句的代码块,即'不是学生不享受购票优惠!'
这里 else 语句实现的是【如果…就…;否则…】中【否则…】的功能。
else 语句的语法:① 关键词"else";② 英文冒号":";③ 4个空格的缩进;④ 代码块。

else 注意事项
1、关键词else 与 if 对齐;
2、else 后的代码块也有4个空格的缩进。

6.1.3 总结

if 语句是Python中比较常用的,它的5要素一定要牢记;
比较容易出错的是英文冒号和缩进。

6.1.4 课堂练习

下面我们来用if语句写一段登录网站验证身份的代码:
username = admin
password = 123456

# input函数从终端输入用户名和密码
username = input ('请输入用户名:')
password = input ('请输入密码:')

# 判断用户名和密码输入是否正确
# 判断的条件有2个:一个是用户名,一个是密码
# 两个条件是且的关系,因此用and逻辑与运算符
if username == 'admin' and password == '123456' :
    print('身份验证成功')
else:
    print('身份验证失败,用户名或密码错误!')

【终端输出】

身份验证失败,用户名或密码错误!

提醒:判断两个对象是否相等用==
大家可以输入不同的用户名和密码进行验证。

6.1.5 课后练习

根据流程图,拟写代码。
在这里插入图片描述

相关文章:

  • 把subset_data的子集重新放到总群allmerge中找marker基因 findallmarkers
  • 6.2 python 多分支结构if...elif...else 语句
  • 6.3 Python if语句 条件判断嵌套
  • 细胞打分 addmodule addmodule对所有细胞进行循环评分
  • 6.4 序列及range函数
  • 5_addmodule空转spatial空转打分模块inflammatory炎症评分空转炎症评分 addmodule seurat
  • 6.5 python while 循环
  • 6.6 Python for 循环
  • 批量读取文件夹下所有excel文件里的内容,放入列表 把所有不管行列名如何excel合并成一个大的excel 批量读取excel,批量合并excel
  • 6.7 continue 和 break 语句
  • 批量多个excel合并成一个大的excel
  • 7.1 python 自定义函数的创建及调用
  • 7.2 Python return 语句
  • 6_ggplot可视化addmodule得到的炎症评分自己选择颜色 自定义更改显示的颜色 seurat得到的单细胞数据
  • 8.1 Python 类 对象 属性 方法
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Docker: 容器互访的三种方式
  • es6(二):字符串的扩展
  • HTML中设置input等文本框为不可操作
  • Java-详解HashMap
  • PAT A1120
  • PHP面试之三:MySQL数据库
  • Tornado学习笔记(1)
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于遗传算法的优化问题求解
  • 利用jquery编写加法运算验证码
  • 两列自适应布局方案整理
  • 前端面试之闭包
  • 前端之React实战:创建跨平台的项目架构
  • 树莓派 - 使用须知
  •  一套莫尔斯电报听写、翻译系统
  • puppet连载22:define用法
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (03)光刻——半导体电路的绘制
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (一)RocketMQ初步认识
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)JAVA中的堆栈
  • (转)scrum常见工具列表
  • .Mobi域名介绍
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET连接数据库方式
  • .NET运行机制
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)