2016-10-12 4 views
0

Я очень новичок в python и пытаюсь написать код, чтобы пользователь что-то ввел. Если это целое число, оно сортируется в списке Numbers, если это строка, она входит в список String.Как найти среднее значение списка

Я хочу, чтобы найти среднее из всех номеров, которые находятся в списке, и распечатать результат. И в разделе «Строка» я хочу иметь возможность распечатывать все внутри строки и ее длины. Пользовательские типы «save», чтобы выйти, и если введенный вход является допустимым.

Numbers = [] 
String = [] 

while(True): 
    user_input = input("What's your input? ") 
    if user_input == "save": 
     break 
    elif user_input.isdigit(): 
     Numbers.append(user_input) 
     for i in range(len(Numbers)): 
      Numbers[i] = int(Numbers[i]) 
      print(sum(Numbers)/len(Numbers) 
    elif isinstance(user_input, str): 
     String.append(user_input) 
     print(String) 
     print (len(String)-1) 
    else: 
     print("Invalid input.") 
     break 
+1

На линии 'печать (сумма (Числа)/LEN (длина)', то, по всей видимости, отсутствует закрывающую скобку (')') , Это опечатка при копировании на сайт? – Aurora0001

+2

вам не нужно преобразовывать все числа в целые числа каждый раз! И 'len (Length)' также должен быть опечаткой. Должно быть 'len (Numbers)' и вычислено из цикла. BTW не будет работать для отрицательных чисел из-за метода 'isdigit()'. –

+0

Обновлено опечатка спасибо, но по-прежнему не исправлялись проблемы, и я не хочу учитывать негативы только положительные – Shadowsista

ответ

0

Вы используете Length, что не определено. Я думаю, что ты хотел

print(sum(Numbers)/len(Numbers)) 

и вы, вероятно, не хотите его внутри цикла, но только после этого (хотя это может быть другой опечатка).

+0

Извинения, обновленный код, чтобы иметь правильную переменную, было ошибкой при наборе текста. – Shadowsista

1

Там это хорошая вещь называется statistics.mean:

from statistics import mean 
mean(your_list) 
+0

Меня попросили сделать это, не импортируя ничего и просто сделать это с помощью кодирования. – Shadowsista

2
#use isalpha to check enterted input is string or not 
#isalpha returns a boolean value 

Numbers = [] 
String = [] 

while(True): 
    user_input = input("input : ") 
    if user_input == "save": 
     break 
    elif user_input.isdigit(): 
     Numbers.append(int(user_input)) 
     print(sum(Numbers)/len(Numbers)) 
    elif user_input.isalpha(): 
     String.append(user_input) 
     print(String) 
     print (len(String)) 
    else: 
     print("Invalid input.") 
     break 
Смежные вопросы