ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
[TOC] ### 课前准确: * 在`Windows`系统里安装`python`,参考 [安装python](https://www.kancloud.cn/k12edu/k_12/785427#Windowspython_4) ***** ### 本节课参考书目 * `Teach Your Kids to Code.pdf` 第五章:条件判断( if 语句) ***** ### `IF` 语句 ``` if <条件>: <执行命令> ``` `if 条件:` ,“如果条件**成立 Ture**的话”,就执行`:` 后面的代码;“如果条件**不成立 False**的话”,就跳过`:` 后面的代码。 一般情况下,`if` 语句带的条件如下图所示: ![](https://box.kancloud.cn/770334df22eeefd228d17a7f0ee7c0e2_1006x345.png) 下面这个例子,`if`语句所带的条件是`1==1`(1等于1),返回`True`,所以会执行`:`后面的命令(打印" You are right!")。 ``` >>> if 1==1: # “如果 1 等于 1 的话” print( " You are right!") # 打印 " You are right!" You are right! ``` 下面这个例子,`if`语句所带的条件是`1!=1`(1不等于1),返回`False`,所以不会执行`:`后面的命令。 ``` >>> if 1!=1: # “如果 1 不等于 1 的话” print( " You are right!") # 因为“1 不等于 1”是错误的,所以print( " You are right!")不会被执行 ``` #### 一个画图的例子 ``` # IfSpiral_5_1.py answer = input("你想画图吗? y/n:") if answer == 'y': print("Working...") import turtle t = turtle.Pen() t.width(2) for x in range(100): t.forward(x*2) t.left(89) print("Ok,我们画完了!") ``` #### 我可以驾驶车辆吗? ``` # OldEnough_5_2.py driving_age = eval(input("你们当地的法定驾驶年龄是多大?")) your_age = eval(input("你多大了? ")) if your_age >= driving_age: print("你可以驾车!") if your_age < driving_age: print("对不起,你还得等", driving_age - your_age, "年才可以驾车!") ``` ### `ELSE` 语句 可以给`if`添加一个`else`语句。如果`if`判断是`False`,不要执行`if`语句`:`后面的命令1,去把`else`语句`:`后面的命令2执行了。 ``` if <条件>: <如果条件成立,执行命令1> else: <如果条件不成立,执行命令2> ``` #### 我可以驾驶车辆吗?(改进版) ``` # OldEnoughElse_5_3.py driving_age = eval(input("你们当地的法定驾驶年龄是多大?")) your_age = eval(input("你多大了? ")) if your_age >= driving_age: print("你可以驾车!") else: print("对不起,你还得等", driving_age - your_age, "年才可以驾车!") ``` ### `ELIF` 语句 如果有多个判断条件,可以使用多个`elif`: ``` if <条件1>: <如果条件1成立,执行命令1> elif <条件2>: <如果条件2成立,执行命令2> elif <条件3>: <如果条件3成立,执行命令3> else: <如果以上条件都不成立,执行命令4> ``` #### 数学考试评级 ``` # WhatsMyGrade_5_4.py grade = eval(input("这次你数学考了多少分 (0-100): ")) if grade >= 90: print("很不错哦,你得了一个 A! :) ") elif grade >= 80: print("你得了一个 B!") elif grade >= 70: print("你得了一个 C.") elif grade >= 60: print("你得了一个 D...") else: print("你惨了,你得了一个 F. :( ") ``` ### 复杂条件判断:`AND` `OR` `NOT` ![](https://box.kancloud.cn/d28305b3883a4f72b1db305094cbd2f3_654x147.png) #### 天气如何,要不要添衣? ``` # WhatToWear_5_5.py rainy = input("天气如何?下雨了吗? (y/n)").lower() cold = input("外面冷不冷? (y/n)").lower() if (rainy == 'y' and cold == 'y'): print("你最好穿件雨衣。") elif (rainy == 'y' and cold != 'y'): print("带把伞吧。") elif (rainy != 'y' and cold == 'y'): print("穿件外套吧,外边很冷!") elif (rainy != 'y' and cold != 'y'): print("天气这么好,穿什么你钟意咯!") ``` ### 课程小结 1. `IF` 语句 2. `ELSE` 语句 3. `ELIF` 语句 4. 复杂条件判断 ### 课程回顾 昨天上课时有个小朋友问了一个很好的问题: 数学考试评级如果输入大于100的数字,程序也可以执行,这是不对的,程序应该拒绝执行。 这个问题的解决办法是在程序的输入得分的后面,加上一个`while`语句。 ``` grade = eval(input("这次你数学考了多少分 (0-100): ")) while grade > 100: #加了while控制,就不能输入大于100的数字 print("这是不可能的!") grade = eval(input("请重新输入你的考试得分 (0-100): ")) if grade >= 90: print("很不错哦,你得了一个 A! :) ") elif grade >= 80: print("你得了一个 B!") elif grade >= 70: print("你得了一个 C.") elif grade >= 60: print("你得了一个 D...") else: print("你惨了,你得了一个 F. :( ") ```