😀lab_sheet_8_zh-hans
Written by:
在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 b 为 False not False 的结果是 True 再对 True 和 x == 0(结果为 True)进行逻辑与 True and True 的结果是True
首先计算not b b为 False not False 的结果是True再对 True 和 x != 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 == False 在 b 为真的情况下返回 False 在b为假的情况下返回 True 与 not 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步的条件满足 接着判断左侧门的开启条件:
如果左侧门仪表盘开关打开 或者左侧门外部手柄打开 或者儿童锁关闭且左侧门内部手柄打开 那么左侧门就可以打开
同样判断右侧门的开启条件:
如果右侧门仪表盘开关打开 或者右侧门外部手柄打开 或者儿童锁关闭且右侧门内部手柄打开 那么右侧门就可以打开
最后 根据左右门的状态返回对应的信息
如果左右门都打开 就返回“两扇门都打开”
如果只有左侧门打开 就返回“左侧门打开”
如果只有右侧门打开 就返回“右侧门打开”
如果两扇门都没有打开 就返回“两扇门都保持关闭”
最后更新于