[英]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.