我对Python还是很陌生,就像学习的一种方式,我给自己分配了这个问题,但无论我做什么,即使值小于(第一个条件或第二个条件),结果仍然达到100000 ),并应打印200000。请帮助。
price = 1000000
credit_score = 300
income = 70000
if credit_score and income:
credit_score > 700 and income > 80000
downpayment = price * 0.10
print(f"Downpayment: {downpayment}")
elif credit_score or income:
credit_score < 700 or income < 80000
downpayment = price * 0.20
print(f"Downpayment: {downpayment}")
else:
downpayment = price * 0.30
print(f"Downpayment: {downpayment}")
答案 0 :(得分:4)
您要在if
语句之后放置要测试的条件,而不是在它们所属的位置。
if credit_score > 700 and income > 80000:
downpayment = price * 0.10
print(f"Downpayment: {downpayment}")
elif credit_score < 700 or income < 80000:
downpayment = price * 0.20
print(f"Downpayment: {downpayment}")
else:
downpayment = price * 0.30
print(f"Downpayment: {downpayment}")
答案 1 :(得分:3)
代替
if credit_score and income:
credit_score > 700 and income > 80000
做
if credit_score > 700 and income > 80000:
直接将变量 放入if
语句(即if credit_score
)中的子句中,尝试将变量强制为布尔值。 任何非零数字或任何非空字符串注册为true,这意味着您的代码始终在第一个分支。
相反,您应该做的是检查条件 credit_score > 700
和条件income > 80000
。
答案 2 :(得分:1)
我希望您现在已经知道它是如何工作的。我将提供另一种方法:
downpayment = price * 0.10 if (credit_score > 700 and income > 80000) else (price * 0.20 if credit_score < 700 or income < 80000 else price * 0.30)
print(f"Downpayment: {downpayment}")