博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python进阶之路 3.4.2 条件语句(if、else和elif)
阅读量:6570 次
发布时间:2019-06-24

本文共 1582 字,大约阅读时间需要 5 分钟。

3.4.2 条件语句(if、else和elif)

对于计算机程序来说,要学会第一项技能就是"判断",也就是根据不同的条件,执行不同的程序分支,这样的程序才有意义。

if语句的作用就是为程序赋予这项"判断"的技能。使用if语句就需要用到在3.3节介绍的代码块了。Python语句要求当if语句的条件满足时要执行的代码块必须缩进(一般是缩进4个空格)。if语句的语法格式如下:

if logic expression:        #if代码块开始    statement1    statement2    ...    statementnotherstatement                  #if代码块结束

以上代码中,logic expression表示逻辑表达式。也就是返回布尔类型有(True或False)的表达式。由于Python语句的各种数据类型都可以用作布尔类型,所以logic expression可以看作普通的表达式。根据代码块的规则,每一个代码块的开始行的结尾要使用冒号(:),如果if代码块结束,退到代码块开始行的缩进量即可。

下面是if语法的基本用法。

n = 3if n == 3:    print("n == 3")print("if代码块结束")
n == 3if代码块结束

在上面这段代码中,"n == 3"是逻辑表达式,本例中的值为True。而"print("n == 3")"是if代码块中的语句,由于"n == 3"的值为True,所以"print("n == 3")"会被执行。最后一条语句不属于if代码块,所以无论if语句的条件为True或者False,这行代码都会被执行。

对于条件语句来说,往往分支不止一个。例如,上面的代码如果变量n的值是4,那么if语句的条件就为False,这时要执行条件为False的分支,就可以使用else子句。

n = 4if n == 3:    print("n == 3")else:    print("n == 4")print("if代码块结束")
n == 4if代码块结束

在上面这段代码中,n等于4,所以if语句的条件为False,因此else代码块中的语句会被执行。if与else都是代码块,所以if语句和else语句后面都要以冒号(:)结尾。

在多分之条件语句,需要使用elif子句设置更多的条件。elif后面跟逻辑表达式,elif也是代码块,所以后面要用冒号(:)结尾。另外,在if语句中,if和else部分只能有一个,而elif部分可以有多个。

n = 4if n == 3:    print("n == 3")elif n == 4:    print("n == 4")elif n == 5:    print("n == 5")elif n == 6:    print("n == 6")else:    print("n等于其他值")print("if代码块结束")
n == 4if代码块结束

[例 3.3] 本例通过raw_input函数从控制台输入一个名字,然后通过条件语句判断名字以书面字母开头。

from click._compat import raw_inputname = raw_input("请输入你的名字:")if name.startswith("B")    print("名字以B开头")elif name.startswith("A")    print("名字以A开头")elif name.startswith("F")    print("名字以F开头")else:    print("名字以其他字母开头")

转载于:https://blog.51cto.com/14349850/2398496

你可能感兴趣的文章
透视投影的原理和实现
查看>>
[HNOI2008]越狱
查看>>
移动WebAPP开发注意点
查看>>
Win7下安装Mysql(解压缩版)
查看>>
sharedPreference的奇怪bug
查看>>
android 顶部的通知栏
查看>>
SpringMVC注解
查看>>
react-developer-tools
查看>>
bzoj2120 数颜色 分块
查看>>
几行c#代码,轻松搞定一个女大学生
查看>>
JS自总结
查看>>
UVALive 3026 Period (KMP算法简介)
查看>>
UVA 11992 Fast Matrix Operations (降维)
查看>>
Asp.net core Identity + identity server + angular 学习笔记 (第一篇)
查看>>
Android开发中的错误
查看>>
暂时不想读研的几点理由
查看>>
增加临时表空间组Oracle11g单实例
查看>>
Diff Two Arrays
查看>>
浅谈java垃圾回收机制
查看>>
关于svn和maven结合使用的讨论
查看>>