回顾
1、类型转换函数
int(x)
float(x=0)
bool([x])
结果为假的情况:
空
0
0.0
0j
False
None
空容器
2、运算符
算术运算符
+ - * / // ** %
复合赋值运算符
+= -= *= /= //= **= %=
比较运算符
< <= > >= == !=
返回值:bool
链氏比较
0 <= age <= 200
逻辑运算符
not
and
or
is/is not
判断变量是否绑定的是同一个对象
id(object)
混合使用:运算符的优先级
3、语句
逻辑行 物理行
a=10;b=20;c=30 # 不推荐
一条语句为一行(物理行)
语句换行:
隐式换行: () [] {}
显式换行: \
扩展:
程序执行的3个大结构:
顺序结构:默认
执行从上至下、从左至右
分支(选择)结构:
if 语句
循环结构:
while语句、for语句
程序 = 数据结构 + 算法 + 语法结构
1、if语句 【重点】
作用:
有选择性的执行某条或某些语句。
格式:
if 条件表达式:
满足if条件表达式执行的语句
if 条件表达式:
满足if条件表达式执行的语句
else:
不满足if条件表达式执行的语句
if 条件表达式1:
满足if条件表达式1执行的语句
elif 条件表达式2:
满足elif条件表达式2执行的语句
... # elif可以写多个(视情况而定)
else:
以上条件表达式都不满足执行的语句
条件关系:互斥
语法1:if
age = int(input(‘请输入年龄:’))
if age > 10: # 主要是age大于10了
print(‘欢迎来到老毕的课堂’)
sex = input(‘请输入性别:’)
if sex == ‘男’:
print(‘你好,先生’)
print(‘你好,女士’)
语法2:if - else
sex = input(‘请输入性别:’)
if sex == ‘男’:
print(‘你好,先生’)
else: # 否则
print(‘你好,女士’)
思考:
正常情况:男、女
用户输入: nv nan man men
sex = input(‘请输入性别:’)
if sex == ‘男’:
print(‘你好,先生’)
if sex == ‘女’:
print(‘你好,女士’)
else: # 否则
print(‘您的输入有误’)
sex = input(‘请输入性别:’)
if sex == ‘男’:
print(‘你好,先生’)
if sex == ‘女’:
print(‘你好,女士’)
如果输入的结果不符合要求:应该需要提示
语法2:if - elif-else
sex = input(‘请输入性别:’)
if sex == ‘男’:
print(‘你好,先生’)
elif sex == ‘女’:
print(‘你好,女士’)
else:
print(‘输入错误’)
print(‘判断结束’)
代码调试(debug): 【重点】【重点】
1、设置断点(点击行号右边)
2、右击选择 debug 模式
3、点击 下箭头 或 F7【shift + F7】
1、不要为input函数处设置断点(会进入底层)
2、取消断点(再点击断点位置)
快捷键:
ctrl + alt + L 格式化代码
ctrl + D 复制光标所在行到下一行
shift + enter 将光标切换至下一行
ctrl + Y 删除光标所在行
练习:
闰年:
使用if语句实现对闰年的判断
如果是闰年,则打印 xxx 年是闰年
如果不是闰年,则打印 xxx 年是平年
成绩判断
[0, 60) E
[60, 70) D
[70, 80) C
[80, 90) B
[90, 100] A
if语句嵌套: 【重点】
if语句中嵌套if语句
建议:嵌套的层数不要超过3层
if语句嵌套
month = int(input(‘请输入一个月份:’))
输入月份正确,才判断是哪个季节
if 1 <= month < 13:
if 3 <= month <= 5:
print(‘春季’)
elif 6 <= month <= 8:
print(‘夏季’)
elif 9 <= month <= 11:
print(‘秋季’)
else:
print(‘冬季’)
else: # 输入月份错误
print(‘月份输入错误’)
if 真值表达式 【重点】
格式:
表达式1 if 条件表达式 else 表达式2
规则:
条件表达式成立,则返回表达式1,否则返回表达式2
说明:
js: if 条件表达式 ? 表达式1 : 表达式2
三目运算符
场景:
简单的事物只有2种情况的判断
缺点:
代码可读性差
if 真值表达式
需求:判断一个数是否为偶数
num = int(input(“请输入一个整数:”))
-4 --> 4 取绝对值
num = abs(num)
print(num)
if num % 2 == 0:
print(‘偶数’)
else:
print(‘奇数’)
if 真值表达式
print(‘偶数’ if num % 2 == 0 else ‘奇数’)
print(‘偶数’ if not num % 2 else ‘奇数’)
比较输入两个数的大小,打印最大的值
a = float(input(‘请输入一个数:’))
b = float(input(‘请输入一个数:’))
if a > b:
print(a)
else:
print(b)
print(a if a > b else b)
a = float(input(‘请输入一个数:’))
b = float(input(‘请输入一个数:’))
if a > b:
print(a)
elif a == b:
print(a)
else:
print(b)
局限性:一般用于表示事物只有2种结果
print(a if a > b else b)
缺点:代码可读性变差
year = int(input(‘请输入年份:’))
result = not year % 4 and year % 100 or not year % 400
if result:
print(year, ‘年是闰年’)
else:
print(year, ‘年是平年’)
print(‘闰年’ if not year % 4 and year % 100 or not year % 400 else “平年”)
判断真假
a = float(input(‘请输入一个数:’))
b = float(input(‘请输入一个数:’))
if a == b:
print(“相等”)
else:
print(‘不相等’)
result = “相等” if a == b else ‘不相等’
print(result)
成绩判断
[0, 60) E
[60, 70) D
[70, 80) C
[80, 90) B
[90, 100] A
score = float(input(‘请输入一个成绩:’))
if 0 <= score <= 100:
if score < 60:
print(‘E’)
elif 60 <= score < 70:
print(‘D’)
elif 70 <= score < 80:
print(‘C’)
elif 80 <= score < 90:
print(‘B’)
else:
print(‘A’)
else:
print(‘成绩超过了范围’)
闰年:
使用if语句实现对闰年的判断
如果是闰年,则打印 xxx 年是闰年
如果不是闰年,则打印 xxx 年是平年
year = int(input(‘请输入年份:’))
将结果赋值给变量
result = year%40 and year%100!=0 or year%4000
result = not year % 4 and year % 100 or not year % 400
if result:
print(year, ‘年是闰年’)
else:
print(year, ‘年是平年’)
作业:
1. 模拟计算北京出租车计价
1、起步价为13元,包含3公里
2、超过3公里,但不超过15公里(包含),每公里2.3元
3、超过15公里,每公里加收2.3元的50%
2、输入4个学生的成绩
打印出4个成绩中的最高成绩。
2、while循环语句
作用:根据一定的条件重复执行一条或多条语句
格式:
while 真值表达式:
循环体
else:
语句块
说明:
1、循环判断真值表达式是否成立
2、成立执行循环体(一条或多条语句)
3、不成立则执行else下的语句块(一条或多条语句)
else语句可以省略
】
while循环语句
打印1 … 20
start_num = 1 # 初始值
while start_num <= 5: # 循环
# 循环体
print(start_num)
start_num += 1 # 自增
start_num = 5 # 初始值
while start_num >= 1: # 循环
循环体
print(start_num)
start_num -= 1 # 自减