Python 我正在尝试制作一个应用程序,输出您的信用评分

Python 我正在尝试制作一个应用程序,输出您的信用评分,python,Python,我正在尝试做一个程序,告诉你如果房子是100万美元,你的首付款将是多少 如果用户输入一个不是350-850的数字或输入一个非整数,那么它将要求用户输入一个有效的信用分数,并将循环该分数,直到他们这样做。然后它会告诉用户他们需要支付多少 我已经为此奋斗了一整天,不知道我做错了什么。如果有人能帮忙的话 good_credit = range(750, 851) bad_credit = range(350, 750) valid_credit_score = range(350, 851) pri

我正在尝试做一个程序,告诉你如果房子是100万美元,你的首付款将是多少

如果用户输入一个不是350-850的数字或输入一个非整数,那么它将要求用户输入一个有效的信用分数,并将循环该分数,直到他们这样做。然后它会告诉用户他们需要支付多少

我已经为此奋斗了一整天,不知道我做错了什么。如果有人能帮忙的话

good_credit = range(750, 851)
bad_credit = range(350, 750)
valid_credit_score = range(350, 851)

print("A house is $1,000,000")
question = ("What is your credit score? ")
answer = input(f"{question} ")

for answer in valid_credit_score:
    credit_score = True
else:
    credit_score = False

while credit_score == False:
    print("Please input a valid credit score.")
    answer = input(f"{question} ")
    if answer == range(350, 851):
        credit_score = True
        break
    break

while credit_score == True:
    if answer == good_credit:
        print("Your down payment will be $100,000.")
        break
    elif answer == bad_credit:
        print("Your down payment will be $200,000.")
        break

不管我输入了什么整数,出于某种原因,它总是使credit_score变量为false。

这里发生了一些事情:

  • 您正在将一个值与一个范围进行比较,例如,
    10==range(0,20)
    将始终返回False

  • 您正在将字符串与整数进行比较。如果您检查类型,您将看到
    answer
    实际上是一个
    str

  • 类型(应答)
    出[1]:
    str
    
    因此,您应该尝试:

  • 替换
    if int(answer)==良好信用
    if int(answer)为良好信用
  • answer==
    替换为
    int(answer)中的
  • good_credit=范围(750851)
    不良信用=范围(350750)
    有效信用评分=范围(350851)
    打印(“一栋房子价值1000000美元”)
    问题=(“你的信用分数是多少?”)
    答案=输入(f“{问题}”)
    如果int(答案)在有效的评分中:
    信用评分=真
    其他:
    信用评分=错误
    当信用评分=False时:
    打印(“请输入有效的信用分数”)
    答案=输入(f“{问题}”)
    如果int(应答)在范围(350851)内:
    信用评分=真
    打破
    打破
    而credit_score==True:
    如果int(回答)信用良好:
    打印(“您的首期付款将为100000美元。”)
    打破
    不良信用中的elif int(答案):
    打印(“您的首期付款将为200000美元。”)
    打破
    
    这里发生了一些事情:

  • 您正在将一个值与一个范围进行比较,例如,
    10==range(0,20)
    将始终返回False

  • 您正在将字符串与整数进行比较。如果您检查类型,您将看到
    answer
    实际上是一个
    str

  • 类型(应答)
    出[1]:
    str
    
    因此,您应该尝试:

  • 替换
    if int(answer)==良好信用
    if int(answer)为良好信用
  • answer==
    替换为
    int(answer)中的
  • good_credit=范围(750851)
    不良信用=范围(350750)
    有效信用评分=范围(350851)
    打印(“一栋房子价值1000000美元”)
    问题=(“你的信用分数是多少?”)
    答案=输入(f“{问题}”)
    如果int(答案)在有效的评分中:
    信用评分=真
    其他:
    信用评分=错误
    当信用评分=False时:
    打印(“请输入有效的信用分数”)
    答案=输入(f“{问题}”)
    如果int(应答)在范围(350851)内:
    信用评分=真
    打破
    打破
    而credit_score==True:
    如果int(回答)信用良好:
    打印(“您的首期付款将为100000美元。”)
    打破
    不良信用中的elif int(答案):
    打印(“您的首期付款将为200000美元。”)
    打破
    
    整数如何等于范围?整数如何等于范围?