一、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("年龄不正确")

结果:

  

if中可以嵌套if吗 python python中if的嵌套_python

 

(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("成绩不合格")

结果:

 

if中可以嵌套if吗 python python中if的嵌套_if中可以嵌套if吗 python_02

 

(3)定义一个布尔型变量 is_employee,编写代码判断是否是本公司员工,如果不是员工则提示“不允许入内”。

is_employee = False
if not is_employee:
    print("不允许入内")

结果:

 

if中可以嵌套if吗 python python中if的嵌套_if中可以嵌套if吗 python_03

 

 (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)

结果:

 

if中可以嵌套if吗 python python中if的嵌套_整除_04

 

(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("月份输入有误,请重试。")

 结果:

if中可以嵌套if吗 python python中if的嵌套_学习_05

 

(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)

结果:

if中可以嵌套if吗 python python中if的嵌套_整除_06

 

 (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("请回家")

结果:

if中可以嵌套if吗 python python中if的嵌套_整除_07

 

(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('玩家输')