我在上编程入门课,我刚刚开始学习循环。我的问题是关于输入的平均值,它应该用while循环来完成。当用户输入end而不是数字时,表示循环结束并计算平均值。程序应该打印平均值并返回它。此外,如果用户没有输入任何数字,直接输入结束,程序应该打印“没有输入数字”。我尝试创建循环,但我不知道我的循环运行时遗漏了什么。此外,我不允许使用任何内置的函数,如sum,ave等。
以下是我到目前为止编写的代码
def avgOfTheSum():
total = 0
avg = 0
count = 0
while True:
number = input("Enter next number:")
if number != 'end':
num = float(number)
total = total + num
count = count + 1
average = total/count
else:
print("The Average is:",average)
break
return average发布于 2016-10-31 02:39:03
从我不太有经验的角度来看,有几个小贴士:
当你递增一个变量时,例如。‘+= = total + num',你可以用一种更简洁的方法来实现:使用'total total num’来做同样的事情,并减轻你的代码。有些人觉得它很难看,所以如果你愿意的话,可以使用它。
您首先声明了一个名为'avg‘的变量,但后来又使用了'average',这导致在尝试打印'average’时出现错误,因为第一个'if‘语句被绕过了,所以没有定义这个变量。您应该使用一个名称来表示平均值。'avg‘或'average’都可以,但请记住,你的代码必须容易理解,所以尽量不要挤太多东西,特别是当你完成后有人正在审查它的时候。使用一个名字并坚持使用它。这样,当用户输入您的代码不能处理的内容时,就不会出现错误。
您可以添加安全网络以确保用户通过一个数字,但最简单的方法需要使用python内置。
你可以添加类似这样的东西(不是python,不要这样写)
如果count =0,则打印'no numbers entered‘
然后:
如果要退出应用程序,请中断
或者,如果您想强制用户输入一个数字,则通过(强制执行一个新循环)
希望它能对你有所帮助!
https://stackoverflow.com/questions/40331914
复制相似问题