@kerpi0

Не работает прога, что делать?

напишите программу, которая считывает данных о каждом учащимся: фамилию, имя, возраст и рост.
а затем выводит данные об учащемся, рост которого является вторым по возрастанию.
гарантируется, что рост каждого учащегося не больше 200. python

n = int(input())
mini = 201
mini2 = 201

for i in range(n):
    sentence = str(input())
    primes = sentence.split(" ")
    height = primes[3]
    if height < mini:
        mini = height
    elif height < mini2:
        mini2 = height 
        answer = sentence

print(answer)
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@kerpi0 Автор вопроса
n = int(input())
mini = 201
primes = []

for _ in range(n):
    sentence = str(input())
    primes.append(sentence)

for i in range(n):
    sentence = primes[i]
    primes2 = sentence.split(" ")
    height = int(primes2[3])
    if height < mini:
        mini = height
        index = i

del primes[index]

mini = 201

for i in range(len(primes)):
    sentence = primes[i]
    primes2 = sentence.split(" ")
    height = int(primes2[3])
    if height < mini:
        mini = height
        answer = sentence

print(answer)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
MinTnt
@MinTnt
Интересная задачка. Толком я пока с телефона, так что на скорую руку что-то написал, потом подправлю
#фамилию, имя, возраст и рост.

Users = [input('Введите данные ученика: ') for x in range(int(input('Введите количество учеников: ')))]

print([x for x in Users if str(sorted([int(x.split(' ')[-1]) for x in Users])[1]) in x.split(' ')[-1]][0])


Логика работы, создаёт новый список, с int значениями роста, далее sorted сортирует по увеличению, далее использует второй в данном списке элемент со значением роста. И потом выводит первый попавшийся ответ, в котором значение роста написанное в конце, совпадает с полученным прежде значением
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы