😀lab_sheet_8_zh-hans

Written by:

Binary-Yuki
UniDesiranCX

在Python里 逻辑运算符(and or not)和比较运算符(== != > <等)是两个不同的概念

(p.s. 这几个比较常见)

逻辑运算符用于连接多个比较运算符得到的布尔值 得到一个最终的布尔值

例如:

  • and:两边都为真(True) 结果为真(True);否则为假(False)

  • or:两边至少有一真(True) 结果为真(True);否则为假(False)

  • not:真(True)变为假(False) 假(False)变为真(True)

比较运算符用于比较两个值的关系 返回一个布尔值 例如等于(==)判断两边的值是否相等

如果

  • 相等返回True

  • 否则为False

  • 不等于(!=)则相反

题目给出的变量b的值为False 变量x的值为0

这里面x == 0 为 True 然后再对 b 和这个 True 值进行逻辑与运算 False and True 的结果为 False

x == 0 为 True 然后再对 b 和这个 True 值进行逻辑运算 False or True 的结果为True

首先计算 not b bFalse not False 的结果是 True 再对 True x == 0(结果为 True)进行逻辑与 True and True 的结果是True

首先计算not b bFalse not False 的结果是True再对 Truex != 0(结果为 False)进行逻辑 True or False 的结果是 True

这四个问题都可以通过Python的逻辑运算符进行简化

首先b == True和b实际上是一个意思

b == False对应的是not b 相当于否定的b

a) b == True

这个表达式直接可以简化为 b 因为如果 b那么 b == True 就返回True 否则返回False 等价于 b 本身

b) b == False

可以简化为 not b 因为b == Falseb 为真的情况下返回 Falseb为假的情况下返回 Truenot b 的逻辑相同

c) b != True

可以简化为 not b 它实际上是在描述 b 不是 True 也就是 b 是 False 这与 not b 的定义相同

d.) b != False

可以简化为 b b != False描述的是 b 不是 False也就是 b True 这与 b 的定义相同

所以这四个表达式可以简化为:

a. b b. not b c. not b d. b

这是一个简单的基于用户输入来判断月份天数的程序 可以使用Python的 if-elif-else 语句来完成

首先 需要用户输入一个代表月份的数字 然后根据这个数字判断月份有多少天 有两种情况需要特殊对待:二月份(可能是28或29天)和无效的输入(输入的数字不在1到12之间)

首先获取用户输入并转为整数类型 然后根据输入的数字判断并输出对应的天数 如果输入的数字不符合要求 就报错

首先解题思路是:

代码:

代码解析:

  • year % 4 == 0:用输入的年份 year 对4取余数 如果余数为0 就表示这个年份能被4整除

  • year % 100 != 0:用输入的年份 year 对100取余数 如果余数不为0 就表示这个年份不能被100整除

  • year % 400 == 0:用输入的年份 year 对400取余数 如果余数为0 就表示这个年份能被400整除

and 逻辑操作符用在 year % 4 == 0 and year % 100 != 0 部分 表示这两个判断条件都必须为真 结果才为真 也就是说 如果年份能被4整除且不能被100整除 这部分的结果就为真

or 逻辑操作符用在整体判断语句 (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 部分 表示只要这两部分中的任一部分为真 整个判断结果就为真 也就是说 只要年份能被4整除且不能被100整除 或者能被400整除 就认定这个年份为闰年

解体思路:

  • 解析输入字符串 提取出每个开关的状态以及档位设置

  • 初始化左右门的状态为关闭

  • 判断主解锁开关是否打开且档位是否处于停车位置

  • 如果这两个条件都满足 就可以继续判断车门是否可以打开 否则 两扇门都保持关闭

  • 如果第3步的条件满足 接着判断左侧门的开启条件:

    • 如果左侧门仪表盘开关打开 或者左侧门外部手柄打开 或者儿童锁关闭且左侧门内部手柄打开 那么左侧门就可以打开

  • 同样判断右侧门的开启条件:

    • 如果右侧门仪表盘开关打开 或者右侧门外部手柄打开 或者儿童锁关闭且右侧门内部手柄打开 那么右侧门就可以打开

  • 最后 根据左右门的状态返回对应的信息

    • 如果左右门都打开 就返回“两扇门都打开”

    • 如果只有左侧门打开 就返回“左侧门打开”

    • 如果只有右侧门打开 就返回“右侧门打开”

    • 如果两扇门都没有打开 就返回“两扇门都保持关闭”

最后更新于