AnswerBun.com

É possível incluir mais de uma variável por 'input' no Python?

Stack Overflow em Português Asked by Fagner Junqueira on January 4, 2022

Em C eu posso fazer isso:

printf("Informe 3 numeros');
scanf("%d%d%d", &a,&b,&c);

Posso fazer um processo similar em Python? Fiz umas buscas e encontrei que posso fazer assim:

a,b,c = input('informe 3 numeros: ').split("")
print(a,'',b,'',c)

Mas está dando o seguinte erro:

File "C:/Users/Administrador/Google Drive/Exercicios Python/embaralha 
palavra.py", line 1, in <module>   a,b,c = input('informe 3 numeros:
').split("") ValueError: empty separator 

3 Answers

Se a sua intenção for capturar vários valores a partir de um só input(), você pode utilizar uma das linhas de comandos listadas abaixo:

Exemplo 1:

valores = list(map(int, input('Digite todos os valores: ).split()))

Exemplo 2:

valores = [int(x) for in input('Digite todos os valores: ).split()]

Exemplo 3:

a, b, c = [int(x) for in input('Digite todos os valores: ).split()]

Observe que quando executamos cada um dos 3 exemplos listados acima, recebemos a seguinte mensagem: Digite todos os valores: . Neste momento devemos digitar todos os valores pretendidos, na mesma linha, separados por um só espaço e pressionar enter.

Em ambos exemplos, os valores capturados pelo input() são armazenados em uma lista.

Nos dois primeiros exemplos podemos digitar uma quantidade indefinida de valores, ou seja, quantos valores quisermos.

No terceiro exemplo, só poderemos digitar a quantidade de valores que seja igual à quantidade de variáveis que, porventura, esteja do lado esquerdo do sinal de atribuição - que no Pytho é representado pelo sinal =. Neste caso específico, só poderemos digitar 3 valores.

Além disso, observe que para utilizarmos uma das três formas listadas acima, precisamos identificar o tipo de variável desejada. Nos exemplos citados acima, utilizei apenas o tipo inteiro - int. Porém, poderemos utilizar outros tipos de variáveis. Para isso, basta substituir o tipo int, pelo tipo desejado.

Answered by Solkarped on January 4, 2022

ValueError: empty separator

Ao inves de .split(""), faça .split(" ")

So lembrando que o input retorna uma string, ou seja, se quiser usar como operandos tera que transformar para inteiro ou float. E tambem neste tipo de entrada a validação tem que ser feita, pois o usuario pode por 3 espaços entre cada numero, ai vai da merda...

Answered by Fabricio Paiva on January 4, 2022

Não é possível, a função input() só retorna um valor sempre. Inclusive o que está tentando fazer não é retornar 3 dados separados, está retornando um valor e o está quebrando em 3 logo depois do input() (o input() já foi executado e trouxe uma só string) com o seu resultado, e aí pode jogar nas variáveis diversas.

O erro é que está tentando quebrar os dados com um separador vazio, isto não dá certo, teria que por um espaço:

a, b, c = input('informe 3 numeros: ').split(" ")
print(a, '', b, '', c)

Veja funcionando no ideone. E no repl.it. Também coloquei no GitHub para referência futura.

Mas isto só funciona se a pessoa digitar certinho, com os espaços corretos. Portanto não faça assim, faça 3 input()s e seja feliz. Mesmo em C é melhor assim.

E note que em C já guarda como inteiro (na forma mostrada), em Python ainda terá um texto, e se quer número teria que fazer a conversão individualmente em cada variável.

Answered by Maniero on January 4, 2022

Add your own answers!

Related Questions

Por que a função retorna o valor undefined

2  Asked on September 26, 2021 by lucas-ribeiro

         

Executar evento em botão tkinter

1  Asked on March 18, 2021 by rodrigo-cesarino

   

como executar uma procedure com parametro em php

1  Asked on March 6, 2021 by teste1234

   

Criar uma Trigger com JOIN para duplicar os dados

1  Asked on March 5, 2021 by richard-lucas

   

ConcurrentModificationException como proceder?

2  Asked on February 28, 2021 by roknauta

   

Materialize.css inserir icon por cima de uma imagem do card

1  Asked on February 26, 2021 by laranja-mecnica

     

Consultar grupos de distribuição do Active Directory

1  Asked on February 25, 2021 by renato-souza

 

Capturar dados de classes com python

0  Asked on February 24, 2021 by bruno-rayol

     

Como faço para não precisar ficar fazendo requisição toda hora a api?

1  Asked on February 24, 2021 by eduardo-nogueira

     

Como abrir ou fechar todos os itens de um Accordion

1  Asked on February 23, 2021 by fabrcio

     

Utilizar DataTable com Lazy dentro de vários p:tab

0  Asked on February 22, 2021 by ramon-borges

         

Renomear Extent Report após execução dos testes

0  Asked on February 22, 2021 by julliane-freitas

     

Números Palíndromos em C

1  Asked on February 21, 2021 by matheusramos43

 

Preencher lista e finalizar laço python

2  Asked on February 21, 2021 by oroborus_0

       

Formatação CSS para geração de PDF

1  Asked on February 20, 2021 by amanda-lima

   

Identificar um com jQuery

3  Asked on February 19, 2021

   

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP