我已经在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)
答案 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)