我是python的新手,正在努力为一个类创建一个程序。我们应该在一周内记录每天的降雪量,并将输入四舍五入到小数点后一位,我这样做了:
def main():
print "~*~*~*~*~*~ SNOWFALL LOG ~*~*~*~*~*~"
snowFall = float (raw_input("Enter Snowfall for Day 1: "))
print "Snowfall for Day 1: ", ("%.1f" % snowFall)
snowFall = float (raw_input("Enter Snowfall for Day 2: "))
print "Snowfall for Day 2: ", ("%.1f" % snowFall)
snowFall = float (raw_input("Enter Snowfall for Day 3: "))
print "Snowfall for Day 3: ", ("%.1f" % snowFall)
snowFall = float (raw_input("Enter Snowfall for Day 4: "))
print "Snowfall for Day 4: ", ("%.1f" % snowFall)
snowFall = float (raw_input("Enter Snowfall for Day 5: "))
print "Snowfall for Day 5: ", ("%.1f" % snowFall)
snowFall = float (raw_input("Enter Snowfall for Day 6: "))
print "Snowfall for Day 6: ", ("%.1f" % snowFall)
snowFall = float (raw_input("Enter Snowfall for Day 7: "))
print "Snowfall for Day 7: ", ("%.1f" % snowFall)
main()然而,在那之后,我们应该使用for循环来计算总降雪量和平均值。我知道命令str(command)也以某种方式参与其中,但我不知道是如何参与的。
我应该如何处理这个问题?
发布于 2013-02-01 15:39:03
我建议你做的是把这些值放到一个列表中,用来存储它们。因此,在打印之前,请输入以下内容:
snowFallTotal = []现在您可以将值放入此列表中。在每个raw_input之后放入以下内容:
snowFallTotal.append(snowFall)这样做的目的是将snowFall‘追加’到列表中。
现在,在获得所有值之后,可以使用for循环计算总和,然后除以7得到平均值。
totalSum = 0 # variable to store the sum
for i in snowFallTotal: # iterate through the value list
totalSum += i # augmented addition; adds the value to the variable in place
average = totalSum / 7.0 # floating point division to get accurate average然后,您可以打印结果。
print 'Average Snowfall for the week:', ('%.1f' % average)顺便说一句,您不需要for循环。您可以将其替换为一个简单的sum函数。
totalSum = sum(snowFallTotal)这会将totalSum赋值给snowFallTotal中所有元素的和,这也正是for循环所做的。
发布于 2013-02-01 16:50:49
如果使用循环,可以节省几行代码:
# An empty list to hold data
snowfalls = []
# Loop through each daynumber, from 1 to 7
for daynumber in range(1,8):
snowfall = float(raw_input("Enter Snowfall for Day {}: ".format(daynumber)))
snowfalls.append(snowfall)
print "Snowfall for Day {}: {:.1f}".format(daynumber, snowFall)
# For debugging, print the whole list
print snowfalls
# Calculate total
total_snowfall = sum(snowfalls)
print "Total snowfall: {:.1f}".format(total_snowfall)
# Calculate average (= total / 7.0 )
# len() gets the length of the snowfall list
average_snowfall = total_snowfall / len (snowfalls)
print "Average snowfall: {:.1f}".format(average_snowfall)我使用了format(),这是一种新的字符串格式化方法--它非常好用:)
发布于 2013-02-01 16:44:03
我建议你仔细阅读你的作业规范,以及你的课堂笔记。作业没有足够的材料让学生完成任务的情况很少见。
有许多与Python online相关的资源,包括官方文档,它们可以帮助您使用特定的功能,如str()。
如果你能直接接触到你的老师,问他们很多问题。它们可以帮助您解决有关如何处理编程任务的任何基本问题。
https://stackoverflow.com/questions/14641630
复制相似问题