【发布时间】:2021-09-15 00:15:02
【问题描述】:
def working_with_three(num1, num2):
if num1 or num2 == 3 and 3 in str(num1 + num2):
return True
else:
return False
working_with_three(-6, 19)
我正在尝试创建一个函数,该函数仅在其中一个数字为 3 且总和包含 3 时才返回 True,但是当我运行它时,我一直得到 True,即使我应该得到 False
【问题讨论】:
-
这是一个非常常见的问题(所以也许应该作为重复关闭)但不容易搜索。你真的想要
num1==3 or num2==3,因为所有and和or所做的都是将不同的事物联系在一起,这些事物可能是对的,也可能是错的。 -
3 in str(num1 + num2)会给你一个错误。您正在检查str中是否存在int。使用'3' in str(num1 + num2)。 -
另外:由于将
num1 + num2转换为字符串,所以必须检查该字符串中是否包含'3',而不是整数3。