课时42:if-else语句
摘要:本文在回顾`Input`函数与简单`if`语句使用的基础上,指出简单`if`语句只能决定执行或不执行的缺陷,进而引入`if-else`语句。详细介绍了`if-else`语句的语法、执行流程,并通过年龄判断和用户名判断的实例进行演示,最后布置了修改之前练习的任务,帮助读者加深对`if-else`语句的理解和运用。
1. 回顾练习与`if`语句缺陷
2. `if-else`语句的引入
3. `if-else`语句实例演示
4. .练习布置
01、 回顾练习与`if`语句缺陷
我们接着之前讲的`Input`函数和条件判断中的`if`语句继续学习。先做一个小练习,让用户在控制台输入年龄。代码实现很简单,使用`age=
Input
("请输入你的年龄:")
`就可以让用户输入年龄。然后我们希望当用户年龄大于18岁时,显示“你已经成年了”,代码写成`ifage>18:print("你已经成年了")
`。但是当我们运行程序,输入20时,却报错了,错误提示是“类型错误,大于等于不支持字符串和整数之间进行比较”。这是因为`Input`函数返回的结果是字符串类型,而我们直接拿这个字符串和整数18进行比较,这是不允许的。所以如果要和数字进行比较,一定要进行类型转换,可以使用`age=int(age)`
或者直接在`Input`函数外面套上`int`,即`age=int(
Input
("请输入你的年龄:"))
`。
不过,无论是之前欢迎管理员的练习,还是这个年龄判断的练习,都存在一个明显的缺陷。以年龄判断为例,当输入18时,程序会显示“你已经成年了”,但当输入17时,程序没有任何反应。这就是简单`if`语句的局限性,它只有执行或不执行两种选择,而在很多情况下,我们希望有更多的选择,即满足条件执行一个操作,不满足条件执行另一个操作。
02、 `if-else`语句的引入
为了解决简单`if`语句的这个缺陷,我们接下来要学习的是`if-else`语句,它是条件判断语句的一个升级版本。
首先来看`if-else`语句的语法。它以`if`开头,后面跟着条件表达式,然后是冒号,紧接着是代码块,这部分和简单`if`语句是一样的。不同的是,在后面可以再写一个`else`,注意`else`要和`if`对齐,如果缩进了就会被`if`包含。`else`后面不用跟条件表达式,直接接冒号,回车后写另一个代码块。
`if-else`语句的执行流程是:任何语句执行之前都会先对条件表达式进行求值判断,`if-else`语句也不例外。它先对`if`后面的条件表达式进行求值判断,如果结果为`True`,则执行`if`后面的代码块;如果结果为`False`,则执行`else`后面的代码块。也就是说,它比简单`if`语句多了一个选择。
03、 `if-else`语句实例演示
3.1 年龄判断示例
我们用`if-else`语句来改写之前的年龄判断代码。假设`age=18`,代码可以写成:
age=18 if age>17: print("你已经成年了") else: print("你还未成年") ```
运行这段代码,如果`age`是18或者更大的数,会输出“你已经成年了
”;如果`age`小于18,会输出“你还未成年
”。这里要注意代码中的符号必须是英文符号,如果写成中文符号可能会报错,比如出现“`else`无效字符
”的错误。
04、 用户名判断示例
之前的练习是当用户名是“admin
”时,显示“欢迎管理员光临
”,现在我们使用`if-else`语句增加一个选择,如果用户名不是“admin
”,就显示“欢迎普通用户光临
”。代码可以这样写:
user_name=Input("请输入你的用户名:") ifuser_name=="admin": print("欢迎管理员光临") else: print("欢迎普通用户光临")
大家把之前做的练习修改一下,运用`if-else`语句实现上述用户名判断的功能,通过实践加深对`if-else`语句的理解和运用,自己动手操作一下。