To jest zadanie na Codio. Jestem nowy w programowaniu i nie wiem, co tu robić.

Przekażemy listę liczb. Twoim zadaniem jest znalezienie największej liczby na tej liście i wyświetlenie jej indeksu, a nie rzeczywistej wartości.

Wskazówka: będziesz musiał użyć zmiennej narzędzia do przechowywania wartości maksymalnej i decyzji, aby sprawdzić, czy każda liczba jest większa niż bieżąca maksymalna wartość napotkana w poprzednich iteracjach.

# Get our numbers from the command line
import sys
numbers= sys.argv[1].split(',')
numbers= [int(i) for i in numbers]

# Your code goes here
0
IT140user 20 listopad 2019, 22:04

3 odpowiedzi

Najpierw musisz wysłać wartości za pomocą wiersza poleceń, na przykład:

python app.py 1,2,3,4,5

To jest kod:

Najpierw musisz znaleźć maksymalną wartość:

max_number = numbers[0]
for n in numbers:
  if n > max_number:
      max_number = n

Następnie wystarczy zlokalizować, gdzie jest ta wartość:

max_index = numbers.index(max_number)
print(max_index)

Wynik będzie wyglądał następująco: 4

Pamiętaj, że to 4, a nie 5, ponieważ w Pythonie indeksy tablic zaczynają się od 0.

enter image description here

Edytować:

Jeśli nie możesz używać funkcji index:

i = 0
for n in numbers:
  if n == max_number:
    break
  i += 1

print(i)

Oczywiście najłatwiej jest to:

max_number = max(numbers)
max_index = numbers.index(max_number)
print(max_index)
0
Diana 20 listopad 2019, 22:29
max jest wbudowanym, lepiej użyj innej nazwy. Zainicjuj go również za pomocą numbers[0]. Tam może być float('-inf').
 – 
actual_panda
20 listopad 2019, 22:21
Lepiej jest publikować tekst niż obrazy tekstu: w ten sposób ludzie mogą kopiować/wklejać wszelkie przydatne dane. W przeciwnym razie konieczne jest przepisanie (lub użycie niesamowitego oprogramowania OCR).
 – 
wallyk
20 listopad 2019, 22:28
Jeśli to pomogło, zaznacz jako poprawną odpowiedź :)
 – 
Diana
20 listopad 2019, 22:43
1
@DianaAyala, po co brać maksimum numbers, a potem indeks? Obie są operacjami O(n) i problem można rozwiązać w 1 przejściu.
 – 
Brian Joseph
20 listopad 2019, 23:04
import sys
if len(sys.argv) >= 2:
    numbers = sys.argv[1].split(',')
    numbers= [int(i) for i in numbers]
    max_index = 0
    maximum = numbers[0]
    for index, number in enumerate(numbers):
        if number > maximum:
            maximum = number
            max_index = index
    print "Maximum value:",maximum," at index:",max_index
else:
    print "No numbers entered"
    exit(1)

Lub

import sys
if len(sys.argv) >= 2:
    numbers = sys.argv[1].split(',')
    numbers= [int(i) for i in numbers]
    print numbers.index(max(numbers))
else:
    print "No numbers entered"
    exit(1)
0
Karthik 20 listopad 2019, 22:24

Nigdy wcześniej nie używaj codio, ale oto jak zwykle ludzie znajdują maksimum listy:

list1 = [1,2,3,4,5,6,10]
ans = list1.index(max(list1))

Jeśli nie możesz używać max

list1 = [1,2,3,4,5,6,10]
ans = 0
for i,n in enumerate(list1):
  if n > list1[ans]:
    ans = i
return ans
1
Yukun Li 20 listopad 2019, 22:34
OP potrzebuje indeksu. (Użyj enumerate.)
 – 
actual_panda
20 listopad 2019, 22:22