一、if else
注意:代码的缩进为一个 tab 键,或者四个空格(pycharm 自动帮我们增加)
在 python 开发中,Tab 和空格不要混用
if 条件1:
条件1满足执行的代码 ……
elif 条件2:
条件2满足时,执行的代码 ……
elif 条件3:
条件3满足时,执行的代码 ……
else:
以上条件都不满足时,执行的代码 ……
二、if嵌套
在开发中,使用 if 进行条件判断,如果希望在条件成立的执行语句中再增加条件判断,就可以使用 if 的嵌套。
if 的嵌套的应用场景就是:在之前条件满足的前提下,再增加额外的判断。
三、逻辑运算
与and、或or、非not逻辑运算符
运算符 | 逻辑表达式 | 描述 | 示例 |
and(与) | x and y | 布尔“与”:如果x为False,它返回False,否则它返回y的值。 | True and False,返回 False |
or(或 ) | x or y | 布尔"或":如果x是True,它返回True,否则它返回y的值。 | False or True,返回 True |
not(非) | not x | 布尔"非":如果x为True,返回False。如果 x为 False,它返回True。 | not True 返回 False,not False 返回True。 |
四、习题
(1)定义一个整数变量 age,编写代码判断年龄是否正确,若年龄在 0-100 之间,输出“年龄正确”,否则输出“年龄不正确”。
age = int(111)
if 0 <= age <= 100:
print("年龄正确")
else:
print("年龄不正确")
结果:
(2)定义两个整数变量 python_score、c_score,编写代码判断成绩是否合格。(要求只要有一门成绩 >= 60 分就算合格)
python_score = int(33)
c_score = int(60)
if python_score >=60 or c_score >=60:
print("成绩合格")
else:
print("成绩不合格")
结果:
(3)定义一个布尔型变量 is_employee,编写代码判断是否是本公司员工,如果不是员工则提示“不允许入内”。
is_employee = False
if not is_employee:
print("不允许入内")
结果:
(4)在键盘输入一个年份,判断该年是否闰年。
(注:判断某年是润年应满足以下两个条件之一:该年能被4整除但不能被100整除,或该年能被400整除。)
year = float(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("%d年是闰年" % year)
else:
print("%d年不是闰年" % year)
结果:
(5)输入一个年份和月份,打印这一年的该月有几天。
注:1、3、5、7、8、10、12月为31天;4、6、9、11月为30天;
闰年的2月份为29天,而非闰年的2月份为28天。
闰年的判定条件是以下两个条件之一:①能被4整除,但不能被100整除的年份是闰年;②能被400整除的年份也是闰年。
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
# 先判断闰年与否,再讨论月份的天数
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("%d年是闰年," % year, end='')
else:
print("%d年不是闰年," % year, end='')
# 判断月份
if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 12:
day = 31
print("%d年%d月是大月,有%d天" % (year, month, day))
elif month == 4 or month == 6 or month == 9 or month == 10:
day = 30
print("%d年%d月是小月有%d天" % (year, month, day))
# 对二月份特殊处理
elif month == 2:
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
day = 29
else:
day = 28
print("%d年%d月有%d天" % (year, month, day))
else:
print("月份输入有误,请重试。")
结果:
(6)快递对包裹收费规定如下:重量(千克)不超过10,收费标准为0.80元/千克;不超过20,收费标准为0.75元/千克;不超过30,收费标准为0.70元/千克;超过30千克不予邮寄。另对每件包裹收手续费0.5元。 输入包裹的重量,然后输出相应的收费。
weight = float(input("请输入包裹重量"))
price = 0
if weight > 30:
print("超过30千克不予邮寄")
elif weight > 20:
price = weight * 0.70 + 0.5
elif weight > 10:
price = weight * 0.75 + 0.5
else:
price = weight * 0.80 + 0.5
print("您好,需要收取%f元" % price)
结果:
(7)1. 定义布尔型变量 has_ticket 表示是否有车票;
2. 定义整型变量 knife_length 表示刀的长度,单位:厘米;
3. 首先检查是否有车票,如果有,才允许进行 安检;
4. 安检时,需要检查刀的长度,判断是否超过 20 厘米,
如果超过 20 厘米,提示刀的长度,不允许上车,
如果不超过 20 厘米,安检通过。
5. 如果没有车票,不允许进门。
has_ticket = True
knife_length = 21
if has_ticket:
print("有车票,请安检")
if knife_length > 28:
print("刀太长,不允许上车")
else:
print("刀不长,可以上车")
else:
print("请回家")
结果:
(8)从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3),电脑随机出拳,完成整体代码功能,比较胜负。
# 玩家赢
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print(computer)
print("玩家赢")
# 平手
elif player == computer:
print(computer)
print('平手')
# 玩家输
else:
print(computer)
print('玩家输')