for i in range(1,10)真的是让我啃了好多骨头,恨。
python的循环结构使用以上语法,range()相当于是一个数组,默认地址从0开始,表示i遍历函数中的每个值。
可简写为for i in range(10),表示从0开始,到9结束的10个数。
求任意个输入数字的平均值,要求当输入负数时停止输入。
拿到题目时第一反应是用for循环输入,但不知如何存放数据。
第一个做法是创建了一个数组lst[]来存放数据,再用sum()函数求和,用len()函数求数组长度,语法知识掌握得不够,无解。
第二个做法是采用累加的方法求和。有三个错误:(1)把输入语句放在了循环体之外,导致不能循环输入,按下enter键就报错(2)累加语句写的avg+=a/i,天真的认为当前均值=每次均值相加。错!(3)改正累加语句后分母写的i,错!输入第一个数据时 i=0 ,第一轮输入就报错,应改为(i+1).代码如下:
avg=0
s=0
for i in range(30):
a=eval(input("分数:"))
if a<0:
break
else:
s+=a
avg=s/(i+1)
print("平均分数是:"+str(avg))
运行结果: