为了账号安全,请及时绑定邮箱和手机立即绑定

循环以添加更多输入

循环以添加更多输入

LEATH 2022-09-06 17:30:53
我还有3辆车,但我需要知道如何循环诸如汽车输入之类的东西,这样如果你对附加功能做了错误的输入,它将允许你再次输入它,所以它们必须是1或0。print("===================================================") print("==============Car Finance Calculations=============") print(" Choose your veicle: ")print(" SUV type 1 ")print(" Hatch type 2 ")print(" Sedan type 3 ")print("===================================================")caaaaaaaar = int(input(" Please enter Which car you want to finance: "))years = int(input(" enter years of loan either 3 or 4 or 5 Years: "))      if caaaaaaaar == 1:                                                 carsvalue = int(input("Please enter you cars value: "))        residual = carsvalue * 0.30                                                   financing = carsvalue - residual                                print(" financing value for the car is: ", round(financing,2))          print(" Intrest rate is 9% ")                                   n = years * 12                                                  r = 9 / (100 * 12)                                             Financingcost = financing * ((r*((r+1)**n))/(((r+1)**n)-1))     print(" Your Montly financing rate is: ", round(Financingcost,2))        print("================================================================================")    print("Please Choose extras: ")                                       print("======================================================")    print(" If you would like fuel type 1 if not type 0")    print(" If you would like insurance type 1 if not type 0")    print(" if you would like Maintenance type 1 if not type 0")
查看完整描述

4 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您希望使用 while 循环。喜欢这个:


carsEntered = 0

while (carsEntered <= 4):

    caaaaaaaar = int(input(" Please enter Which car you want to finance: "))

    years = int(input(" enter years of loan either 3 or 4 or 5 Years: "))

    carsEntered += 1

您也可以改用循环,但这取决于您要执行的操作。for


查看完整回答
反对 回复 2022-09-06
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

根据我对问题的理解,您希望运行迭代,直到用户给出正确的答案。


在这种情况下,可以在 中使用 标志变量。while


flag = False

while(flag is False):

    if(condition_statisfied):

        flag = True


查看完整回答
反对 回复 2022-09-06
?
杨魅力

TA贡献1811条经验 获得超6个赞

我的建议是采取一种功能性方法来解决这个问题。您正在多次调用,并希望在每次继续下一行之前验证用户输入。您可以在一个函数中执行此操作,该函数将继续循环,直到确认输入有效。验证输入后,可以通过使用关键字返回值来退出函数的帧。int(input())return


# This is the function definition. 

# The code in this function does not execute until the function is called.

def prompt_int(

        text,

        minimum=0,

        maximum=1,

        error="The value you entered is not valid try again."

):

    # when the function is called it will start a second while loop that will keep looping

    # until valid input is entered

    while True:

        try:

            val = int(input(text))

            if minimum <= val <= maximum:

                return val

            raise ValueError

        except ValueError:

            print(error)



# This is the outer while loop. It will keep looping forever if the user so chooses.

while True:

    # instead of calling print() a bunch one option is to assign a docstring to a variable

    car_prompt = '''

===================================================

==============Car Finance Calculations=============

Choose your veicle:

SUV: 1

Hatch: 2

Sedan: 3

===================================================

Please enter the number for the car you want to finance or 0 to exit:\n

'''

    # This is where we first call the function. 

    # Our docstring will be passed into the function to be used as a prompt.

    # We also pass in some args for maximum and minimum params

    caaaaaaaar = prompt_int(car_prompt, 0, 3)

    # 0 is false so we can exit the while loop if the user enters 0

    if not caaaaaaaar:

        break

    year_prompt = "Enter years of the car loan (3, 4 or 5):\n"

    years = prompt_int(year_prompt, 3, 5)


    if caaaaaaaar == 1:

        val_prompt = "Please enter you cars value:\n"

        carsvalue = prompt_int(val_prompt, 0, 2147483647)

        residual = carsvalue * 0.30

        financing = carsvalue - residual


        print("Financing value for the car is: ", round(financing, 2))

        print("Intrest rate is 9% ")


        n = years * 12

        r = 9 / (100 * 12)

        Financingcost = financing * ((r * ((r + 1) ** n)) / (((r + 1) ** n) - 1))


        print(" Your Montly financing rate is: ", round(Financingcost, 2))

        print("================================================================================")

        print("Please Choose extras: ")

        print("======================================================")

        x = prompt_int("If you would like fuel type 1 else type 0:\n")

        y = prompt_int("If you would like insurance type 1 else type 0:\n")

        z = prompt_int("If you would like Maintenance type 1 else type 0:\n")

        print("======================================================")


        if x == 1:

            print("Yes you want fuel")

            fuelcost = 80 * 4.33

            print("fuel cost is", round(fuelcost, 2))

        else:

            print("you dont want fuel as an extra")

            fuelcost = 0

            print("Fuel cost is: ", fuelcost)


        print("=======================================")


        if y == 1:

            print("yes you want insurance")

            insurancecost = (1200 / 12)

            print("Insurance cost is: ", round(insurancecost, 2))

        else:

            print("you dont want insurance")

            insurancecost = 0

            print("insurance cost is: ", insurancecost)


        print("=======================================")


        if z == 1:

            print("yes you want maintenance")

            maintenancecost = (100 * 1)

            print("Maintenance cost is: ", round(maintenancecost, 2))

        else:

            print("you dont want maintenance")

            maintenancecost = 0

            print("maintenance cost is: ", maintenancecost)

        print("=======================================")


        total_cost_for_extras = fuelcost + maintenancecost + insurancecost

        print("Total cost for the selected extras is: ", round(total_cost_for_extras, 2))

        TOTALFOREVERYTHING = total_cost_for_extras + Financingcost

        print("Total monthly financing rate is: ", round(TOTALFOREVERYTHING, 2))

    elif caaaaaaaar == 2:

        # Put your code for car 2 in this block. 

        # If it is like car 1 code except the value of a few variables 

        # then make another func 

        pass

    else:

        # Car 3 code...

        pass


查看完整回答
反对 回复 2022-09-06
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

我建议你把你的车辆类型放在字典里:


vehicle_type_dict = {

    1: "SUV type",

    2: "Hatch type",

    3: "Sedan type"

}

并执行 while 循环以检查您的输入是否在字典中:


while True:

    caaaaaaaar = int(input(" Please enter Which car you want to finance: "))


    if caaaaaaaar not in vehicle_type_dict:

        continue #loop again if input not in the dictionary


    #read next line of code if input is in the dictionary


    #do something below if input is correct


    years = int(input(" enter years of loan either 3 or 4 or 5 Years: "))


    break #end loop


查看完整回答
反对 回复 2022-09-06
  • 4 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信