pythontimes Ответов: 1

Как вывести самое высокое из введенного значения из массива, который имеет такое же самое высокое значение? в Python


Привет,

Я надеюсь, что этот вопрос имеет смысл, потому что я не слишком уверен, как его задать.

But my program - in python - asks the user to input their score from 1-10 on these ice cream flavours in an array. Displays their score and then prints their highest score as their favourite flavour. Which takes the number of index and prints that flavour from the array. However, let's say if the user put Mint Choc Chip and Strawberry both as 10. The program will only print the item that is in the array first, which is min choc chip despite strawberry also being the highest score. Does anyone know a way which can make the program display all the highest scored flavours? Please keep in mind that I am new to Python so if the answer seems obvious to you, it is not for me. So please be kind and any help or suggestions will be greatly appreciated!

код:

import numpy as np

flavours = ["Vanilla", "Chocolate", "Mint Choc Chip", "Rosewater", "Strawberry", "Mango", "Frutti Tutti", "Fudge Brownie", "Bubblegum", "Stracciatella"]

Ice_Cream= [0]*10

print("Please input your score on these flavours of ice cream. With 1 being the lowest and 10 the highest.\n")

for i in range(0,10): print(flavours[i]+":") Ice_Cream[i] = int(input())

print("\nResults:\n")

for i in range(0,10): print(flavours[i]+":",Ice_Cream[i])

high = np.argmax(Ice_Cream)

if high > 1: print ("\nYour favourite flavour of ice cream is", flavours[high], flavours[high])

else:

print ("\nYour favourite flavour of ice cream is", flavours[high])


Что я уже пробовал:

Я попытался добавить это: если высокий > 1: печати ("\nYour любимый вкус мороженого", ароматизаторы[высокий], ароматизаторы[высокая])

Но просто печатает один и тот же аромат, который появляется в массиве дважды, так что он будет печатать: Ваш любимый вкус мороженого с мятой шоколадки чип мятное эскимо И я знаю, что это не имеет смысла, потому что если самый высокий балл был три аромата, то он будет печатать только два (одного и того же). Я также попытался найти другие функции, такие как импорт и т. д. Но я не смог найти ничего, что помогло бы. Это не обязательно для программы, но сделает ее лучше и реалистичнее. Спасибо!

1 Ответов

Рейтинг:
0

Richard MacCutchan

Форматирование оставляет желать лучшего. Однако вы можете упростить ситуацию, проверяя значения по мере прохождения начального цикла, например так:

flavours = ["Vanilla", "Chocolate", "Mint Choc Chip", "Rosewater", "Strawberry", "Mango", "Frutti Tutti", "Fudge Brownie", "Bubblegum", "Stracciatella"]

Ice_Cream= [0]*10

print("Please input your score on these flavours of ice cream. With 1 being the lowest and 10 the highest.\n")

high = 0
index = 0
for i in range(10):
    print(flavours[i]+":")
    Ice_Cream[i] = int(input())
    if Ice_Cream[i] > high:
        high = Ice_Cream[i]
        index = i

print("\nResults:\n")

for i in range(10):
    print(flavours[i]+":",Ice_Cream[i])

print ("\nYour favourite flavour of ice cream is", flavours[index])


pythontimes

Спасибо, это работает, но по-прежнему отображает только первый элемент в массиве, если они имеют одинаковый балл. Большое вам спасибо за вашу помощь и упрощение вещей!!

Richard MacCutchan

- Да, я знаю. Вы можете просто сохранить высокое значение в первом цикле, а затем создать последний цикл, который проходит через массив Ice_Cream и проверяет это значение, а затем печатает соответствующую запись аромата. Это позволило бы получить все записи для значения.

pythontimes

Хорошо, спасибо!!

Maciej Los

5ed!