Exemplo: Split
Vamos criar um programa que pede para o usuário passar uma lista numérica de uma só vez (números separados por espaços) e devolve o valor mais alto da sequência. A lista possui ao menos 1 elemento.
Considere o seguinte exemplo:
Digite a sequência: 23 45 13 33.5 0
Maior valor: 45.0
Note que este é um jeito intuitivo de pedir uma lista de números para o usuário, pois não é preciso que o usuário forneça qualquer tipo de informação sobre o tamanho ou o último valor da lista.
Vamos iniciar o programa definindo a função main():
def main():
Inicialmente, precisaremos salvar a lista recebida como uma string, pois não conseguimos salvar diretamente a lista com todos os elementos do tipo float (reais).
Após isso, podemos usar o split() para quebrar a string em uma lista de strings com todos os elementos sem os espaços. Por exemplo, transformando o string "x y z w" na lista ["x","y","z","w"]
Como teremos uma lista de números sem espaços, podemos simplesmente converter todos os valores para o tipo float e, por fim, fazer comparações entre os elementos para encontrar o maior.
Vamos iniciar pedindo que o usuário digite a lista numérica. Vamos salvar ela na variável
sequencia = input( "Digite a sequência: ")
Precisaremos eliminar os espaços entre os números usando o split(). Como queremos dividir a lista para toda vez que existir um espaço, não precisamos preencher os parênteses de split.
Podemos salvar sequencia após sofrer a quebra na variável lista:
lista = sequencia.split()
Temos salvo em lista uma lista com todos os valores que o usuário passou, e com os valores salvos separadamente. Pereceba que é possível fazer a conversão de todos os valores, um por um, para variáveis do tipo float.
Vamos salvar os valores convertidos na lista numeros. Como esta lista deve começar sem nenhum valor, vamos criar a lista vazia:
numeros = []
Agora, vamos percorrer todos os elementos de lista. Para isso, podemos acessar diretamente cada elemento com o auxílio de um for. Vamos criar a variável valor para percorrer todos os elementos. Portanto:
for valor in lista:
Devemos transformar cada valor em lista para o tipo float e adicioná-lo em numeros (por meio do .append). Portanto:
numeros.append(float(valor))
Temos uma lista de números do tipo float salva em numeros. Com isso, vamos criar a variável maior para armazenar qual o maior valor dentro da lista. Vamos colocar o valor inicial desta variável como o primeiro elemento da lista numeros:
maior = numeros[0]
Precisamos percorrer a lista numeros inteira para ver se há algum valor maior do que o que está salvo em maior.
Vamos fazer isso usando um laço do tipo for que percorre todos os valores na lista numeros. Como este laço é independente do anterior, podemos reaproveitar a variável valor:
for valor in numeros:
Agora, precisamos checar se valor é maior do que o número que está em maior. Podemos fazer isso usando um if:
if valor > maior:
Se este for o caso, maior deverá assumir o valor contido em valor. Portanto:
maior = valor
Com isso, só nos resta devolver o valor que está em maior para o usuário com um print:
print("Maior valor: ", maior) E isso encerra o programa, que está completo abaixo:
def main(): sequencia = input( "Digite a sequência: ") lista = sequencia.split() numeros = [] for valor in lista: numeros.append(float(valor)) maior = numeros[0] for valor in numeros: if valor > maior: maior = valor print("Maior valor: ", maior)