docsity

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 11 elemento.


Considere o seguinte exemplo:


Digite a sequência: 23 45 13 33.5 023\ 45\ 13\ 33.5\ 0


Maior valor: 45.045.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()main():


def main(): 


Inicialmente, precisaremos salvar a lista recebida como uma stringstring, pois não conseguimos salvar diretamente a lista com todos os elementos do tipo floatfloat (reais).


Após isso, podemos usar o split()split() para quebrar a stringstring em uma lista de stringsstrings com todos os elementos sem os espaços. Por exemplo, transformando o stringstring "x y z w""x\ y\ z\ w" na lista ["x","y","z","w"]["x","y","z","w"]


Como teremos uma lista de números sem espaços, podemos simplesmente converter todos os valores para o tipo floatfloat 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

pan class="ql-formula" data-value="sequencia">sequenciasequencia como uma stringstring:


 sequencia = input( "Digite a sequência: ") 


Precisaremos eliminar os espaços entre os números usando o split()split(). Como queremos dividir a lista para toda vez que existir um espaço, não precisamos preencher os parênteses de splitsplit.


Podemos salvar sequenciasequencia após sofrer a quebra na variável listalista:


 lista = sequencia.split() 


Temos salvo em listalista 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 floatfloat.


Vamos salvar os valores convertidos na lista numerosnumeros. Como esta lista deve começar sem nenhum valor, vamos criar a lista vazia:


 numeros = [] 


Agora, vamos percorrer todos os elementos de listalista. Para isso, podemos acessar diretamente cada elemento com o auxílio de um forfor. Vamos criar a variável valorvalor para percorrer todos os elementos. Portanto:


 for valor in lista: 


Devemos transformar cada valorvalor em listalista para o tipo floatfloat e adicioná-lo em numerosnumeros (por meio do .append.append). Portanto:


 numeros.append(float(valor)) 


Temos uma lista de números do tipo floatfloat salva em numerosnumeros. Com isso, vamos criar a variável maiormaior para armazenar qual o maior valor dentro da lista. Vamos colocar o valor inicial desta variável como o primeiro elemento da lista numerosnumeros:


 maior = numeros[0] 


Precisamos percorrer a lista numerosnumeros inteira para ver se há algum valor maior do que o que está salvo em maiormaior.


Vamos fazer isso usando um laço do tipo forfor que percorre todos os valores na lista numerosnumeros. Como este laço é independente do anterior, podemos reaproveitar a variável valorvalor:


 for valor in numeros: 


Agora, precisamos checar se valorvalor é maior do que o número que está em maiormaior. Podemos fazer isso usando um ifif:


 if valor > maior: 


Se este for o caso, maiormaior deverá assumir o valor contido em valorvalor. Portanto:


 maior = valor 


Com isso, só nos resta devolver o valor que está em maiormaior para o usuário com um printprint:


 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) 
Registre-se e continue a aula gratuitamente
Você poderá assistir de qualquer dispositivo
lucas-valim-dias-7
ecv-133
ecv-121
yuri-boczko
pedro-oliveira-cr3
tiger-tiger-10
arthur-silva-do7
jose-ribeiro-tll
arthur-vianna-4
eliada-sao-jose
Outros alunos 741 estão fazendo este curso na Docsity
Anterior
Aulas
Materiais
Próximo