簡體   English   中英

Python 代碼沒有打印出想要的結果

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM