【发布时间】:2017-06-25 01:27:08
【问题描述】:
我刚刚开始学习 Python(我第一次涉足编码),这是我第一次发帖......我希望我不会通过问这个问题来滥用论坛(我基本上是在请专家帮我学习)。如果社区对此不赞成,请告诉我。
对于密歇根公开课程的这项作业,我被指示要求用户输入,直到用户输入“完成”,此时代码应计算最大、最小、总和和平均值。在我所有的测试运行中,它运行良好。但我觉得可能有一种更简单的方法来编写这段代码。谁能提供改进建议?
largest = None
smallest = None
count = 0
sum = 0
while True:
try:
num = raw_input("Enter a number: ")
if num == "done" : break
num = float(num)
count = count + 1
sum = sum + num
avg = sum/count
if largest is None:
largest = num
if smallest is None:
smallest = num
if num < smallest:
smallest = num
elif num > largest:
largest = num
continue
except: print 'Invalid input'
print "Maximum is", int(largest)
print "Minimum is", int(smallest)
print "Count:", int(count)
print "Sum:", int(sum)
print "Average:", avg
【问题讨论】:
-
你为什么使用
float,后来又转换回int? -
我想平均为浮点数,但其他一切都是整数。如果我没有指定 int 或 float,那么非数字值将在“try”子句中起作用。但是如果我从 int 开始,那么我就无法获得浮点数(平均)。这有意义吗?有没有更好的方法?
标签: python-2.7 sum max average min