Python 创建一个循环,询问值,存储值,然后打印平均值?
我需要创建一个算法,从用户那里获取值(工资),然后计算平均工资(就像一个输入循环,存储所有输入值,直到键入停止命令)。然后我必须打印工资超过100英镑的人的百分比 我是Python新手 我成功地创建了输入循环,但不知道如何存储这些值,以后再计算平均值Python 创建一个循环,询问值,存储值,然后打印平均值?,python,python-3.x,Python,Python 3.x,我需要创建一个算法,从用户那里获取值(工资),然后计算平均工资(就像一个输入循环,存储所有输入值,直到键入停止命令)。然后我必须打印工资超过100英镑的人的百分比 我是Python新手 我成功地创建了输入循环,但不知道如何存储这些值,以后再计算平均值 print(“输入工资,完成后输入-1”) 工资=整数(输入(“键入工资”)) 计数=1 出口=-1 退出时!=工资: 工资=整数(输入(“输入工资:”) 计数+=1 def average(): 工资/盘点 如果工资==退出: 打印(平均) 在执
print(“输入工资,完成后输入-1”)
工资=整数(输入(“键入工资”))
计数=1
出口=-1
退出时!=工资:
工资=整数(输入(“输入工资:”)
计数+=1
def average():
工资/盘点
如果工资==退出:
打印(平均)
在执行while
循环之前,您可以创建一个空列表来存储工资:
wageList = []
在循环中,您可以将每个工资添加到列表中(在下一个输入之前)
:
最后,您可以得到平均值:
if len(wageList) == 0:
print("No wages given")
else:
print("Average was {}".format(sum(wageList) / len(wageList)))
通过使用列表的长度,您不需要存储计数
此外,有些代码是错误的和/或多余的:
def average():
wages / count // You probably wanted to return this :-)
if wages == exit:
print(average) // average is a function, you would want to use average()
我的建议是不要这样做,因为代码非常简单,可以在一段代码中完成(无需函数)
工资超过100英镑的人数可通过以下方式获得:
num = len([item for item in wagesList if item > 100])
但是,如果您想停留在Python的“更简单”的一端(不太像Python,但可能更符合这个类的级别),您可以使用一个循环:
num = 0
for item in wagesList:
if item > 100:
num += 1
然后百分比为(假设大小为非零,请检查是否与上面的相同):
我建议:
total = 0
count = 0
while True:
inval = int(input("Type the Wage: "))
if inval == -1:
break
total = total + inval
count = count + 1
print("average is " + str(total / count))
试试这个
persons = []
wages_persons = []
print("Enter person name, when finished type exit")
person = input("Enter person name: ")
while person != 'exit':
persons.append(person)
print("Type the wages, when finished type -1")
wages = int(input("Type the wage: "))
wages_list = []
while wages !=-1:
wages = int(input("Type the wage: "))
if wages!=-1:
wages_list.append(wages)
if wages_list:
avg = sum(wages_list)/len(wages_list)
print("Average of {} is {}".format(person,avg))
wages_persons.append(avg)
person = input("Enter person name: ")
wages_over_100 = [x for x in wages_persons if x>100]
print("Total {}% persons have wages avarage above 100$".format((len(wages_over_100)/len(wages_persons))*100))
这将符合您的期望。好的,在我可以帮助您之前,这里是我的问题。我们需要更多的信息来解释需要什么。你希望它只接受一定数额的工资吗?例如,只有5个输入?或者你想让它一直持续到用户输入一个关键字吗?不,是指用户想要输入的数量,然后进行平均值。只是一小部分建议,在计算平均值之前,您可能需要检查
count==0
。@paxdiablo这是一个快速而肮脏的解决方案,因此我没有添加案例检查等。很高兴能帮助您解决问题!
total = 0
count = 0
while True:
inval = int(input("Type the Wage: "))
if inval == -1:
break
total = total + inval
count = count + 1
print("average is " + str(total / count))
print("Type the wages, when finished type -1")
wages = int(input("Type the wage: "))
wages_list = []
while wages !=-1:
wages = int(input("Type the wage: "))
if wages!=-1:
wages_list.append(wages)
if wages_list:
print("Average is :",sum(wages_list)/len(wages_list))
persons = []
wages_persons = []
print("Enter person name, when finished type exit")
person = input("Enter person name: ")
while person != 'exit':
persons.append(person)
print("Type the wages, when finished type -1")
wages = int(input("Type the wage: "))
wages_list = []
while wages !=-1:
wages = int(input("Type the wage: "))
if wages!=-1:
wages_list.append(wages)
if wages_list:
avg = sum(wages_list)/len(wages_list)
print("Average of {} is {}".format(person,avg))
wages_persons.append(avg)
person = input("Enter person name: ")
wages_over_100 = [x for x in wages_persons if x>100]
print("Total {}% persons have wages avarage above 100$".format((len(wages_over_100)/len(wages_persons))*100))