Pq não funciona?

estou a tentar fazer um vetor:

import math
tamanho=0
tamanho=int(input("Insira o total de notas: "))
notas=[tamanho]
i=0
maior=0
while (i<tamanho):
i=i+1
notas[i]=int(input("Insira um valor: "))
if maior>notas[i]:
maior=notas[i]
i=i+1;
print("A maior nota é: ", maior)

Vetores em python não precisam de um tamanho, pois são dinâmicos tanto para aumentar quanto para diminuir, no seu caso melhor seria:

import math

tamanho = int(input("Insira o total de notas: "))
notas = []
i = 0
maior = 0

while (i < tamanho):
    notas.append(int(input("Insira um valor: ")))

    if maior < notas[i]: # havia um erro de lógica aqui...
        maior = notas[i]

    i += 1 # mesmo que i = i + 1;

print("A maior nota é: ", maior)

Você definitivamente não precisa de dois i=i+1 isso modifica a posição atual do vetor ocasionando comportamentos estranhos no if

Identar o código também ajuda a gente a te ajudar, se atente a isso da próxima vez, perceba como o código organizado fica muito fácil de entender… boa sorte!

2 curtidas

eu formulei mau a resposta por isso eliminei ela, sorry

refiz a resposta se liga:

Dicas:
1 - você poderia usar o for já que você ja limitou quantas notas seriam na variavel tamanho
2 - é altamente recomendado que seja usado aspas simples(’) no lugar as aspas duplas(") nas strings
3 - já que você não vai usar os valores entao não precisa guarda-los em uma lista, mas vou fazer as listas mesmo
4 - Não se deve usar o print assim:

print('A maior nota é: ', maior)

no python 3 ate o python 3.5 se n me engano, pode fazer assim:

print('A maior nota é: {}'.format(maior))

no python 3.6+ é melhor usar assim:

print(f'A maior nota é: {maior}')

Melhorias:
1 - Não a nescessidade em atribui 0 a maior e isso é uma gambiarra
2 - Por que importou math se ele não foi usado?

erros:
1 - a identação esta incorreta

Dicas é em relação a minha opinião(principalmente em relação ao for) junto a comunidade para um codigo saudavel (as outras)

Melhorias é algo que você deve fazer mesmo até para melhorar a sua logica

erros é indispenssavel

se liga como ficaria o codigo com o que eu disse:

tamanho = int(input('Insira o total de notas: '))
notas = []

for i in range(0, tamanho): #ou poderia ser range(0, tamanho)
    notas.append(int(input('Insira um valor: ')))

    #presta atenção aqui para não fazer gambiarra
    if i == 0: #ou seja se for a primeira vez do loop
        maior = notas[i] #ou seja como é o primeiro numero ele é o maior
    else: #se for a segunda vez ou mais
        if notas[i] > maior: #se o segundo ou mais for maior que o primeiro entao...
            maior = notas[i] #entao o maior sera ele
print(f'a maior nota é: {maior}')