2017-09-19 284 views
-6

问题: 山姆是一位老师。他想给他的学生提问。他做了12行数字(输入)。然后计算该数字:平均数(中位数),中位数,四分位数1和四分位数3. 制定计划以帮助山姆。所以,山姆可以很容易地得到答案。 注:对于平均数,中位数,四分位数1和四分位数的公式3. 规则:1.输入的数字是一个整数,而不是实数。 2.输出结果都是有两位小数的实数。 3.从最小到最大输入的数字可能相同。 4.不应该使用分支,数组或循环。 5.列出程序(代码程序)。用Python计算中位数和四分位数

number1= int(input("input point angka1 : ")) 
number2 = int(input("input point number2 : ")) 
number3 = int(input("input point number3 : ")) 
number4 = int(input("input point number4 : ")) 
number5 = int(input("input point number5 : ")) 
number6 = int(input("input point number6 : ")) 
number7 = int(input("input point number7 : ")) 
number8 = int(input("input point number8 : ")) 
number9 = int(input("input point number9 : ")) 
number10 = int(input("input point number10 : ")) 
number11 = int(input("input point number11 : ")) 
number12 = int(input("input point number12 : ")) 
mean = number1+number2+number3+number4+number5+number6+number7+number8+number9+number10+number11+number12+/12 

我不知道如何计算四分位数和中位数

+6

这是一个很好的故事,你与我们分享。请告诉山姆,如果他在途中遇到任何麻烦,请提出自己的想法并再次发帖! – offeltoffel

+0

你有任何的代码? – PrestonM

+2

如果你必须在没有电脑的情况下解决这个问题,你会怎么做? –

回答

1

这将是相当困难做(或只是需要大量的不必要的代码),而不使用数组...以下是如果阵列和numpy的解决方案被允许:

注:I =号码用户的数目被输入

import numpy as np 
from statistics import median 
def calculateStuff4Sam(i): 
    numbers = [] 
    res = {} 
    for _ in range(1, i+1): 
     numbers.append(int(input("input point number" + i + ": "))) 
    numbers = np.array(numbers) 
    res['mean'] = "{0:.2f}".format(np.mean(numbers)) 
    res['median'] = "{0:.2f}".format(np.median(numbers)) 
    res['25 percentile'] = "{0:.2f}".format(np.percentile(numbers, 25)) 
    res['50 percentile'] = "{0:.2f}".format(np.percentile(numbers, 50)) 
    res['75 percentile'] = "{0:.2f}".format(np.percentile(numbers, 75)) 
    return res 

结果示于字典()返回的格式。如果只想打印平均值:

results = calculateStuff4Sam(12) 
print(results['mean']) 

您还可以遍历结果的关键字,例如, '中值','25百分点',打印出所有计算值。