2013-08-08 2 views
0

Я пытаюсь создать функцию, которая может получить любое количество входов и найти медиану. Я чувствую, что все это неправильно, я не могу получить этот функционал.
Что мне нужно сделать?Как найти медиану?

  1. Я сделал свой список
  2. Я спросил у пользователя входов
  3. Я отсортированных с NumPy
  4. я напечатал медианный

Код:

import numpy 

numbers = [1,2,3]     
1 = input("Please type your first number")    
2 = input("please type your second number")  
3 = input("please type your third number")  
median = numpy.median(numbers)    
print(median) 

То, что я пытаюсь для достижения:

Какие номера вы бы хотели найти? 1,2,3,4,5,6,7
Медиана: 4

+3

Вы не можете назначить '1'. '1' - число; вы не можете превратить его в «2» или что-то в этом роде. – user2357112

+0

Я только начинаю программировать, я этого не знал. Как бы я его назначил? – Stevenson

+0

Назначьте переменные или элементы списка или добавьте их в список. – user2357112

ответ

4

Вы должны сохранить числа в списке и использовать цикл для добавления к нему чисел.

import numpy 

size = int(input("Enter number of numbers you would like to enter")) 
numbers = [] 
for i in range(size): 
    numbers.append(int(input("Please type in number %d" % i))) 

median = numpy.median(numbers) 

print(median) 

Ваш подход терпит неудачу, поскольку вы пытаетесь использовать числа как имена переменных, что недопустимо.

+0

Не уверен, что не так с этим ответом, поэтому мне хотелось бы получить обратную связь! – jh314

+0

Будучи новичком-программистом, я не знал, что мне придется загружать NumPY, после этого я в конечном итоге использовал это. Это было полезно! – Stevenson

2

Вы не можете назначать значения 1, 2 или 3. Кроме того, вам необходимо преобразовать строки из input в int s. Попробуйте некоторые простые изменения.

import numpy     
input1 = input("Please type your first number")    
input2 = input("Please type your second number")  
input3 = input("Please type your third number") 
numbers = map(int, [input1, input2, input3]) 
median = numpy.median(numbers)    
print(median) 
+0

Я вижу, что мой код вводит в заблуждение, это помогает мне понять, что я должен был сделать для функциональности. Хотя я собирался за то, что отправил @ jh314. – Stevenson