Найти максимальное значение и посчитать, сколько раз оно появляется в списке без использования функции max или count - PullRequest
0 голосов
/ 12 января 2020

Я сейчас изучаю python, и я изо всех сил пытаюсь найти ответ на задание. Мне нужно создать список из пользовательского ввода, затем найти самую высокую температуру на входе и посчитать, сколько раз эта температура появляется на входе. Наконец, я должен вывести самую высокую температуру и сколько раз она появляется.

input_temps = []
for i in range(int(input("Enter the tmeperature here: "))):
    input_temps.append(int(input()))

print(input_temps)

это то, что я имею до сих пор.

Редактировать: мне не разрешено использовать какие-либо функции max или count

Ответы [ 3 ]

2 голосов
/ 12 января 2020

(Примечание: это было до того, как они изменили вопрос, чтобы исключить эти функции, но решение без в конце)

Вы можете использовать функции max и count. А лучше улучшить входящие сообщения:

input_temps = []
for i in range(int(input("Enter the number of temperatures: "))):
    input_temps.append(int(input("Enter a temperature: ")))
print(input_temps)
max_temp = max(input_temps)
print(f'{max_temp=}')
max_temp_count = input_temps.count(max_temp)
print(f'{max_temp_count=}')

Демо:

Enter the number of temperatures: 3
Enter a temperature: 5
Enter a temperature: 4
Enter a temperature: 5
[5, 4, 5]
max_temp=5
max_temp_count=2

Так как вы сейчас запросили версию без использования max:

input_temps = []
max_temp = None
max_temp_count = None
for i in range(int(input("Enter the number of temperatures: "))):
    temp = int(input("Enter a temperature: "))
    input_temps.append(temp)
    if max_temp is None or temp > max_temp:
        max_temp = temp
        max_temp_count = 1
    elif temp == max_temp:
        max_temp_count += 1
print(f'{max_temp=}')
print(f'{max_temp_count=}')
1 голос
/ 14 января 2020

Другая возможность - ввести все температуры, разделенные пробелом или запятой:

temps = input('Enter the temperatures here: ')

temps_list = [float(s) for s in temps.split(',')]

hg = max(temps_list)
cnt = temps.count(hg)
print(f'List of temperatures: {temps}\
      \nThe highest temperature is {hg}, which appears {cnt} times.')

Рабочий пример:

Enter the temperatures here: 3,1.1,2,3.2,6,2.2,6,5.7,5
List of temperatures: [3.0, 1.1, 2.0, 3.2, 6.0, 2.2, 6.0, 5.7, 5.0]      
The highest temperature is 6.0, which appears 2 times.
0 голосов
/ 12 января 2020

Чтобы найти максимальную температуру в списке, просто используйте max(input_temps). После этого вы можете установить переменную счетчика, начинающуюся с 0, и использовать a для l oop, которая перебирает каждый элемент в списке и сравнивает его с максимальной температурой. Если они равны, просто добавьте 1 к счетчику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...