这学期我在学习Python,这是我的家庭作业。在
有人能告诉我为什么我的代码错了吗?在
问题:
你想知道你在计算机科学方面的成绩,所以写一个程序,在你输入“stop”之前,它会将你的平均成绩打印到标准输出中,直到你输入“stop”为止。在
我的代码:
total=0
count=0
while True:
grade=input("Enter Your Grades between 0 and 100 [put 'stop' when done]:")
if grade<0 or grade>100:
print("Invalid Input")
continue
elif grade=="stop":
break
else:
count+=1
total+=grade
print "Your Average Grade is:"+format(total/count,'.2f')
当我运行代码时,Python一直给我以下消息:
将
input
更改为raw_input
可以先计算字符串stop,尝试用
raw_input
捕获输入:我为正确执行添加了不同的条件,检查行,例如
if grade.isdigit():
以验证输入值是否为数值,当此计算时我们可以正常工作与任何数学计算。在如果用户在第一次迭代中写入
stop
,则返回count == 0:
。在在最后一行中,可以使用两种不同的方法打印值:
^{pr2}$或者
您使用的是Python2.7,因此使用}。后者计算输入,因此
raw_input
,而不是{5 + 2
将返回7
,而不是字符串'5 + 2'
。输入stop
试图将stop
作为一个不存在的变量求值。在{{cd2>在Python中,{cd2>和^都是一个整数{cd2>除法。如果需要浮点平均值,请使用
float(total)/count
。其中一个变量必须是float才能得到float答案。在您还将发现
grade
是一个字符串,因此首先测试'stop'
,然后将其转换为int
来测试等级grade = int(grade)
。您可能需要考虑处理错误。如果用户键入10a
怎么办?在相关问题 更多 >
编程相关推荐