簡體   English   中英

Python 3+:While循環繼續要求用戶輸入費用,即使用戶輸入了停止循環的按鈕。

[英]Python 3+: While loop continues to ask user to Enter an Expense even if user inputs button to stop loop.

def getExpenses():
    userExpense = 0
    totalExpenses = 0
    moreExpenses = ""
    while moreExpenses != "y":
        userExpense = float(input("Enter an expense: "))
        totalExpenses = totalExpenses + userExpense
        moreExpenses = input("Do you have more expenses? Type y" +\
                             " to input more expenses, or any key for no: ")

    return totalExpenses

編輯:我能夠使它遍歷整個循環,但是現在代碼始終通過詢問“輸入費用”的方式運行,無論按下哪個按鈕。

如果需要完整的代碼,則下面是預先的代碼序列:

##---Initializing Variable----------------------------------------------------------------------#
#-----------------------------------------------------------------------------------------------#
monthlyIncome=0
monthlyExpenses=0
totalExpenses=0

##---Introductory Statement: Welcome to the Program---------------------------------------------#
#-----------------------------------------------------------------------------------------------#
def intro():
    print("\n".join(["---------------------------------------------------------",
              "Hello and Welcome to the Budget Analyzer",
              "Get ready to find out how much money you'll have left $$$",
              "---------------------------------------------------------"]))
    return

##---The monthlyIncome mod. gets user input for income/mth to compare against expenses----------#
#-----------------------------------------------------------------------------------------------#
def getIncome(): 
    monthlyIncome=float(input("Please enter the amount of money you'll have for the month: "))
    return monthlyIncome

這是主要模塊-我仍在嘗試調試問題所在,因此尚未完成程序的各個部分:

#---Run main module-----------------------------------------------------------------------------#
def main():
    intro()
    getIncome()
    getExpenses(monthlyIncome)

您的代碼有效,但可能與您的預期不符:

def getExpenses():
    userExpense = 0
    totalExpenses = 0
    moreExpenses = ""
    while moreExpenses != "y":
        userExpense = float(input("Enter an expense: "))
        totalExpenses = totalExpenses + userExpense
        moreExpenses = input("Do you have more expenses? Type y" +\
                             " to input more expenses, or any key for no: ")

    return totalExpenses

為了停止循環,請按“ y”。

因此,就此而言,它的作用完全符合錫罐上的要求。 但是,這有點不合邏輯:

系統會提示您“ do you have more expenses

如果你回答“ y ”(= YES)停止......所以你應該改變!==和預設moreExpenses變量y循環之前:

def getExpenses():
    userExpense = 0
    totalExpenses = 0
    moreExpenses = "y"
    while moreExpenses == "y":
        userExpense = float(input("Enter an expense: "))
        totalExpenses = totalExpenses + userExpense
        moreExpenses = input("Do you have more expenses? Type y" +\
                             " to input more expenses, or any key for no: ")

    return totalExpenses

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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