python中的用户定义的函数程序不起作用

时间:2017-03-21 14:43:22

标签: python-2.7 user-defined-functions

我已经在python中编写了这段代码,但是当我尝试使用函数编写相同的程序时,它是不可能的。帮我! 这是正在运行的代码:

count=0
total=0   
while True:
    try:
        itervar=raw_input('Enter a number: ')
        if  itervar == 'done':
            break
        itervar=float(itervar)
        count=count+1
        total=total+itervar
        average=total/count
    except:
        print 'Invalid input'
print total, ' ' , count, ' ' , average

这不起作用:

def count(itervar):
    count = count+1
    return count

def total(itervar):
    total = total+itervar
    return total

def average(count,total):
    z=total/count
    return z
count=0
total=0
while True:
    try:
        itervar=raw_input('Enter a number: ')
        if  itervar == 'done':
            break
        itervar=float(itervar)
        count=count(itervar)
        total=total(itervar)

    except:
        print 'Invalid input'
print total, ' ' , count, ' ' , average(count,total)

1 个答案:

答案 0 :(得分:1)

我认为将变量命名为与函数名称相同是个不错的主意。我把它清理干净了:

val strm = true #:: false #:: Stream[Boolean]()
def matchStream[T](stream:Stream[T]):List[String] = {
  stream match {
    case head #:: tail => head.toString :: matchStream(tail)
    case stm if stm.isEmpty => List("end of stream")
  }
}
matchStream(strm)