热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python分支结构使用if关键字_从零开始学Python—第五课:分支结构

原标题:从零开始学Python—第五课:分支结构应用场景迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码

原标题:从零开始学Python—第五课:分支结构

应用场景

迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关,还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为“分支结构”或“选择结构”。给大家一分钟的时间,你应该可以想到至少5个以上这样的例子,赶紧试一试。

if语句的使用

在Python中,要构造分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名。下面的例子中演示了如何构造一个分支结构。

"""

用户身份验证

Version: 0.1

Author: 骆昊

"""

username = input('请输入用户名: ')

password = input('请输入口令: ')

# 用户名是admin且密码是123456则身份验证成功否则身份验证失败

if username == 'admin' and password == '123456':

print('身份验证成功!')

else:

print('身份验证失败!')

需要说明的是,不同于C++、Java等编程语言,Python中没有用花括号来构造代码块而是使用了缩进的方式来表示代码的层次结构,如果if条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以了。换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块,相当于是一个执行的整体。缩进可以使用任意数量的空格,但通常使用4个空格,强烈建议大家不要使用制表键来缩进代码,如果你已经习惯了这么做,可以设置代码编辑工具将1个制表键自动变成4个空格,很多的代码编辑工具都支持这项功能。

提示:if和else 的最后面有一个:,它是用英文输入法输入的冒号;程序中输入的'、"、=、(、)等特殊字符,都是在英文输入法状态下输入的。有很多初学者经常不注意这一点,结果运行代码的时候就会遇到很多莫名其妙的错误提示。

强烈建议大家在写代码的时候都

打开英文输入法(注意是英文输入法而不是中文输入法的英文输入模式),这样可以避免很多不必要的麻烦。

当然如果要构造出更多的分支,可以使用if...elif...else...结构或者嵌套的if...else...结构,下面的代码演示了如何利用多分支结构实现分段函数求值。

"""

分段函数求值

Version: 0.1

Author: 骆昊

"""

x = float(input('x = '))

if x > 1:

y = 3 * x - 5

elif x >= -1:

y = x + 2

else:

y = 5 * x + 3

print(f'f({x}) = {y}')

当然根据实际开发的需要,分支结构是可以嵌套的,例如判断是否通关以后还要根据你获得的宝物或者道具的数量对你的表现给出等级(比如点亮两颗或三颗星星),那么我们就需要在if的内部构造出一个新的分支结构,同理elif和else中也可以再构造新的分支,我们称之为嵌套的分支结构,也就是说上面的代码也可以写成下面的样子。

"""

分段函数求值

Version: 0.1

Author: 骆昊

"""

x = float(input('x = '))

if x > 1:

y = 3 * x - 5

else:

if x >= -1:

y = x + 2

else:

y = 5 * x + 3

print(f'f({x}) = {y}')

说明: 大家可以自己感受和评判一下这两种写法到底是哪一种更好。在

Python之禅中有这么一句话:“Flat is better than nested”,之所以提倡代码“扁平化”是因为嵌套结构的嵌套层次如果很多,会严重的影响代码的可读性,所以能使用扁平化结构时就不要使用嵌套结构。

一些例子

例子1:英制单位英寸与公制单位厘米互换。

"""

英制单位英寸和公制单位厘米互换

Version: 0.1

Author: 骆昊

"""

value = float(input('请输入长度: '))

unit = input('请输入单位: ')

if unit == 'in' or unit == '英寸':

print('%f英寸 = %f厘米' % (value, value * 2.54))

elif unit == 'cm' or unit == '厘米':

print('%f厘米 = %f英寸' % (value, value / 2.54))

else:

print('请输入有效的单位')

例子2:百分制成绩转换为等级制成绩。

要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。

"""

百分制成绩转换为等级制成绩

Version: 0.1

Author: 骆昊

"""

score = float(input('请输入成绩: '))

if score >= 90:

grade = 'A'

elif score >= 80:

grade = 'B'

elif score >= 70:

grade = 'C'

elif score >= 60:

grade = 'D'

else:

grade = 'E'

print('对应的等级是:', grade)

例子3:输入三条边长,如果能构成三角形就计算周长和面积。

"""

判断输入的边长能否构成三角形,如果能则计算出三角形的周长和面积

Version: 0.1

Author: 骆昊

"""

a = float(input('a = '))

b = float(input('b = '))

c = float(input('c = '))

if a + b > c and a + c > b and b + c > a:

peri = a + b + c

print(f'周长: {peri}')

half = peri / 2

area = (half * (half - a) * (half - b) * (half - c)) ** 0.5

print(f'面积: {area}')

else:

print('不能构成三角形')

说明: 上面通过边长计算三角形面积的公式叫做海伦公式。

简单的总结

学会了Python中的分支结构和循环结构,我们就可以用Python程序来解决很多实际的问题了。这一节课相信已经帮助大家记住了if、elif、else这几个关键字以及如何使用它们来构造分支结构,下一节课我们为大家介绍循环结构,学完这两次课你一定会发现,你能写出很多很多非常有意思的代码。坚持努力,继续加油!返回搜狐,查看更多

责任编辑:



推荐阅读
  • Python循环语句代码逐行详解:while、for、break和continue
    来源:大数据DT本文约3200字,建议阅读9分钟循环语句是指重复执行同一段代码块,通常用于遍历集合或者累加计算。Python中的循环语句有 ... [详细]
  • 流程控制与Java基本类似,Kotlin提供了if和when两种分支语句,when可以替代 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 流程控制之分支结构
    一. 什么是流程控制流程控制是程序代码执行的顺序。二. 事物执行流程1)顺序结构从上往下依次执行,我们之前所编写的代码都属于该结构2)分支结构事物的 ... [详细]
  • 那你就是学的c语言,跟我学c语言
    本文目录一览:1、如何学习C语言?2、新手如何 ... [详细]
  • python中流程控制语句continue和else语句
    1、continue语句用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用2、图示:3、例子:要求输出1到50之间所有 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 文章目录1.if结构1.1if单分支结构1.2if-else双分支结构1.3if-elseif-else多分支结构switch语句switch多分支结构1.if结构1.1if单分 ... [详细]
  • 01-代码调试介绍本小节主要介绍1.程序出错的原因2.代码调试好处之前我们的调试方式主要通过打印变量的值来查看代码是否出现问题,这是js中最简单基本的调试alert ... [详细]
author-avatar
mobiledu2502909383
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有