2015-03-25 3 views
1

Im возникли проблемы с моим кодом, и это говоритTypeError: неподдерживаемый тип операнда (ов) для +: «INT» и «ул» ошибка

TypeError: unsupported operand type(s) for +: 'int' and 'str'

и я не знаю, почему. область моего кода, которая вызывает это, показана ниже, вся помощь будет оценена: D! * Отредактируйте ошибку, похоже, происходит из-за параметров ввода, если это помогает в любом случае.

Score1 = str(input("what did the first person get in their test the first  time?")) 
Score2 = str(input("what did the first person get in their test the second time?")) 
Score3 = str(input("what did the first person get in their test the third time?")) 

Score4 = str(input("what did the second person get in their test the first time?")) 
Score5 = str(input("what did the second person get in their test the second time?")) 
Score6 = str(input("what did the second person get in their test the third time?")) 


Score7 = str(input("what did the third person get in their test the first time?")) 
Score8 = str(input("what did the third person get in their test the second time?")) 
Score9 = str(input("what did the third person get in their test the third time?")) 


P1S = [Score1, Score2, Score3] 
P2S = [Score4, Score5, Score6] 
P3S = [Score7, Score8, Score9] 



print ("here are the scores of",Name1,",well done") # defines scores 
print(P1S) 
print ("here is the average score of",Name1,",Well Done") # makes average of scores 
print(sum(P1S)/float(len(P1S))) 

print ("here are the scores of",Name2,",well done") # defines scores 
print(P2S) 
print ("here is the average score of",Name2,",Well Done") # makes average of scores 
print(sum(P2S)/float(len(P2S))) 

print ("here are the scores of",Name3,",well done") # defines scores 
print(P3S) 
print ("here is the average score of",Name3,",Well Done") # makes average of scores 
print(sum(P3S)/float(len(P3S))) 
+0

Я думаю, что вам нужно вывести входы 'Score' для int, они первоначально интерпретируются как строки – EdChum

+0

Можете ли вы объяснить, что вы хотите сделать? Кроме того, вы могли бы уменьшить свой код, чтобы он был минимальным, чтобы показать eror? –

+0

Я хочу, чтобы я мог использовать свои входы в качестве чисел для работы в сумму –

ответ

1

Вы явно позаботиться о том, что все входы пользовательские строки:

Score1 = str(input("what did the first person get in their test the first  time?")) 

если заменить str() на int() или float() (в зависимости от того, что вы ожидаете, что вход будет), ваш проблема должна исчезнуть, потому что вы получите числовой тип, а не str ing.

+0

Теперь я получаю эту проблему. Traceback (последний последний звонок): Файл «\\ CUR-FSM \ 10brierleye $ \ Computing CA 2 \ task 3 средний .py ", строка 57, в Stu3AVG = (сумма (оценка3))) # Определяет среднее значение ТипError: объект 'int' не является итерабельным –

+0

эта строка не встречается в коде вы отправили. Действительно, вы могли бы: a) открыть новый Вопрос или b) попытаться ** понять **, что делает ошибка. Программирование связано с пониманием проблем, и то, что вы сейчас делаете, постоянно работает с ошибками StackOverflow до * report *. Я рекомендую действительно прочитать ошибку. Это действительно говорит, что не так. –

+0

Я бы попытался показать вам весь мой код, но он слишком длинный для ответа, в основном я вводил имя и некоторые значения, чтобы создать среднее значение введенных баллов, сортировать имя в алфавитном порядке и сортировать их в числовом порядке от от максимума до самого низкого, но он говорит, что введенное целое не является итерируемым, и я не уверен, почему: L –

0

Cast строка путем ввода по умолчанию в целое число, так что вы можете вычислить средний балл:

Score1 = int(input("what did the first person get in their test the first time?")) 
+0

Я продолжаю получать сообщение: объект «int» не является итерируемым –

+0

Вы производите оценку? Опубликуйте обновленный код для отладки. –

+0

Вы в Python 2 или 3? –

0

Вы также можете использовать карту при расчете вашего счета.

print ("here are the scores of",Name1,",well done") # defines scores 
print(P1S) 
print ("here is the average score of",Name1,",Well Done") # makes average of scores 
print(sum(map(int,P1S))/float(len(P1S))) 

print ("here are the scores of",Name2,",well done") # defines scores 
print(P2S) 
print ("here is the average score of",Name2,",Well Done") # makes average of scores 
print(sum(map(int,P2S))/float(len(P2S))) 

print ("here are the scores of",Name3,",well done") # defines scores 
print(P3S) 
print ("here is the average score of",Name3,",Well Done") # makes average of scores 
print(sum(map(int,P3S))/float(len(P3S))) 

Также не могли бы вы рассказать, как вы предоставляете входы.

+0

Я предоставляю входные данные с помощью ручного ввода, я все еще получаю Int, не является итерируемой проблемой, хотя я определяю ввод как целое число (так как мне нужно использовать его в уравнении позже в коде) –

+0

Можете ли вы указать строку № вместе с ошибкой. –

+0

номер строки - 56, и ошибка в том, что INT не является итерируемым, я не уверен, почему, поскольку он работал, когда я установил значения, но теперь, когда я добавил в целях ввода значений, которые он нарушил –

Смежные вопросы