需求分析
尝试创建一个函数,将多个变量与一个整数进行比较,并输出一个由三个字母组成的字符串。即:
希望得到:
python要如何实现?
Answers
你误解了布尔表达式的工作原理,不像英文语义那样,对你提到的变量进行自动比较。解决方案如下:
x、y会自行评估(如果0为False,否则为True)。
您也可以使用元组来判断:
或者字典:
使用集合,可以利用其常量花费成本低的优势来测试(in无论操作数是多少,都需要一定的时间)。
使用or时,python会将运算符的每一侧视为单独的表达式。表达式首先被视为x的bool测试,如果为False,才会执行。
这是由于操作符的优先权。or具有比较低的优先级,因此后者==被评估为优先。
但是,即使不是这种情况,并且表达式实际上被解释为的反结果,仍然不会按照您的预期执行。
被判定为真假的第一个参数有,例如not False,数字0或empty(有关Python在布尔运算中认为false的详细信息,请参阅布尔表达式)。
因此对于值将解析为2,因为这是参数中第一个类似真值的值。那结果就是False,即使会为True。
这同样适用于逆运算, 针对单个变量测试多个值,如因为同样的原因会失败。正确的使用方式是或。
领取专属 10元无门槛券
私享最新 技术干货