判断语句/(if语句)
程序中如何体现判断
if 今天发工资:
先还信用卡的钱
if 有剩余:
又可以happy了
else:
再等30天
else:
盼着发工资
判断的定义
- 如果条件满足,才能做某件事情
- 如果条件不满足,就做另外一件事情,或者什么也不做
分支语句
判断语句被称为分支语句,因为有了判断,程序才会有很多分支
if语句的基本语法
if语句格式
if 要判断的条件:
条件成立时,要做的事情
……
注意
- 编写条件成立后的代码,代码的缩进为一个Tab键,或者4个空格(官方建议使用空格)
- 在Python开发中,Tab和空格不要混用。意思是不要有的地方用Tab,有的地方用空格,要保证代码前面要么所有的都是Tab,要么所有的都是空格
判断语句演练——判断年龄
要求
①定义一个整数变量记录年龄
②判断是否满18周岁(>=)
③如果满18岁,允许进入网吧
# ① 定义年龄变量
age = 18
# ② 判断是否满18周岁
## if语句以及缩进部分的代码是一个完整的代码块
if age>= 18:
print("允许进入网吧")
# ③ 思考:无论条件是否满足都会执行
print("这句代码什么时候执行?")
注意
- if语句以及下方缩进部分是一个完整的代码块
运算符
比较关系运算符
运算符 描述 == 检查两个操作数的值是否相等,如果是,则条件成立,返回True != 检查两个操作数的值是否不相等,如果是,则条件成立,返回True > 检查左操作数的值是否大于右操作数的值,如果是,则条件成立,返回True < 检查左操作数的值是否小于右操作数的值,如果是,则条件成立,返回True >= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立,返回True <= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立,返回True
注意
- 在 Python 2.x 中判断不等于可以使用!+或<>
逻辑运算符
1.与 and
条件1 and 条件2
- 两个条件都满足,返回True
- 只要有一个条件不满足就返回False
2.或 or
条件1 or 条件2
- 两个条件只要有一个满足,返回True
- 两个条件都不满足,返回False
3.非 not
- 对条取反
赋值运算符
- Python中使用=给变量赋值
- 注意:两个赋值运算符中间不能使用空格,需要紧紧挨在一起
运算符 | 描述 | 实例 |
= | 简单的赋值运算符 | c=a+b 将a+b的运算结果赋值为c |
+= | 加法赋值运算符 | c+=a 等效于c=c+a |
-= | 减法赋值运算符 | c-=a 等效于c=c-a |
*= | 乘法赋值运算符 | c*=a 等效于c=c*a |
/= | 除法赋值运算符 | c/=a 等效于c=c/a |
//= | 取整除赋值运算符 | c//=a 等效于c=c//a |
%= | 取模(余数)赋值运算符 | c%=a 等效于c=c%a |
**= | 幂赋值运算符 | c**=a 等效于c=c**a |
运算符的优先级
else的语法格式
if 要判断的条件:
条件成立时,要做的事情
……
else:
条件不成立时,要做的事情
……
注意
- if 和 else 语句以及各自的缩进部分共同是一个完整的代码块
- 由 if 来判断条件,else 来处理条件不成立时的情景
判断语句演练——判断年龄改进
要求
①输入用户年龄
②判断是否满18周岁(>=)
③如果满18岁,允许进入网吧
④如果未满18岁,回家写作业
# ① 输入用户年龄
age = int(input("今年多大了?"))
# ② 判断是否满18岁
## if 语句以及缩进部分的代码是一个完整的语法块
if age >=18:
print("可以进网吧")
else:
print("回家写作业")
# ③ 思考:无论条件是否满足都会执行
print("这句代码什么时候执行?")
逻辑运算
演练一:判断年龄
定义一个整数变量age,编写代码判断年龄是否正确
- 要求人的年龄在0~120之间
#定义一个整数变量
age = 120
#要求人的年龄在0~120之间
"""
age >= 0 and age <=120
"""
if age >=0 and age <= 120:
print("年龄正确")
else:
print("年龄不正确")
演练二:成绩合格
定义两个整数变量pyhton_score、c_score,编写代码判断成绩
- 要求只要有一门成绩大于60分就算合格
#定义两个成绩
python_score =80
c_score =75
#只要有一门成绩大于60分
if pyhton_score > 60 or c_score > 60:
print("考试通过")
else:
print("考试失败,继续加油 ")
演练三:非公勿入
定义一个布尔型变量is_employee,编写代码判断是否是本公司员工
- 如果不是,提示不允许入内
#定义一个布尔型变量 is_employee
is_employee = True #is_employee = False
#如果不是,提示不允许入内
if not is_employee:
print("非本公司人员,请勿入内")
#对于not的认识,当编写程序时,只希望条件不成立时有事可做,条件成立时不需做事情
#总结使用到not的两个应用场景
## ① 在开发中,通常希望某个条件不满足时,执行一些代码,可以使用 not
## ② 另外,如果需要拼接复杂的逻辑计算条件,同样也有可能使用到 not
if 语句进阶
elif 语法格式
if 条件1:
条件1满足时,执行的代码
……
elif 条件2:
条件2满足时,执行的代码
……
elif 条件3:
条件3满足时,执行的代码
……
else:
以上条件都不满足时,执行的代码
……
注意
- elif 和 else 都必须和 if 联合使用,而不能单独使用
- 可以将 if、elif 和 else 以及各自缩进的代码,看成一个完整的代码块
elif 演练:女友的节日案例
要求
- 定义 holiday_name 字符串变量记录节日名称
- 如果是情人节应该买玫瑰/看电影
- 如果是平安夜应该买苹果/吃大餐
- 如果是生日应该买蛋糕
- 其他的日子每天都是节日
#定义字符串
holiday_name = "平安夜"
#判断记录的字符串内容是否等于情人节
#注意:判断相等时,用的是==
if holiday_name == "情人节":
print("买玫瑰")
print("看电影")
#如果是平安夜
elif holiday_name == "平安夜"
print("买苹果")
print("吃大餐")
#如果是生日
elif holiday_name == "生日"
print("买蛋糕")
#其他的日子
else:
print("每天都是节日")
if 的嵌套
- elif 的应用场景是:同时判断多个条件,所有的条件是平级的
if 嵌套的语法格式
if 条件1:
条件1满足执行的代码
……
if 条件1的基础上条件2:
条件2满足时,执行的代码
……
#条件2不满足的处理
else:
条件2不满足时,执行的代码
#条件1不满足的处理
else:
条件1不满足时,执行的代码
……
if嵌套的案例:火车站安检——检查车票
要求
- 定义布尔型变量has_ticket,表示是否有车票
- 定义整数变量knife_length表示刀的长度,单位为厘米
- 首先检查是否有车票,如果有,才允许进行安检
- 安检时,需要检查刀的长度,判断是否超过20厘米 → ①如果超过20厘米,提示刀的长度,不允许上车 ②如果不超过20厘米,安检通过
- 如果没有车票,不允许进门
#定义布尔型变量has_ticket
has_ticket = True
#定义整数变量knife_length
knife_length = 30
#首先检查是否有车票
if has_ticket:
print("车票检查通过,准备开始安检")
#安检检查刀的长度
if knife_length > 20:
#超过20厘米,提示刀的长度,不允许上车
print("携带的刀过长,有%d 公分长!"% knife_length)
print("不允许上车")
#不超过20厘米,安检通过
else:
print("安检已经通过,祝您旅途愉快!")
#如果没有车票
else:
print("请先买票")
102-107
循环
程序的三大流程
- 顺序:从上向下,顺序执行代码
- 分支:根据条件判断,决定执行代码的分支
- 循环:让特定代码重复执行
while语句基本语法
初始条件设置 —— 通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
……
处理条件(计数器+1)
注意
- while语句以及缩进部分是一个完整的代码块
while循环演练
打印5遍Hello Python
#定义一个整数变量来记录循环次数
i = 1
#循环
while i <= 5:
#希望在循环内执行的代码
print("Hello Python")
#处理计数器
i = i + 1
#循环结束后,计数器i的数值是多少
print("循环结束后,i = %d" % i)
死循环
由于程序员忘记在循环内部修改循环的判断条件,导致循环持续进行,程序无法终止
Python中的计数方法
常见的计数方法有两种,可以分别称为:
- 自然计数法(从1开始):更符合人类的习惯
- 程序计数法(从0开始):几乎所有的程序语言都选择从0开始计数
在编写程序时,尽量养成习惯:除非特殊需求,否则循环的计数都从0开始
循环计算
利用循环重复计算的需求:
- 在while上方定义一个变量,用于存放最终计算结果
- 在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量
演练一:0-100数字累加
需求:计算0~100之间所有数字的累计求和结果
#定义一个整数变量记录循环的次数
i = 0
#定义最终结果变量
sum = 0
#循环
while i <= 100:
result += i
#处理计数器
i += 1
print("0~100之间的数字求和结果 = %d" % sum)
演练二:0~100偶数求和
需求:计算0~100之间所有偶数的累计求和结果
i = 0
sum = 0
while i<= 100:
#判断变量i的数值是否是一个偶数
if i % 2 == 0:
sum += i
i += 1
print("0~100之间的偶数累加结果 = %d" % sum)
如果要计算奇数
i = 0
sum = 0
while i<= 100:
#判断变量i的数值是否是一个奇数
if i % 2 != 0:
sum += i
i += 1
print("0~100之间的奇数累加结果 = %d" % sum)