Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3+;:虽然循环继续要求用户输入费用,即使用户输入停止循环的按钮。_Python_Python 3.x_While Loop - Fatal编程技术网

Python 3+;:虽然循环继续要求用户输入费用,即使用户输入停止循环的按钮。

Python 3+;:虽然循环继续要求用户输入费用,即使用户输入停止循环的按钮。,python,python-3.x,while-loop,Python,Python 3.x,While Loop,编辑:我能够让它通过循环,但现在代码一直在通过一个“输入费用”的请求运行,不管按下哪个按钮 如果需要完整的代码,以下是代码的顺序: def getExpenses(): userExpense = 0 totalExpenses = 0 moreExpenses = "" while moreExpenses != "y": userExpense = float(input("Enter an expense: ")) total

编辑:我能够让它通过循环,但现在代码一直在通过一个“输入费用”的请求运行,不管按下哪个按钮

如果需要完整的代码,以下是代码的顺序:

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)
要停止循环,请按“y”

因此,就这一点而言,它完全按照锡上所说的去做。 然而,这有点不合逻辑:

系统会提示您一个问题“
您是否有更多费用”

如果您回答“
y
”(=是),它将停止。。。因此,您应该更改
=
=
并在循环之前将
morepenses
变量预设为
y

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

它调用intro()的部分在哪里?我在上面的文章中添加了调用它的主模块。
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