Python 如何在主函数中打印值?

Python 如何在主函数中打印值?,python,list,function,return,Python,List,Function,Return,我的目标是: 接受输入(直到用户输入0)或退出(如果输入了字母) 运行一些检查以抛出非整数 将这些值添加到列表中,然后 然后打印列表的总和 我试图捕获main中变量close的布尔值,但我得到了一个错误 错误:“close=addToList()类型错误:addToList()缺少必需的1 位置参数:“numberList.” 如果输入了非整数,有什么更好的方法可以优雅地退出?谢谢。您在第二次通话中忘记了您的论点: close = addToList(sumTotal) 将您的main函数更改

我的目标是:

  • 接受输入(直到用户输入0)或退出(如果输入了字母)
  • 运行一些检查以抛出非整数
  • 将这些值添加到列表中,然后
  • 然后打印列表的总和 我试图捕获main中变量close的布尔值,但我得到了一个错误

    错误:“close=addToList()类型错误:addToList()缺少必需的1 位置参数:“numberList.”


    如果输入了非整数,有什么更好的方法可以优雅地退出?谢谢。

    您在第二次通话中忘记了您的论点:

    close = addToList(sumTotal)
    

    将您的
    main
    函数更改为如下所示

    def main():
        numberList = createList()
        close = addToList(numberList)
    
        sumTotal = sumList(numberList)
    
        if not close:
            printSum(sumTotal)
    
    def main():
        numberList = []
        close = addToList(numberList)
    
        if not close:
            printSum(sum(sumTotal))
    
    要使代码更干净,可以做的其他事情是删除
    sumList
    函数,只需使用内置的
    sum
    函数,然后删除
    createList
    ,因为它实际上不需要自己的函数。然后您的
    main
    将如下所示

    def main():
        numberList = createList()
        close = addToList(numberList)
    
        sumTotal = sumList(numberList)
    
        if not close:
            printSum(sumTotal)
    
    def main():
        numberList = []
        close = addToList(numberList)
    
        if not close:
            printSum(sum(sumTotal))
    
    谢谢各位

    我在addToList函数的末尾去掉了if-else,并返回了close值和numberList值:return(close,numberList) 然后主要使用内置和函数:

    close, numberList = addToList(numberList)
    
    #the main function
    def main():
        numberList = createList()
        close, numberList = addToList(numberList)
    
        if not close:        
            printSum(sum(numberList))
    
    最后,为了抛出所有输入的非整数输入,我使用了:

    if not stringname.isdigit():
    

    现在运行良好。

    正如错误明确指出的那样,
    addToList
    需要一个参数:
    def addToList(numberList)
    ,但您没有提供它:
    close=addToList()
    ,考虑使用<代码>如果关闭:<代码>而不是<代码>如果接近=真:< /代码>和代码>而不是停止添加:而不是<代码>,同时在PPE8中建议StaseP==false:< />代码,并且(以非常非常小的方式)更快。@Cornel可以随意将我的答案标记为已接受,如果您觉得它回答了您的问题,请向上投票:)谢谢。我已经更新了我的代码。另外,检查字符串以便只允许整数的最佳方法是什么?使用正则表达式?@Cornel您使用的
    isalpha
    很好,相反的是
    isdigit
    谢谢您的帮助。