[英]Python code not printing the desired result
我对 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}")
您将要测试的条件放在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}")
代替
if credit_score and income:
credit_score > 700 and income > 80000
做
if credit_score > 700 and income > 80000:
将变量直接作为if
语句中的子句(即if credit_score
)试图将该变量强制转换为布尔值。 任何非零数字或任何非空字符串注册为真,这意味着您的代码始终采用第一个分支。
相反,您应该做的是检查条件credit_score > 700
和条件income > 80000
。
我希望你现在已经清楚它是如何工作的。 我将提供另一种方法:
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}")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.