Я нашел это на HackerRank.
Мне пришлось набрать номер.студентов (скажем, n).Затем каждая из следующих n строк имела имя ученика и отметки трех предметов для ввода пользователем.Следующая строка состояла из имени любого из студентов.Основываясь на этом входном сигнале, я должен был вычислить среднее значение оценок этого студента. Я должен был предоставить данные, подобные этой (в соответствии с тестовыми примерами):
4
nameA 50 50 50
nameB 69 78 45
nameC 56 47 45
nameD 57 49 30
nameC
Поскольку я должен был давать входные данные нескольких типов нав той же строке, в то время как я пытался добавить список, он выдал мне ошибку «недопустимый литерал».Поэтому я использовал input().split(" ")
.Это мой код:
if __name__ == '__main__':
n = int(input())
list1 = []
for i in range(0,n):
a = input().split(" ")
b = input().split(" ")
c = input().split(" ")
d = input().split(" ")
b = float(b)
c = float(c)
d = float(d)
list1.append(a)
list1.append(b)
list1.append(c)
list1.append(d)
name = input().split()
avg = 0.00
inn = list1.index(name)
avg = (list1[inn+1]+list1[inn+2]+list2[inn+3])/3
print(avg)
Но это было отображено сообщение об ошибке:
Traceback (most recent call last):
File "solution.py", line 11, in <module>
b = float(b)
TypeError: float() argument must be a string or a number, not 'list'
С другой стороны, если я просто введу ввод с помощью input()
, появится «неверный»Литерал с базой 10 'снова ошибка.Что не так с типизацией?И как я могу дать различные типы входов в одной строке (то есть, используя пробелы).Я пытался сделать этот вопрос, используя вложенные списки тоже.Но если мне нужно добавить вложенный список, какой должен быть синтаксис?