limitar input number - Como limitar a entrada de dados em Python para números 1, 2 e 3 apenas?
*****************************************************
Como fazer o input em Python só receber números inteiros de 1 a 10?
O que fazemos é ler a entrada do usuário e caso o número informado não esteja dentro dos parâmetros, ou seja, caso ele seja menor que 1 ou maior que 10, repetimos(while) o procedimento para que o usuário digite o número até que ele seja válido.
*****************************************************
Como limitar input para receber apenas número no Python?
Use o método isnumeric() para verificar se a entrada é um inteiro ou não. O método isnumeric() da string retorna True se a string contém apenas números. No entanto, é importante notar que falha com valores negativos. Isso ocorre porque ele retorna automaticamente False quando encontra o sinal - em inteiros negativos.
*************************************************************
Como se usa IsNumeric?
Retorna um valor Boolean indicando se um expressão pode ser avaliado como um número. A expressão necessária argumento é um Variant que contém um expressão numérica ou expressão de cadeia de caracteres. IsNumeric retornará True se a expressão inteira for reconhecida como um número; caso contrário, ele retornará False.
************************************************************
Como limitar a entrada de dados em Python para números 1, 2 e 3 apenas?
***Como fazer o input em Python só receber números inteiros de 1 a 10?
***Como limitar input para receber apenas número no Python?
Como limitar as casas decimais em input Python?
Como fazer o input aceitar apenas números positivos em Python?
Como limitar um input do tipo Number para apenas 3 caracteres em Python?
Como limitar valor mínimo e máximo na entrada de número no Python?
Saiba mais:
Como funciona o input em Python?
Como usar o Isnumeric em Python?
Como limitar o valor de uma variável no Python?
Como receber dois valores Python?
O que é Flag no Python?
Quais são as estruturas de repetição Python?
Como identificar o maior número em Python?
Como fazer média aritmética no Python?
exemplo:
Como permitir apenas um intervalo de números?
***************************************************
1 número 154 1.3 % 6
2 input 153 1.1 % 5
3 python 146 1.2 % 6
4 para 140 0.8 % 4
5 print 122 0.9 % 5
6 como 109 0.6 % 4
7 numero 100 0.8 % 6
8 números 95 0.9 % 7
9 valor 93 0.7 % 5
10 lista 82 0.6 % 5
*****************************************************************
Tentativa 1 de 3 digite o seu número: a Você digitou: a Traceback (most recent call last): File "C:/Users/andre/PycharmProjects/jogo/adivinhacao.py", line 14, in chute = int(chute_str) ValueError: invalid literal for int() with base 10: 'a'
Process finished with exit code 1
2 respostas
por Guilherme Carvalho | 207.6k xp | 4 posts
Engenheiro Civil
06/02/2019
Você pode usar o try com dois except, dessa forma:
ehNumero = False
while (ehNumero == False):
chute = input("Digite o seu número: ")
try:
int(chute)
print("O chute é um número!")
ehNumero = True
except ValueError:
try:
float(chute)
print("O chute é um número!")
ehNumero = True
except ValueError:
print("O valor não é um número")
por Luan Henrique Guerra de Gregori | 175.2k xp | 6 posts
06/02/2019
Bom dia, pode ser feito desta maneira
while True:
n = input("Digite um numero: ")
if n.isnumeric():
print('Voce digitou o numero ' + n)
break
else:
continue
#se quiser coloque uma mensagem de erro
***********************************************************
Não tô conseguindo limitar o intervalo com somente inteiros positivos de 1 a 10
Publicado 2 anos atrás , em 14/04/2020
Programação Python Python: avançando na linguagem
Referente ao curso Python: avançando na linguagem, no capítulo Conhecendo e trabalhando com tuplas e atividade Arquivos do projeto atual
por Nayma da Luz Santos | 28.0k xp | 35 posts
Oi gente!!! não tô conseguindo limitar o intervalo de 1 a 10 e só inteiros positivos. Alguém dá um help, não consegui usar o "for"
# coding=utf-8
print("***********************")
print("*** Qual é o maior? ***")
print("***********************")
print("Escolha três números (a,b e c) entre 1 e 10.")
num = 1
total_insercao = 3
insercao_atual = 1
for insercao_atual in range(1, insercao_atual + 1):
numero_a = int(input("Escolha o número a: "))
numero_b = int(input("Escolha o número b: "))
numero_c = int(input("Escolha o número c: "))
if(num < 0 or num > 10 ):
print("Você deve digitar um número entre entre 1 e 10!")
continue
maior_numero = numero_a
if(numero_b > maior_numero):
maior_numero = numero_b
if(numero_c > maior_numero):
maior_numero = numero_c
print('O maior número entre a, b e c é: ', maior_numero)
print("Fim")
2 respostas
solução!
por Nádia Oliveira | 1420.2k xp | 2291 posts
Instrutor Líder Técnica da Alura
15/04/2020
Oi Nayma, tudo bem?
Respondi este tópico neste link, veja se te ajuda e caso não ajude, fique tranquila que tentarei outra abordagem. Tudo bem?!
Abraços e bons estudos!
por Nayma da Luz Santos | 28.0k xp | 35 posts
17/04/2020
oi Nádia!!! muito obrigada!!!
**************************************************************
Como fazer o input do usuário só aceitar inteiros entre 1 e 10
Publicado 2 anos atrás , em 13/04/2020
Programação Python Python: avançando na linguagem
Referente ao curso Python: avançando na linguagem, no capítulo Melhorando o código e a apresentação e atividade Organizando o código em funções
por Nayma da Luz Santos | 28.0k xp | 35 posts
Olá pessoal!!! não estou conseguindo fazer com que o input do usuário nesse código se limite a números inteiros e tem que ser entre 1 a 10. O código funciona porém aceitando decimais e números maiores que 10.
Segue o código:
# coding=utf-8
#escreva uma função que receba três parâmetros (a,b e c) inteiros e retorne o maior valor entre os argumentos passados
print("***********************")
print("*** Qual é o maior? ***")
print("***********************")
print("Escolha três números (a,b e c) do grupo abaixo:")
print('[1,2,3,4,5,6,7,8,9,10]')
numero_a = int(input("Escolha o número a: "))
numero_b = int(input("Escolha o número b: "))
numero_c = int(input("Escolha o número c: "))
if not 1 <= numero_a <= 10:
print('O número deve ser entre 1 e 10')
if not 1 <= numero_b <= 10:
print('O número deve ser entre 1 e 10')
if not 1 <= numero_c <= 10:
print('O número deve ser entre 1 e 10')
maior_numero = numero_a
if(numero_b > maior_numero):
maior_numero = numero_b
if(numero_c > maior_numero):
maior_numero = numero_c
print('O maior número entre a, b e c é: ', maior_numero)
print("Fim")
9 respostas
por Roni Alex Ruiz Serra | 103.4k xp | 9 posts
Tec TI 1
13/04/2020
Olá tubo bem contigo?
Acredito que você possa implementar um for ao receber os inputs para caso não for válido o input ele não grava a variável.
Tem algo parecido no jogo de adivinhar números inteiros da aula do Nico (alemão).
Atenciosamente
Roni Serra
por Nayma da Luz Santos | 28.0k xp | 35 posts
13/04/2020
Olá Roni! Eu tentei mas não estou conseguindo :(
por José Henrique Merlo | 100.6k xp | 40 posts
Estudante de Engenharia Elétrica
14/04/2020
Boa noite! Tente usar a estrutura de repetição while:
while numero_a < 1 or numero_a > 10:
numero_a = raw_input("Escolha o número A: ")
por Nayma da Luz Santos | 28.0k xp | 35 posts
15/04/2020
não funcionou :(
solução!
por Nádia Oliveira | 1420.2k xp | 2291 posts
Instrutor Líder Técnica da Alura
15/04/2020
Oi Nayma, tudo bem?
Tente o seguinte:
# coding=utf-8
#escreva uma função que receba três parâmetros (a,b e c) inteiros e retorne o maior valor entre os argumentos passados
print("***********************")
print("*** Qual é o maior? ***")
print("***********************")
print("Escolha três números (a,b e c) do grupo abaixo:")
print('[1,2,3,4,5,6,7,8,9,10]')
numero_a = int(input("Escolha o número a: "))
while numero_a < 1 or numero_a > 10:
numero_a = int(input("Número digitado não está dentro dos limites.\nEscolha o número a: "))
numero_b = int(input("Escolha o número b: "))
while numero_b < 1 or numero_b > 10:
numero_b = int(input("Número digitado não está dentro dos limites.\nEscolha o número b: "))
numero_c = int(input("Escolha o número c: "))
while numero_c < 1 or numero_c > 10:
numero_c = int(input("Número digitado não está dentro dos limites.\nEscolha o número c: "))
maior_numero = numero_a
if(numero_b > maior_numero):
maior_numero = numero_b
if(numero_c > maior_numero):
maior_numero = numero_c
print('O maior número entre a, b e c é: ', maior_numero)
print("Fim")
Observe o seguinte trecho:
numero_a = int(input("Escolha o número a: "))
while numero_a < 1 or numero_a > 10:
numero_a = int(input("Número digitado não está dentro dos limites.\nEscolha o número a: "))
O que fazemos é ler a entrada do usuário e caso o número informado não esteja dentro dos parâmetros, ou seja, caso ele seja menor que 1 ou maior que 10, repetimos(while) o procedimento para que o usuário digite o número até que ele seja válido. Pegou a ideia?
Resultado:
resultado
Qualquer dúvida é só falar. Abraços e bons estudos!
por Nayma da Luz Santos | 28.0k xp | 35 posts
17/04/2020
Oi Nádia!!!
Obaaaa o código agora não aceita mais números menores que 1 e maiores que 10 porém ele ainda aceita os decimais, o que pode ser feito?
por exemplo, quando digito: 1.5 ele aceita.
por Nayma da Luz Santos | 28.0k xp | 35 posts
17/04/2020
Nádia consegui!!!
Na linha : numero_a = int(input("Número digitado não está dentro dos limites.\nEscolha o número a: "))
eu mudei para: numero_a = raw_input("Número digitado não está dentro dos limites.\nEscolha o número a: ")
brigaduuuuuu
por Nádia Oliveira | 1420.2k xp | 2291 posts
Instrutor Líder Técnica da Alura
17/04/2020
Nayma, para ele não aceitar números decimais você pode dizer que só aceita números inteiros no input, por exemplo:
numero_a = int(input("Escolha o número a: "))
Daí quando for digitar números decimais será gerado um erro dizendo que aquele número não é inteiro:
***********************
*** Qual é o maior? ***
***********************
Escolha três números (a,b e c) do grupo abaixo:
[1,2,3,4,5,6,7,8,9,10]
Escolha o número a: 1.5
Traceback (most recent call last):
File "main.py", line 13, in
numero_a = int(input("Escolha o número a: "))
ValueError: invalid literal for int() with base 10: '1.5'
por Nádia Oliveira | 1420.2k xp | 2291 posts
Instrutor Líder Técnica da Alura
17/04/2020
Nayma, o raw_input() é nativo do Python versão 2. Na versão 3 ele foi substituído pelo input(). Provavelmente você está executando seu código no Python 2, por isso das divergências.
Abraços e bons estudos!
***********************************************************************
Limitar Input de números Python 3
Perguntada 3 anos, 9 meses atrás
Modified 3 anos, 9 meses atrás
Vista 7mil vezes
1
Usando o seguinte código quero limitar de 0 a 2000 o número que poderá ser informado pela varável num
import collections
num = int(input('Digite um número inteiro: ')) #Inputar número inteiro
binario = bin(num)[2:] #Cortar o 0b
sequence = binario
collection = collections.Counter(sequence)
print('O número binário de {} é {}'.format(num,binario))
print('A maior sequência de 0 é {}'.format(len(max(binario.split('1'),
key=len))))
Seria limitar o número a ser inputado na variável num.
pythonpython-3.x
Compartilhar
Melhore esta pergunta
Seguir
perguntada 13/12/2018 às 14:23
Thales Henrique's user avatar
Thales Henrique
12811 medalhas de prata1313 medalhas de bronze
Adicione um comentário
1 Resposta
Ordenado por:
4
Basta fazer uma condição:
if 0 <= num <= 2000:
# Faça algo
Se quer solicitar ao usuário uma nova entrada enquanto o valor for inválido, precisará de um laço infinito:
while True:
try:
num = int(input())
if not 0 <= num <= 2000:
raise ValueError('Valor fora do intervalo permitido')
break
except ValueError as error:
print(error)
Compartilhar
Melhore esta resposta
Seguir
***********************************************************************
Como permitir apenas um intervalo de números?
Perguntada 5 anos, 7 meses atrás
Modified 5 anos, 7 meses atrás
Vista 901 vezes
1
Eu estou fazendo um código de registro de número de notas de alunos, então quero que o usuário coloque um número entre um intervalo de 1 a 10, MAS também quero que os intervalos sejam em float(ou seja: 0.1,0.2... 9.8,9.9,10.0).
nota_1 = float(input("Digite a primeira nota de " + str(aluno_1) + ": "))
mat_aluno_nota [1][0] = nota_1
while nota_1 not in (0,1,2,3,4,5,6,7,8,9,10):
print("Digite um número entre 0 a 10")
Tem alguma maneira de eu fazer mais rápido sem ser colocando todos de um em um?
pythonpython-3.x
Compartilhar
Melhore esta pergunta
Seguir
perguntada 26/02/2017 às 1:02
Kenneth Anderson's user avatar
Kenneth Anderson
31311 medalhas de ouro66 medalhas de prata1919 medalhas de bronze
Adicione um comentário
1 Resposta
Ordenado por:
2
Podes fazer assim:
while True:
nota_1 = input("Digite a primeira nota de " + str(aluno_1) + ": ")
try:
nota_1 = float(nota_1)
except Exception as err:
print("Valor deve ser númerico")
else:
if 0 <= nota_1 <= 10:
mat_aluno_nota [1][0] = nota_1
break
print("Valor deve estar entre 0 e 10")
Compartilhar
Melhore esta resposta
Seguir
editada 26/02/2017 às 1:55
respondida 26/02/2017 às 1:33
Miguel's user avatar
Miguel
29,3mil55 medalhas de ouro3939 medalhas de prata7575 medalhas de bronze
Adicione um comentário
*************************************************************************
Preciso de ajuda para limitar a quantidade de caracteres em python kivy
Perguntada 3 anos, 11 meses atrás
Modified 3 anos, 11 meses atrás
Vista 2mil vezes
0
Estou com uma pequena quantidade, estou tentando limitar a quantidade de caracteres que podem ser digitados sem texto, por exemplo, um código de DDD, onde basta apenas 2 ou 3 dígitos, limitar para apenas no máximo 3 números, mas não estou obtindo, tentei realizar da Em segundo lugar, mas também não funcionou, a ideia era agora limitar pelo próprio script kivy, obrigado até mais pessoal: D
Código Kivy TextInput:
id: dd
pos_hint:{"center_x":.35, "center_y":.2}
size_hint:(.1,.05)
multiline:False
write_tab: False
input_filter:'int'
Python de código dd = self.root.ids.dd.text
dd = maxlength (2)
python-kivy
Compartilhar
Melhore esta pergunta
Seguir
perguntada 11/10/2018 às 19:46
Couzer's user avatar
Couzer
1777 medalhas de bronze
Recomendo ler: pt.stackoverflow.com/questions/303296/… –
Gunblades
11/10/2018 às 22:44
Possível duplicata de Limitando a quantidade de caracteres em uma string em Python –
Gunblades
11/10/2018 às 23:12
Adicione um comentário
1 Resposta
Ordenado por:
1
O tipo string é iterável no Python e permite acessar seu conteúdo via slices. Por exemplo, texto[1:5] iria retornar do primeiro ao quarto caractere de texto.
>>> print('anderson'[1:5])
nder
Se você omitir o primeiro valor, o Python irá entender que é zero, começando a partir do início do texto:
>>> print('anderson'[:5])
ander
Já, se o valor informado após os dois pontos exceder o tamanho do texto, será retornado apenas até o final do mesmo:
>>> print('anderson'[1:30])
nderson
Desta forma, para limitar um texto a um número N de caracteres, basta fazer texto[:N].
Leitura adicional:
"[-4:]" O que é essa sintaxe?
Limitando a quantidade de caracteres em uma string em Python
OBS:
No seu caso acho que o código que você quer ficaria +- assim :
n = input("Digite o numero com DDD: (sem caracteres especial)")
-Entrada: 0011111111
print ('DDD:',n[:2])
-Saida: DDD: 00
print ('numero:',n[2:])
-Saida: numero: 11111111
recomendo fazer um regEx ou uma mascara no seu input assim não corre risco do usuário digitar errado
Compartilhar
Melhore esta resposta
Seguir
editada 11/06/2020 às 14:45
Comunidade's user avatar
ComunidadeBot
1
respondida 11/10/2018 às 22:55
Gunblades's user avatar
Gunblades
73933 medalhas de prata1818 medalhas de bronze
Se a resposta é a mesma, basta você sinalizar a pergunta como duplicada. Não há porque ter múltiplas respostas com o mesmo conteúdo espalhado pelo site. Logo abaixo da pergunta há o botão "sinalizar", basta colocar que a pergunta deveria ser fechada por ser duplicada e indicar o link da outra pergunta. –
Woss
11/10/2018 às 23:07
Grata ^^ Sou nova usuária, ainda não sei como funciona o Stack –
Gunblades
11/10/2018 às 23:12
Adicione um comentário
****************************************************************************
Verifique se a entrada é inteira em Python
Criado: March-30, 2021
Use a função int() para verificar se a entrada é um número inteiro em Python
Use o método isnumeric() para verificar se a entrada é um inteiro ou não
Use as expressões regulares para verificar se a entrada é um número inteiro em Python
No mundo da programação, trabalhamos muito frequentemente com a entrada do usuário. Python tem a função input() disponível, que permite ao usuário inserir a entrada desejada. Às vezes, podemos querer a entrada de um tipo específico.
SIMPATIA PARA FICAR LINDA DE CORPO ...
Remaining Time -3:49
SIMPATIA PARA FICAR LINDA DE CORPO E ROSTO - Faça uma vez por mês, em toda Lua Cheia!
No entanto, essa função converte a entrada do usuário em uma string antes de compilá-la com o programa. Portanto, não é simples usar os métodos tradicionais para verificar tipos específicos com a entrada do usuário, e temos que verificar se a string contém números ou não essencialmente.
Neste tutorial, discutiremos como verificar se a entrada inserida pelo usuário é do tipo inteiro ou não.
Use a função int() para verificar se a entrada é um número inteiro em Python
A função int() pode converter um determinado valor inteiro de string em um tipo inteiro. Ele gera um erro se o valor desejado não for um inteiro e não puder ser convertido. Podemos usar este método para verificar se a string do usuário é um inteiro ou não, conforme mostrado abaixo.
user_input = input("Enter the input ")
try:
int(user_input)
it_is = True
except ValueError:
it_is = False
print(it_is)
Resultado:
Enter the input 15
True
Observe o uso do bloco try...except neste método. É usado com muita frequência ao lidar com exceções em Python.
Use o método isnumeric() para verificar se a entrada é um inteiro ou não
O método isnumeric() da string retorna True se a string contém apenas números. No entanto, é importante notar que falha com valores negativos. Isso ocorre porque ele retorna automaticamente False quando encontra o sinal - em inteiros negativos.
O código a seguir mostra como podemos usar esta função para verificar se uma string contém inteiros em Python.
user_input = input("Enter the input ")
print(user_input.isnumeric())
Resultado:
Enter the input 10
True
Também podemos usar a função isdigit() no lugar de isnumeric(); ele também tem as mesmas limitações deste método.
Use as expressões regulares para verificar se a entrada é um número inteiro em Python
Também podemos usar as expressões regulares para criar um padrão que retorna True sempre que encontra inteiros em uma string. Também podemos modificar o padrão para garantir que funcione com valores negativos. Por exemplo,
import re
user_input = input("Enter the input ")
num_format = re.compile(r'^\-?[1-9][0-9]*$')
it_is = re.match(num_format,user_input)
if it_is: print("True")
else: print("False")
Resultado:
Enter the input -15
True
Abaixo está a explicação do padrão de expressão regular - ^\-?[1-9][0-9]*$.
^ é o início da string
\-? indica que esse número pode ser negativo ou positivo.
[1-9] é o primeiro dígito do número. Deve ser um número entre 1 e 9, mas não 0.
[0-9]* indica os seguintes dígitos. O número de dígitos pode ser qualquer um, incluindo 0.
$ é o fim da string.
Artigo relacionado - Python String
Remover vírgulas da string em Python
Como verificar se uma string está vazia de uma forma pythonica
Converter uma string em nome de variável em Python
Como remover espaços em branco numa string em Python
Artigo relacionado - Python Input
Remover vírgulas da string em Python
Como verificar se uma string está vazia de uma forma pythonica
Converter uma string em nome de variável em Python
Como remover espaços em branco numa string em Python
Verifique se Set está vazio em Python
Verifique se a variável é Python inteiro
*****************************************************************
Como restringir número de caracteres máximo em uma input na linguagem Python?
20/05/2018
55
Python
print("HELLO WORLD"), queria restringir o número máximo de caracteres que uma pessoa pode utilizar em uma função "Input"
Ex:
txt = str(input("Digite uma letra: ")) #nesse código, quero que o usuário possa somente digitar uma letra, nada mais que isso.
Valeu rapaziada!
Gabriel Braga
Gabriel Braga
Curtir tópico
+ 0
Responder
Post mais votado
28/09/2018
Boa tarde Murdoch, você pode ler normalmente o dado de entrado e usar um loop while onde você verifica o tamanho da variável usando a função "len", se ela satisfazer o tamanho que você quer, vocÊ sai do loop, caso contrário continua.
******************************************************************************
Aceitar somente numéricos no input
Perguntada 4 anos, 11 meses atrás
Modified 1 ano, 6 meses atrás
Vista 11mil vezes
7
1
nota = -1
while nota < 0 or nota > 10:
nota = int(input("Informe a nota entre 0 e 10: "))
if nota < 0 or nota > 10:
print("Valor inválido")
Eu preciso incluir nesse código validação para, se caso o usuário digitar string (a,b,c,d,e,f...) ou caractere especial, ele mostre erro e solicite novamente o inteiro.
pythonstring
Compartilhar
Melhore esta pergunta
Seguir
editada 9/10/2017 às 19:35
Vinicius Brasil's user avatar
Vinicius Brasil
21,1mil1010 medalhas de ouro7474 medalhas de prata145145 medalhas de bronze
perguntada 9/10/2017 às 19:28
typemark's user avatar
typemark
12511 medalhas de ouro33 medalhas de prata99 medalhas de bronze
Adicione um comentário
4 Respostas
Ordenado por:
19
Basta você tratar a exceção que é disparada pelo int quando a conversão falhar:
while True:
try:
nota = int(input("Informe a nota entre 0 e 10: "))
if not 0 <= nota <= 10:
raise ValueError("Nota fora do range permitido")
except ValueError as e:
print("Valor inválido:", e)
else:
break
print(nota)
Veja funcionando no Repl.it
O while True garante que a leitura será efetuada até que o break seja executado; o try/except captura a exceção disparada pelo int, que é um ValueError, exibindo a mensagem de erro; se a exceção não é disparada, o bloco else é executado, parando o laço.
Compartilhar
Melhore esta resposta
Seguir
editada 9/10/2017 às 19:45
respondida 9/10/2017 às 19:32
Woss's user avatar
Woss
75,3mil1515 medalhas de ouro113113 medalhas de prata208208 medalhas de bronze
Anderson você é o cara, muito obrigado resolveu instantaneamente. –
typemark
9/10/2017 às 19:45
Adicione um comentário
2
Então, há outras maneiras de fazer. Uma delas é usar o input como string e reconhcer o tipo do valor lido. Isso pode ser feito assim:
nota = -1
while nota < 0 or nota > 10:
nota = input("Informe a nota entre 0 e 10: ")
if nota.isdigit():
if nota < 0 or nota > 10:
print("Valor inválido")
else:
print("Não parece ser um número")
Aqui tem uma referencia para isdigit.
Para versões do python anteriores a 3, pode ser necessario usar raw_input no lugar de input.
Compartilhar
Melhore esta resposta
Seguir
respondida 22/12/2017 às 1:52
Juven_v's user avatar
Juven_v
2.62911 medalhas de ouro1111 medalhas de prata1717 medalhas de bronze
Adicione um comentário
1
nota = -1
while nota < 0 or nota > 10:
try:
nota = int(input("Informe a nota entre 0 e 10: "))
print("A nota foi:", nota)
break
except:
print("Valor inválido")
continue
O comando continue faz com que volte para o início do loop.
Compartilhar
Melhore esta resposta
Seguir
editada 29/01/2019 às 4:56
respondida 17/01/2019 às 14:48
Sara Lins's user avatar
Sara Lins
5311 medalhas de prata99 medalhas de bronze
1
Nesse caso, se a exceção é disparada, o valor de nota não é alterado, então o loop irá continuar mesmo sem o continue. Só faria sentido ali se houvesse mais código após o bloco try/except. –
Woss
17/01/2019 às 15:49
1
E talvez se fazer while not 0 < nota < 10 fique mais legível que while nota < 0 or nota > 10, mas isso está mais para opinião mesmo. –
Woss
17/01/2019 às 15:50
Adicione um comentário
0
Outra forma interessante de se resolver esta questão, com Python 3.8 ou superior é utilizando os conceitos de Assignment Expressions, abordados pela PEP 572.
Com esses conceitos poderemos reduzir bastante a quantidade de linhas no código. Desta forma o código pode ficar:
while not (nota := input(f'Nota entre "0" e "10": ')).isdigit() or (nota := int(nota)) < 0 or nota > 10:
print('Valor INVÁLIDO!')
print(nota)
Observe que o bloco while verifica três situações:
Verifica se a expressão atribuída à variável nota não é um dígito;
Verifica se a expressão atribuída à variável nota e convertida em inteiro é menor que 0;
Verifica se a expressão atribuída à variável nota e convertida em inteiro é maior que 10.
Caso uma das três verificações do bloco while seja True receberemos a mensagem: Valor INVÁLIDO! e seremos novamente solicitado uma nota entre "0" e "10".
Agora, caso as três verificações do bloco while sejam False, o laço de repetição será encerrado, sendo exibido o valor da nota digitada.
Compartilhar
Melhore esta resposta
Seguir
**************************************************************
Uma lista para receber 20 números inteiros e armazenar em uma lista e imprimir o maior elemento da lista
Perguntada 5 anos, 4 meses atrás
Modified 1 ano, 11 meses atrás
Vista 15mil vezes
1
n = int(input("digite o número : ")
I=0
For i in lista:
lista[i].append(input("digite o número"
I+=1
else:
Print("lista cheia")
Sou novo em Programação e não consigo implantar o que o questionário quer.
pythonpython-3.x
Compartilhar
Melhore esta pergunta
Seguir
editada 11/05/2017 às 13:22
Woss's user avatar
Woss
75,3mil1515 medalhas de ouro113113 medalhas de prata208208 medalhas de bronze
perguntada 10/05/2017 às 17:42
Edson Fonseca's user avatar
Edson Fonseca
6711 medalhas de ouro11 medalhas de prata66 medalhas de bronze
Adicione um comentário
4 Respostas
Ordenado por:
6
Para obter o maior valor em uma lista de números, existe a função nativa max:
numeros = [1, 2, 3, 4, 5]
print("Maior número da lista é:", max(numeros))
Retorna a mensagem:
Maior número da lista é: 5
Para gerar esta lista dinamicamente através da entrada do usuário, em Python, o mais fácil é utilizar compreensão de listas:
numeros = [int(input("Número: ")) for i in range(20)]
A linha de código acima pode ser melhor compeendida com um trecho de código semelhante, porém não análogo:
numeros = []
for i in range(20):
numeros.append(int(input("Número: ")))
O código final ficaria:
numeros = [int(input("Número: ")) for i in range(20)]
print("Maior número da lista é:", max(numeros))
Veja funcionando no Repl.it.
Compartilhar
Melhore esta resposta
Seguir
respondida 11/05/2017 às 13:42
Woss's user avatar
Woss
75,3mil1515 medalhas de ouro113113 medalhas de prata208208 medalhas de bronze
Adicione um comentário
0
x = 1
lista = []
print('Digite 20 números.')
while x <= 20:
n = int(input('Digite um número: [ %s ]: '%x))
lista.append(n)
x += 1
print('O maior valor é:',max(lista))
Compartilhar
Melhore esta resposta
Seguir
respondida 10/05/2017 às 18:37
Antony Gabriel's user avatar
Antony Gabriel
83355 medalhas de prata88 medalhas de bronze
1
Por favor, colabore com a qualidade do conteúdo da comunidade elaborando melhor sua resposta. Respostas muito curtas dificilmente serão suficientemente claras para acrescentar algo à discussão. Se sua resposta é baseada em alguma função ou característica da linguagem/ferramenta, faça a ligação com a documentação oficial ou material confiável que sustente sua resposta. Buscar perguntas semelhantes na comunidade também pode ser interessante para indicar outras abordagens do problema. –
Woss
11/05/2017 às 13:22
Adicione um comentário
0
lista = []
while len(lista)+1 <= 20:
lista.append(int(input("Digite um número: ")))
print ("O maior valor é: ", max(lista))
Compartilhar
Melhore esta resposta
Seguir
respondida 11/05/2017 às 13:16
skulden's user avatar
skulden
13111 medalhas de bronze
3
Por favor, colabore com a qualidade do conteúdo da comunidade elaborando melhor sua resposta. Respostas muito curtas dificilmente serão suficientemente claras para acrescentar algo à discussão. Se sua resposta é baseada em alguma função ou característica da linguagem/ferramenta, faça a ligação com a documentação oficial ou material confiável que sustente sua resposta. Buscar perguntas semelhantes na comunidade também pode ser interessante para indicar outras abordagens do problema. –
Woss
11/05/2017 às 13:22
Adicione um comentário
0
Podemos resolver esta questão desta forma:
maior = max([x for x in input('Digite os valores: ').split()])
print(f'O maior número da lista é: {maior}')
Quando executamos este código recebemos a seguinte mensagem: Digite os valores: . Neste momento devemos digitar todos os valores, na mesma linha, separados por um só espaço e pressionar enter.
Compartilhar
*************************************************************
Problema com entrada de mais de um número inteiro com input
Perguntada 3 anos, 7 meses atrás
Modified 3 anos, 7 meses atrás
Vista 241 vezes
0
Estou com problema para captar a entrada de mais de um número inteiro em um só input.
Ex:
numero = int(input('Digite o primeiro número aqui: '))
numero_1 = int(input('Digite o segundo número aqui: '))
numero_2 = int(input('Digite o terceiro número aqui: '))
lista_numeros = [numero, numero_1, numero_2]
Gostaria de transformar esses 3 input's em um só.
Ex:
numeros = int(input('Digite os números aqui: '))
lista_numeros = [numeros]
porém essa segunda execução dá erro de:
ValueError: invalid literal for int() with base 10: '1 2 3 5'
Eu acredito que pode ser por causa dos espaços entre os números.
pythonpython-3.xinput
Compartilhar
Melhore esta pergunta
Seguir
editada 23/02/2019 às 9:48
hkotsubo's user avatar
hkotsubo
62,4mil2323 medalhas de ouro7171 medalhas de prata132132 medalhas de bronze
perguntada 23/02/2019 às 3:00
Pedro Henrique's user avatar
Pedro Henrique
12511 medalhas de prata44 medalhas de bronze
Adicione um comentário
2 Respostas
Ordenado por:
2
Perceba que você deve fazer uma checagem antes para garantir que é um numero que esta vindo pela entrada, isto é feito pela função isdigit().
Veja abaixo o exemplo:
numeros = [int(v) for v in input('Valores: ').split() if v.isdigit()]
print(numeros)
Entrada:
1 32 3 55
Saída:
[1, 32, 3, 55]
A saída é uma lista de números inteiros que foram retornados separadamente por int(v) através da list comprehension, seguindo da condição especificada isdigit(s) que simplesmente verifica se o valor é um digito.
Veja funcionando no Repl.it.
Compartilhar
Melhore esta resposta
Seguir
editada 23/02/2019 às 4:13
respondida 23/02/2019 às 4:03
gato's user avatar
gato
23,2mil2424 medalhas de ouro107107 medalhas de prata232232 medalhas de bronze
Muito obrigado, agora ficou bem claro para mim. Só uma duvida que tive aqui, esse 'v' que foi definido é somente uma variável qualquer podendo ser X , Y ou Z por exemplo ? –
Pedro Henrique
23/02/2019 às 4:21
É sim, ela é criada no escopo da list comprehension e você pode dar o nome que quiser para a variável. Em uma notação em português: valor para valor em variaveInteravel –
gato
23/02/2019 às 4:23
Ok, muito obrigado pela ajuda!! –
Pedro Henrique
23/02/2019 às 4:23
Adicione um comentário
0
O que você pode fazer é capturar a linha de entrada, dividi-la em substrings nos espaços, e depois fazer o parse dos inteiros:
entrada = input('Digite os números aqui: ')
numeros = [int(i) for i in entrada.split(' ')]
Compartilhar
Melhore esta resposta
Seguir
editada 23/02/2019 às 3:19
respondida 23/02/2019 às 3:09
user140213's user avatar
user140213
2622 medalhas de bronze
Adicione um comentário
*************************************************************
Ler 10 números inteiros e obter o maior entre eles
Perguntada 4 anos, 11 meses atrás
Modified 8 meses atrás
Vista 16mil vezes
0
Usando uma função, faça um programa que leia 10 números inteiros e imprima na tela o maior deles. No caso de valores iguais, imprima qualquer um dos maiores. Caso o maior número seja múltiplo do primeiro número n lido, imprima n na tela. Dez números inteiros, considere que o primeiro número lido nunca será 0.
Alguém pode me ajudar nessa questão? Ainda sou leigo em Python.
n = int(input())
b = int(input())
c = int(input())
d = int(input())
e = int(input())
f = int(input())
g = int(input())
h = int(input())
i = int(input())
j = int(input())
lista = [n,b,c,d,e,f,g,h,i,j]
print (max(lista))
pythonpython-3.x
Compartilhar
Melhore esta pergunta
Seguir
editada 29/09/2017 às 14:16
Woss's user avatar
Woss
75,3mil1515 medalhas de ouro113113 medalhas de prata208208 medalhas de bronze
perguntada 29/09/2017 às 13:01
user92865's user avatar
user92865
911 medalhas de ouro11 medalhas de prata33 medalhas de bronze
Em fazer a parte dos multiplos, e na parte de "dez numeros inteiros, considere o primeiro numero lido nuca seja 0" –
user92865
29/09/2017 às 13:07
estou inputando 10 variáveis, e depois fiz uma lista onde consegui fazer o python imprimir o numero maior –
user92865
29/09/2017 às 13:11
n = int(input()) b = int(input()) c = int(input()) d = int(input()) e = int(input()) f = int(input()) g = int(input()) h = int(input()) i = int(input()) j = int(input()) lista = [n,b,c,d,e,f,g,h,i,j] print (max(lista)) –
user92865
29/09/2017 às 13:12
como faço multiplo do primeiro número?? –
user92865
29/09/2017 às 13:17
Adicione um comentário
5 Respostas
Ordenado por:
3
Outra forma seria:
# Define a função:
def exercicio():
# Lista com os números lidos:
numeros = []
# Lê o primeiro número, garantindo que não seja zero:
numero = 0
while numero == 0:
numero = int(input("Entre com o 1º número: "))
if numero == 0:
print("O 1º número não pode ser zero.")
numeros.append(numero)
# Lê os outros nove números:
for i in range(9):
numero = int(input("Entre com o %dº número: " % (i+2)))
numeros.append(numero)
# Obtém o maior valor e exibe-o na tela:
maior = max(numeros)
print("O maior valor é", maior)
# Verifica se o maior valor é múltiplo do primeiro:
multiplo = maior % numeros[0] == 0
# Se for, exibe o primeiro valor na tela:
if multiplo:
print("O maior valor é múltiplo do primeiro, que é", numeros[0])
# Chama a função definida:
exercicio()
Veja funcionando em Ideone | Repl.it
Acredito que com os comentários no código seja possível compreendê-lo. A leitura do primeiro valor foi feita de forma separada pois responde a condições diferentes dos outros valores.
Compartilhar
Melhore esta resposta
Seguir
editada 29/09/2017 às 13:51
respondida 29/09/2017 às 13:42
Woss's user avatar
Woss
75,3mil1515 medalhas de ouro113113 medalhas de prata208208 medalhas de bronze
Adicione um comentário
2
Inicialmente é necessário montar uma função :
def maxNum_input(): #declara a função
list_num = [] #declara a lista que vai receber os números
i = 0 # um contador(há outras formas de fazer)
while i < 10: # o loop
number = int(input("Digite um número diferente de 0: ")) # a entrada você pode criar algo para impedir que o usuário digite 0
list_num.append(number) # adiciona cada entrada a lista
i += 1 # incrementa o contador
if (max(list_num) % list_num[0]) == 0: # verifica se é múltiplo
print("O maior número é múltiplo de :",list_num[0])
print(max(list_num)) # a saída
maxNum_input() # a chamada da função
Compartilhar
Melhore esta resposta
Seguir
editada 29/09/2017 às 14:15
respondida 29/09/2017 às 13:41
MagicHat's user avatar
MagicHat
12,5mil66 medalhas de ouro4646 medalhas de prata9090 medalhas de bronze
Muito Obrigado :) –
user92865
29/09/2017 às 13:54
@user92865 considere validar a resposta que acredita estar correta, clicando no incon verde abaixo das setas de avaliação da resposta, boa sorte. –
MagicHat
29/09/2017 às 14:20
Adicione um comentário
0
Poderia fazer dessa forma:
cont = 0
lista_numeros =[]
while cont != 10: #Para poder pegar 10 numeros
numero = int(input('Digite um numero: '))
lista_numeros.append(numero)
cont = cont + 1
maior = max(lista_numeros) # O max retorna o numero máximo em uma lista
if maior % lista_numeros[0] == 0 :
print ('É múltiplo')
else:
print ('Não é múltiplo')
O operador '%' retorna o resto da divisão, dessa forma você pode testar se o maior número é divisível pelo primeiro.
Compartilhar
Melhore esta resposta
Seguir
editada 29/09/2017 às 14:27
respondida 29/09/2017 às 13:20
Otávio Reis Perkles's user avatar
Otávio Reis Perkles
86588 medalhas de prata2020 medalhas de bronze
haaa sim agora entendi. –
user92865
29/09/2017 às 13:23
Muito Obrigada pela ajuda :) –
user92865
29/09/2017 às 13:23
Embora o AP tenha supostamente, visto como correta sua resposta, há de se levar em consideração, a necessidade explícita de ser uma função. –
MagicHat
29/09/2017 às 13:43
teria de ser maior % lista_numeros [0] == 0. Alterado –
Otávio Reis Perkles
29/09/2017 às 14:26
Adicione um comentário
-2
maior = menor = 0
for cont in range(0, 10):
num = int(input(f'Número {cont + 1}: '))
if cont == 0:
maior = num
menor = num
elif num > maior:
maior = num
elif num < menor:
menor = num
print(f'O maior número foi {maior}')
print(f'O menor número foi {menor}')
Compartilhar
Melhore esta resposta
Seguir
editada 5/01 às 1:38
respondida 5/01 às 1:23
arnib's user avatar
arnib
111 medalhas de bronze
Adicione um comentário
-5
num = []
for v in range (0, 9): #v está armazenando as iterações vindas da função range
lista = input("Digite um número diferente de zero:") # Aqui lista fica como string.
if (lista.isnumeric()) and int(lista) != 0: #is numeric() vê se o valor é numerico
lista = int(lista) #só depois de checar passo lista pra int
if v == 0: # Primeira iteração adiciona o valor em num de antemão
num.append(lista)
if lista > num[-1] : #os valores só são comparados se lista receber um numero
num.append(lista)
else:
print("Você digitou um valor não numerico ou inválido")
print(max(num))
if (max(num)) %num[0] == 0: # Confere se o maior numero é multiplo
print(num[0])
#dentro deste for as posições não precisam ser escritas como lista[v]
#porque acima já se assume que v será o iterador
Se em qualquer momento o uso ou a necessidade de alguma linha de código trouxer dúvida, comente abaixo que estarei disposto a clarificar, já que eu usei algumas coisinhas especificas, tipo a função range() mas por enquanto basta dizer que range sempre trabalha dentro de um dado intervalo de numeros (parando no numero final -1)
Escolhi esse jeito pois ele é relativamente simples,limpo em termos de código e usa algumas funções que o Python permite.
Compartilhar
Melhore esta resposta
Seguir
editada 13/01 às 20:25
respondida 12/01 às 22:21
Victor Mariano's user avatar
Victor Mariano
6155 medalhas de bronze
Sua resposta pode ser melhorada adicionando informações fundamentais. Basta editar para adicionar mais detalhes, como citações ou documentação para que outras pessoas possam confirmar que sua resposta está correta. Você pode encontrar mais informações sobre como escrever boas respostas na Central de Ajuda. –
Comunidade
Bot
12/01 às 22:31
1
Há vários caracteres para os quais isnumeric retorna True mas dão erro ao converter para int, veja aqui. O melhor seria fazer logo int(entrada) e capturar o ValueError para saber se não foi digitado um número (mais ou menos assim). Outro ponto é que a condição lista != 0 é testada antes de converter lista para número, então a condição sempre será verdadeira (pois naquele ponto, lista ainda é uma string) –
hkotsubo
13/01 às 0:28
Não tem porque declarar lista = [] não usado em lugar algum. Não tem porque declara v em for v in range (0, 10): melhor usar um _. E o código não imprime o primeiro número caso o maior seja múltiplo desse. –
Augusto Vasques
13/01 às 2:44
@hkotsubo Obrigado por apontar as falhas obtidas, especialmente a do !=0, não tinha me dado conta. Com relação ao isnumeric sei que não é o mais exato, mas resolve a questão. –
Victor Mariano
13/01 às 19:29
@augusto Nesse momento estou atualizando o código com relação as variaveis não usadas, mas não entendi o seu ponto com relação aos múltiplos, realizei diversos casos de teste e obtive resultados coerentes em todos, com multiplos e não multiplos. A questão se refere a printar o maior de todos. –
Victor Mariano
13/01 às 19:32
Mostrar mais 4 comentários
************************************************************
Variáveis, expressões e comandos
Tópicos
Capítulo 2: Variáveis, expressões e comandos
comando de atribuição
escrita na tela (= input())
leitura via teclado (= print())
classes str e int
função de conversão int()
Comando de repetição: while
expressões lógicas e operadores relacionais
Estrutura de um programa
Utilizaremos a seguinte estrutura para um programa em Python.
def main():
# comandos
...
#------
# a linha a seguir inicia a execução do programa
main()
Variáveis
Uma variável é um nome que se refere a um valor. Um comando de atribuição cria uma nova variável e lhe dá um valor.
Variáveis são usadas para guardarmos valores que serão usados mais tarde no programa.
Atribuição
Um comando é uma unidade de código que o interpretador pode executar. Um comando de atribuição tem a seguinte forma:
variável = expressão
Significado:
o valor da expressão é calculado;
a variável é criada;
a variável passa a fazer referência/guardar o valor
Exemplos
num = 15
soma = 0 # este é um comentário
soma = soma + num
a = 3
b = 4
Cada nome de variáveis é uma letra ou o símbolo '_' (underscore) seguida de letras, números e '_'. Atenção, maiúscula é diferente de minúscula. Assim maior e Maior são duas variáveis diferentes.
Exercício 2.1
Dados dois inteiros a e b, calcular a sua soma.
Tentativa 0: execute o programa abaixo e veja o que acontece.
1
2
3
4
5
6
7
8
9
def main():
a = 3
b = 4
soma = a + b
print("A soma de a + b eh igual a soma")
main()
(aula02_ex1_1)
Observe que tudo entre aspas (”) define um texto ou string. Mas queremos imprimir o valor das variáveis e não o nome delas.
print()
A função print() é utilizada para o programa exibir mensagens. Por exemplo:
print("Olá, mundo!")
print("A soma é", soma)
Escreve na tela do computador
Olá, mundo!
A soma é XXXX
onde XXXX é o valor ao qual a variável soma se refere.
Tentativa 1: execute o programa abaixo e veja o que acontece.
Observe que o print() recebeu dois valores separados por vírgula:
um string (entre aspas) e
o nome de uma variável
O string é impresso diretamente (pois esse é o seu valor) e, ao invés de imprimir o nome da variável soma, o print() exibe o valor ao qual a variável soma se refere, ou, dito mais simplesmente, o valor da variável soma.
Mas e como imprimir os valores de a e b ao invés de seus nomes?
Tentativa 2: execute o programa abaixo e veja o que acontece.
1
2
3
4
5
6
7
8
9
def main():
a = 3
b = 4
soma = a + b
print("A soma de", a, "+", b, "eh igual a", soma)
main()
(aula02_ex1_3)
Agora sim, a mensagem ficou bem mais clara. Mas como fazer com que os valores a serem somados sejam definidos por um usuário?
Tentativa 3: execute o programa abaixo e veja o que acontece.
1
2
3
4
5
6
7
8
9
def main():
a = input("Digite o primeiro numero: ")
b = input("Digite o segundo numero: ")
soma = a + b
print("A soma de", a, "+", b, "eh igual a", soma)
main()
(aula02_ex1_4)
input()
Um programa pode utilizar a função input() para receber os dados ou valores que um usuário fornece através do teclado. O formato típico de um comando leitura é
variável = input("Prompt")
O programa pára e espera pela digitação de algum texto seguido do ENTER. "Prompt" é opcional e pode indicar o que programa deseja. Por exemplo,
nome = input("Qual é o seu nome? ")
print(nome, ", me fale sobre você.")
O valor que o usuário fornece e que será retornada pelo input() é sempre um string e não um número. Quando o operador + é realizado sobre strings, eles são concatenados (“grudados”) em vez de adicionados. Como veremos mais tarde, a operação de concatenar strings através do operador + é muito útil.
No momento desejamos adicionar dois números inteiros. Precisamos, portanto, de um maneira para converter um string em um número inteiro, para que o Python obtenha a soma desses números. Para ler um valor e converté-lo para um número inteiro utilizamos a função de conversão int().
Strings
Uma string é texto entre aspas (") ou apóstrofo (')
Valores
Programas manipulam valores. Valores podem ser de diferentes tipos ou classes. Até agora vimos que um valor pode ser um número inteiro (classe int) ou um texto (classe str). Por exemplo, "Oi" é um string (valor da classe str), 23 é um inteiro (valor da classe int), e "23" é um string (valor da classe str).
>>> type("Oi")
>>> type(23)
>>> type("23")
>>>
Operacões sobre strings
O operador + concatena dois strings.
Tentativa 4: execute o programa abaixo e veja como ele se comporta.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def main():
# a_str e b_str guardam strings
a_str = input("Digite o primeiro numero: ")
b_str = input("Digite o segundo numero: ")
# a_int e b_int guardam inteiros
a_int = int(a_str) # converte string/texto para inteiro
b_int = int(b_str) # converte string/texto para inteiro
# calcule a soma entre valores que são números inteiros
soma = a_int + b_int
# imprima a soma
print("A soma de", a_int, "+", b_int, "eh igual a", soma)
main()
(aula02_ex1_5)
int()
A função int() converte um dado string para um número inteiro.
>>> a = int("123")
>>> type (a)
>>> print("valor inteiro =", a)
valor inteiro = 123
>>>
O string deve ser algo como "123" ou "-5", pois senão ocorrerá um erro.
>>> a = int("1.5")
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: '1.5'
>>> a = int("a156")
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: 'a156'
>>>
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: 'a156'
Como não precisamos guardar as respostas na forma de texto, podemos simplificar o programa compondo as funções int() e input() da seguinte forma:
Tentativa 5:
1
2
3
4
5
6
7
8
9
def main():
a = int(input("Digite o primeiro numero: "))
b = int(input("Digite o segundo numero: "))
soma = a + b
print("A soma de", a, "+", b, "eh igual a", soma)
main()
(aula02_ex1_6)
Exercício 2.2
Dada uma sequência de números inteiros diferentes de zero, terminada por um zero, calcular a sua soma. Por exemplo, para a sequência:
12 17 4 -6 8 0
o seu programa deve escrever o número 35.
Tente escrever a sua solução primeiro e, depois, clique aqui para ver uma.
1
2
3
# escreva o seu programa
(aula02_ex2_tentativa)
Comando de repetição: while
Leitura sobre o comando de repetição while.
Expressões lógicas
Condições ou expressões lógicas (boolean expressions) são expressões cujo valor é verdadeiro (=``True`` em Python) ou falso (=``False`` em Python) e usam, entre outros, os operadores relacionais:
> (maior);
>= (maior ou igual);
< (menor);
<= (menor ou igual);
== (igual); ou
!= (diferente).
Exercício 2.3
Nota: Exercício 4 da lista sobre inteiros.
Dados números inteiros n e k, com k >= 0, calcular n elevado a k. Por exemplo, dados os números 3 e 4 o seu programa deve escrever o número 81.
Tente escrever a sua solução abaixo primeiro e, depois, clique aqui para ver uma.
1
2
3
# escreva o seu programa
(aula02_ex3_tentativa)
Exercício 2.4
Nota: Exercício 8 da lista sobre inteiros.
Dado um número inteiro n >= 0, calcular n!.
Tente escrever a sua solução abaixo primeiro e, depois, clique aqui para ver uma.
1
2
3
# escreva o seu programa
(aula02_ex4_tentativa)
**************************************************************
Entrada, impressão e números
Theory
Steps
Problems
1. Como ler e escrever em Python
Todo programa é eventualmente um processador de dados, portanto, devemos saber como inserir e enviar dados dentro dele. Existe uma função, print() , para saída de dados de qualquer programa Python. Para usá-lo, passe uma lista separada por vírgulas de argumentos que você deseja imprimir para a função print() . Vamos ver um exemplo. Pressione "run" e depois "next" para ver como o programa está sendo executado linha por linha:
step by step
Para inserir dados em um programa, usamos input() . Esta função lê uma única linha de texto, como uma String.
Aqui está um programa que lê o nome do usuário e os cumprimenta:
step by step
Advertising by Google, may be based on your interests
2. Soma de números e cordas
Vamos tentar escrever um programa que insira dois números e imprima sua soma. Lemos os dois números e armazená-los na variáveis a e b usando o operador de atribuição = . No lado esquerdo de um operador de atribuição, colocamos o nome da variável. O nome pode ser uma cadeia de caracteres latinos ( AZ , az , 0-9 , _ ), mas deve começar com uma letra no intervalo AZ ou az . No lado direito de um operador de atribuição, colocamos qualquer expressão que o Python possa avaliar. O nome começa a apontar para o resultado da avaliação. Leia este exemplo, execute-o e observe a saída:
step by step
Depois de executar o exemplo, podemos ver que ele imprime 57 . Como fomos ensinados na escola, 5 + 7 dá 12 . Então, o programa está errado e é importante entender o porquê. A questão é que, na terceira linha s = a + b Python "resumiu" duas cadeias, em vez de dois números. A soma de duas strings em Python funciona da seguinte maneira: elas são coladas uma após a outra. Também é chamado às vezes de "concatenação de string".
Você vê no Inspetor variável, no lado direito, que os valores ligados a variáveis a e b estão entre aspas? Isso significa que os valores lá são string, não números. Strings e números são representados em Python de forma diferente.
Todos os valores em Python são chamados de "objetos". Todo objeto tem um certo tipo. O número 2 corresponde a um objeto "número 2" do tipo "int" (ou seja, um número inteiro). A string 'hello' corresponde a um objeto "string 'hello'" do tipo "str". Cada número de ponto flutuante é representado como um objeto do tipo "float". O tipo de um objeto especifica que tipo de operações pode ser aplicado a ele. Por exemplo, se as duas variáveis "first" e "second" estiverem apontando para os objetos do tipo int , o Python poderá multiplicá-las. No entanto, se eles estão apontando para os objetos do tipo str , o Python não pode fazer isso:
step by step
Para converter (converter) a string de dígitos em um número inteiro, podemos usar a função int() . Por exemplo, int('23') fornece um objeto int com valor 23 .
Dadas as informações acima, agora podemos corrigir a saída incorreta e produzir a soma dos dois números corretamente:
step by step
**********************************************************
Strings: Operações, Funções e Métodos
● O método split(sep) separa uma string usando sep como
separador. Retorna uma lista das substrings.
● Podem haver substrings vazias no retorno de split().
numeros = "1; 2 ; 3"
numeros.split(";")
['1', ' 2 ', ' 3']
a = "Fizeram a atividade conceitual?"
a.split()
['Fizeram', 'a', 'atividade', 'conceitual?']
Strings: Operações, Funções e Métodos
● O método replace serve para trocar todas as ocorrências de uma
substring por outra em uma string.
a = "Fizeram a atividade conceitual?"
a.replace("conceitual","teórica")
'Fizeram a atividade teórica?'
a = "Fizeram a atividade conceitual?"
a.replace("conceitual","")
'Fizeram a atividade ?'
Strings: Operações, Funções e Métodos
● Podemos usar a função list para transformar uma string em uma
lista onde os itens da lista correspondem aos caracteres da string.
numeros = "1; 2 ; 3"
list(numeros)
['1', ';', ' ', '2', ' ', ';', ' ', ' ', '3']
list("atividade")
['a', 't', 'i', 'v', 'i', 'd', 'a', 'd', 'e']
Strings: Operações, Funções e Métodos
● O método join recebe como parâmetro uma sequência ou lista, e
retorna uma string com a concatenação dos elementos da
sequência/lista.
l = list("atividade")
l
['a', 't', 'i', 'v', 'i', 'd', 'a', 'd', 'e']
"".join(l)
'atividade'
Exercícios
Exemplo: Contador de Palavras
● Faça um programa que conta o número de palavras em um texto.
Exemplo: Contador de Palavras
● Faça um programa que conta o número de palavras em um texto.
○ Primeiramente removemos do texto todos os sinais de pontuação.
○ Depois usamos a função split para separar as palavras.
texto = input("Digite um texto: ")
pontuacao = [".", ",", ":", ";", "!", "?"]
# remove os sinais de pontuação
for p in pontuacao:
texto = texto.replace(p," ")
Exemplo: Contador de Palavras
● Faça um programa que conta o número de palavras em um texto.
○ Depois usamos a função split para separar as palavras.
texto = input("Digite um texto: ")
pontuacao = [".", ",", ":", ";", "!", "?"]
# remove os sinais de pontuação
for p in pontuacao:
texto = texto.replace(p," ")
# split devolve lista com palavras como itens
numero_palavras = len(texto.split())
print("Número de palavras:", numero_palavras)
Exercício: Palíndromo
● Faça um programa que lê uma string e imprime “Palíndromo” caso a
string seja um palíndromo e “Não é palíndromo” caso não seja.
○ Assuma que a entrada não tem acentos e que todas as letras são
minúsculas.
● Obs: Um palíndromo é uma palavra ou frase, que é igual quando lida da
esquerda para a direita ou da direita para a esquerda (espaços em
brancos são descartados).
○ Exemplos de palíndromo: “ovo”, “reviver”, “mega bobagem”,
“anotaram a data da maratona”
Referências & Exercícios
● Os slides dessa aula foram baseados no material de MC102 do Prof.
Eduardo Xavier (IC/Unicamp)
● https://wiki.python.org.br/ExerciciosComStrings: 14 exercícios =)
● https://panda.ime.usp.br/pensepy/static/pensepy/08-Strings/strings.htm
*************************************************************************
Intera ̧c ̃ao com o Usu ́ario - Matrizes
Fa ̧ca um programa que leia uma matriz digitada pelo usu ́ario e conte quantos n ́umeros
pares existe na matriz, imprimindo o resultado na tela. Imprima a matriz na tela
tamb ́em.
2o Passo: Fazer uma fun ̧c ̃ao para contar o n ́umero de elementos pares de uma
matriz.
# Fun ̧c ̃ao que conta o n ́umero de elementos
# pares em uma matriz
# list → int
def contaPares(matriz):
total = 0
for i in range(len(matriz)):
for j in range(len(matriz[0])):
if matriz[i][j] % 2 == 0:
total += 1
return total
# Primeira Op ̧c ̃ao de Programa
# Fun ̧c ̃ao Principal
def main():
matriz = input( ”Digite uma matriz : ”)
pares = contaPares(matriz)
print ”O total de n ́umeros pares ́e ”,pares
if name == ” main ”:
main()
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
19/ 25
Intera ̧c ̃ao com o Usu ́ario - Matrizes
Fa ̧ca um programa que leia uma matriz digitada pelo usu ́ario e conte quantos n ́umeros
pares existe na matriz, imprimindo o resultado na tela. Imprima a matriz na tela
tamb ́em.
3o Passo: Como imprimir a matriz na tela ?
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
20/ 25
Intera ̧c ̃ao com o Usu ́ario - Matrizes
Fa ̧ca um programa que leia uma matriz digitada pelo usu ́ario e conte quantos n ́umeros
pares existe na matriz, imprimindo o resultado na tela. Imprima a matriz na tela
tamb ́em.
3o Passo: Como imprimir a matriz na tela ?
Imprimindo no formato de lista:
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
20/ 25
Intera ̧c ̃ao com o Usu ́ario - Matrizes
Fa ̧ca um programa que leia uma matriz digitada pelo usu ́ario e conte quantos n ́umeros
pares existe na matriz, imprimindo o resultado na tela. Imprima a matriz na tela
tamb ́em.
3o Passo: Como imprimir a matriz na tela ?
Imprimindo no formato de lista:
# Primeira Op ̧c ̃ao de Programa
# Fun ̧c ̃ao Principal
def main():
matriz = input( ”Digite uma matriz : ”)
pares = contaPares(matriz)
print ”O total de n ́umeros pares ́e ”,pares
print ”A matriz lida foi: \n ”,matriz
if name == ” main ”:
main()
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
20/ 25
Intera ̧c ̃ao com o Usu ́ario - Matrizes
Fa ̧ca um programa que leia uma matriz digitada pelo usu ́ario e conte quantos n ́umeros
pares existe na matriz, imprimindo o resultado na tela. Imprima a matriz na tela
tamb ́em.
3o Passo: Como imprimir a matriz na tela ?
Imprimindo no formato de matriz:
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
21/ 25
Intera ̧c ̃ao com o Usu ́ario - Matrizes
Fa ̧ca um programa que leia uma matriz digitada pelo usu ́ario e conte quantos n ́umeros
pares existe na matriz, imprimindo o resultado na tela. Imprima a matriz na tela
tamb ́em.
3o Passo: Como imprimir a matriz na tela ?
Imprimindo no formato de matriz:
# Fun ̧c ̃ao para imprimir em formato de matriz
# list → sem saida
def imprimirMatriz(matriz):
for i in range(len(matriz)):
for j in range(len(matriz[0])):
print matriz[i][j], #um n ́umero ao lado do outro
print #pula linha
return
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
22/ 25
Intera ̧c ̃ao com o Usu ́ario
Fa ̧ca o programa do jogo: “Acerte os n ́umeros”. Inicialmente, leia diversos
n ́umeros inteiros entrados pelo dono da casa de aposta, guardando numa lista.
Termina quando o dono digitar um n ́umero negativo. Em seguida o apostador
poder ́a entrar com v ́arios n ́umeros para verificar o seu acerto.
Caso acerte um dos n ́umeros da lista, informe do acerto e diga quantos
n ́umeros faltam acertar. O programa termina caso o apostador erre 10 vezes ou
at ́e ele acertar todos os n ́umeros.
Obs.: caso o dono da casa de apostas tenha entrado com um n ́umero que j ́a
exista, ignore-o.
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
23/ 25
Autores
Jo ̃ao C. P. da Silva Lattes
Carla Delgado Lattes
Ana Luisa Duboc Lattes
Colaboradores
Fabio Mascarenhas Lattes
Anamaria Martins Moreira Lattes
Leonardo de Oliveira Carvalho Lattes
Charles Figueiredo de Barros Lattes
Fabr ́ıcio Firmino de Faria Lattes
Jo ̃ao Carlos, Carla Delgado, Ana Luisa Duboc
24/ 25
**********************************************************************
Python range: gerando sequências de números!
Última atualização 31 de agosto de 2021
Python range: gerando sequências de números!
A função Python range() foi introduzida na linguagem a partir da versão 3.x. Ela substituiu a função xrange(), que estava disponível até a versão 2.x do Python. Basicamente, essa função retorna um conjunto de números sequenciais conforme os parâmetros definidos ao utilizarmos um comando.
Uma das utilidades desse recurso é para construirmos estruturas de repetição, como o for loop, que permite executar um determinado bloco de códigos por várias vezes. Também podemos configurar como será a sequência de números retornada pela função, o que amplia a funcionalidade desse comando. Para demonstrar como ela funciona, preparamos este post com os tópicos:
Índice
01 | Python range: o que é e para que serve?
02 | Qual é a sintaxe?
03 | Usando intervalos na função Python range
04 | Exemplos de uso da função range
Continue com a gente e boa leitura!
Python range: o que é e para que serve?
Basicamente, a função range() retorna um conjunto de números sequenciais, que podem ser definidos de acordo com os parâmetros utilizados pela função. Por padrão, o intervalo gerado por ela começa pelo número zero e é incrementado um a um até atingir o ponto de parada.
Por gerar números sequenciais, uma de suas utilidades é servir de apoio para a construção da estrutura de repetição for, que permite executar uma instrução ou um bloco de código por várias vezes. Em linguagens de programação, como em JavaScript, C, entre outras, podemos utilizar um contador numérico na própria instrução.
Entretanto, esse recurso é diferente na linguagem Python. Em vez de utilizarmos o contador, utilizamos a função range(). Para isso, associamos a função à estrutura de repetição for. Assim, ela retorna os números sequenciais e podemos determinar as repetições necessárias.
Mais adiante você verá um exemplo do uso da função range() em um loop for. Ela também pode ser utilizada sozinha para popular os valores de uma variável do tipo lista ou tupla, por exemplo.
Qual é a sintaxe?
Por padrão, os valores retornados na função range() são sequenciais e acrescidos de 1. Isso significa que, se utilizarmos o comando range(10), os valores retornados serão: “0, 1, 2, 3, 4, 5, 6, 7, 8 e 9”. Portanto, o valor inicial é zero e os números seguintes serão a somatória do valor atual mais 1. Basicamente, existem 3 sintaxes possíveis para a função range():
range(stop)
Corresponde à sintaxe com o parâmetro obrigatório referente ao ponto de parada.
range(start, stop)
Sintaxe com a definição do valor inicial e do ponto de parada.
range(start, stop, step)
Sintaxe com a adição dos parâmetros opcionais start e step, além do stop — que é obrigatório.
Conheça os parâmetros da função range
A função range() aceita três parâmetros. Confira qual a finalidade de cada um deles.
Start
O start não é um parâmetro obrigatório e corresponde ao número inicial da sequência. Vamos utilizar o loop for em conjunto com a função range() para demonstrar como eles funcionam juntos. Por exemplo:
for i in range(2,5):
print(i)
'''
resultado:
2
3
4
'''
Perceba que o primeiro número retornado é o 2, pois ele corresponde ao parâmetro start. Além disso, veja que o valor 5 não equivale à quantidade de vezes que a sequência é incrementada. Na prática, ele indica o ponto de parada do valor sequencial.
Stop
O stop é um parâmetro obrigatório e indica o número correspondente ao ponto de parada da sequência. É importante dizer que, por padrão, esse valor não é inserido na sequência, como ficou demonstrado no exemplo anterior, em que os números retornados foram apenas: 2, 3 e 4.
Step
O step indica qual valor será utilizado para incrementar a sequência numérica eé um parâmetro opcional. Como dissemos, o valor padrão de incremento é 1, entretanto podemos modificar essa condição. Veja um exemplo:
for j in range(2, 8, 2):
print(j)
'''
resultado:
2
4
6
'''
Usando intervalos na função Python range
Para utilizar a função range() com segurança é importante relembrarmos alguns conceitos de matemática referentes a intervalo aberto e fechado, pois eles ajudam a entender como esse comando funciona.
Intervalo aberto ]x[
Dizemos que um intervalo é aberto quando os números extremos desse intervalo não estão presentes em seu conteúdo. O intervalo aberto entre 0 e 5 é escrito matematicamente por meio do símbolo: ]0, 5[. Perceba que temos os colchetes com a abertura contrária ao número. A representação matemática corresponde a:
Intervalo: ]a, b[
Conjunto: {x ∈ ℝ | a < x < b}
Isso significa que todos os números maiores que “a” e menores que “b” fazem parte do conjunto formado pelo intervalo ]a, b[. Portanto, o resultado do nosso exemplo corresponde a 1, 2, 3 e 4.
Intervalo fechado [x]
No intervalo fechado os números definidos no extremo da declaração fazem parte do conjunto, portanto ele é o inverso da definição anterior. Sua representação matemática equivale a:
Intervalo: [a, b]
Conjunto: { x ∈ ℝ | a ≤ x ≤ b}
Assim, se utilizarmos o mesmo exemplo anterior, teremos o intervalo fechado entre 0 e 5 representado por [0, 5] e que corresponde ao conjunto numérico {0, 1, 2, 3, 4 e 5}.
Relação com a função range
Agora, vamos à relação entre esse conceito e a função range(). Cada parâmetro da função tem um comportamento específico para compor os elementos do intervalo. Veja como funciona cada um:
range( [start], stop[, step] )
O valor correspondente a start faz parte da composição do resultado, ou seja, se indicarmos range(2, 4), o número 2 estará presente no retorno da função, que será: 2 e 3.
Já o parâmetro stop representa o ponto de parada. Como o número indicado não será considerado como parte do resultado, temos apenas o resultado 2 e 3 no nosso exemplo. Se quiséssemos incluir o número 4 na resposta, deveríamos indicar a função range(2, 5). Assim, o retorno seria: 2, 3 e 4.
Por fim, temos o parâmetro step, que indica o quanto devemos somar a cada elemento, e corresponde ao valor informado na função. Isso significa que, se definirmos range(2, 10, 2), teremos como resultado a soma do número 2 a cada elemento, o que nos dá como retorno: 2, 4, 6 e 8.
É importante entender como cada parâmetro funciona para construirmos instruções que retornem o valor de acordo com o tipo de intervalo desejado, seja ele aberto ou fechado.
Exemplos de uso da função range
Existem diferentes situações em que podemos utilizar a função range(). Nada melhor que os exemplos práticos para conferirmos o que podemos fazer com esse recurso.
Gerar uma sequência numérica
Podemos gerar sequências numéricas com a função range() para diversas finalidades, como para popular uma lista ou uma tupla. Assim, em vez de definirmos cada um dos elementos da lista, podemos determinar qual será o intervalo numérico. Veja um código de exemplo:
>>> list(range(5))
#resultado: [0, 1, 2, 3, 4]
No código fonte acima, geramos uma lista sequencial que inicia no número zero, pois não informamos nenhum outro valor — e, por padrão, o primeiro número da sequência é o zero.
>>> tuple(range(1, 6))
#resultado: (1, 2, 3, 4, 5)
Nesse exemplo, geramos uma tupla que inicia no número 1 e termina no número 5. Perceba que informamos o ponto de parada igual a 6 para que o número 5 fizesse parte do intervalo.
Gerar sequência com intervalos maiores entre os elementos
Como mencionamos, o valor padrão para o intervalo entre os elementos é 1. Entretanto, podemos criar números sequenciais com intervalos diferentes. Veja um exemplo:
>>> list(range(0, 41, 4))
#resultado: [0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40]
No código acima geramos uma lista com os valores da tabuada do 4. Perceba que, para que o número 40 fizesse parte do resultado, indicamos o ponto de parada igual a 41.
Gerar sequências com número negativo
A função range() também pode gerar valores negativos. Para isso, devemos indicar o sinal de menos “-“ nos parâmetros necessários para construir a sequência. Veja um exemplo:
>>> list(range(10, -11, -2))
#resultado: [10, 8, 6, 4, 2, 0, -2, -4, -6, -8, -10]
No exemplo acima, criamos uma sequência com intervalo de 2 números entre os números 10 e -10. Perceba que indicamos o valor inicial igual a 10 e, no parâmetro step, informamos o valor negativo igual a -2. Além disso, informamos o ponto de parada igual a -11 para que o valor -10 fizesse parte do intervalo.
Veja outro exemplo em que todos os números da sequência são negativos:
>>> list(range(-10, -21, -2))
#resultado: [-10, -12, -14, -16, -18, -20]
Gerar resultado vazio
Existem situações em que o resultado gerado pela função range() é vazio. Portanto, é preciso atenção para não transformar a função em uma falha para o programa. Veja algumas situações que o resultado é vazio:
>>> list(range(0))
# resultado: []
Quando informamos apenas um parâmetro na função range(), ele representa o ponto de parada. Portanto, ao informarmos o valor zero, dizemos ao compilador que o intervalo parte do número zero (valor padrão) até o zero (ponto de parada). Por isso, a lista retornada não terá nenhum elemento.
Outra situação que também gera uma lista vazia é quando informamos o parâmetro start maior que o stop (ponto de parada). Isso faz com que o Python retorne uma lista vazia. Veja o exemplo:
>>> list(range(10, 5))
# resultado: []
Perceba que o valor inicial, que no nosso exemplo é 10, é maior que o ponto de parada representado pelo número 5. Portanto, o resultado será uma lista vazia.
A função Python range() retorna um conjunto de números sequenciais. Ela contém os parâmetros start, stop e step, que permitem configurar o retorno do intervalo de diferentes maneiras, como valores múltiplos de um determinado número e até intervalos com números negativos e positivos.
Gostou do nosso conteúdo sobre como funciona a função Python range()? Então, confira nosso post sobre como programar, que contém um passo a passo imperdível para iniciantes!
**********************************************************************
// Tutorial //
Como converter tipos de dados em Python 3
Published on December 15, 2020
Python
Development
Default avatar
By Lisa Tagliaferri
Developer and author at DigitalOcean.
Português
Como converter tipos de dados em Python 3
Introdução
Na linguagem Python, os tipos de dados são usados para classificar um tipo específico de dados, determinando os valores que você pode atribuir ao tipo e as operações que você pode realizar nele. Ao programar, há momentos em que será necessário converter valores entre os no tipos, no intuito de manipular tais valores de maneira diferente. Por exemplo, talvez seja necessário concatenar valores numéricos com strings, ou representar casas decimais em números que foram inicializados como valores de número inteiro.
Este tutorial irá ensinar a converter tipos de dados, incluindo números, strings, tuplas e listas, bem como fornecer exemplos para ajudar você a familiarizar-se com diferentes casos de uso.
Convertendo os tipos de número
Em Python, existem dois tipos de dados numéricos: inteiros e números de ponto flutuante (float). Às vezes, ao trabalhar no código de outra pessoa, será necessário converter um inteiro para um float ou vice-versa. Em outros casos, você pode estar usando um inteiro quando o que realmente precisa é de um float. O Python possui métodos integrados para permitir a conversão de inteiros em floats e floats em inteiros.
Convertendo os números inteiros em floats
O método float() do Python irá converter inteiros em floats. Para usar essa função, adicione um inteiro dentro dos parênteses:
float(57)
Neste caso, 57 será convertido em 57.0.
Também é possível usar essa técnica com uma variável. Vamos declarar f como igual a 57, e então imprimir o novo float:
f = 57
print(float(f))
Output
57.0
Usando a função float(), podemos converter inteiros em floats.
Convertendo floats em inteiros
O Python também possui uma função integrada para converter floats em inteiros: int().
A função int() funciona de maneira semelhante à função float(): é possível adicionar um número de ponto flutuante dentro dos parênteses para convertê-lo em um inteiro:
int(390.8)
Neste caso, 390.8 será convertido em 390.
Você também pode usar essa técnica com as variáveis. Vamos declarar b como igual a 125.0, e c como igual a 390.8, e então imprimir os novos floats:
b = 125.0
c = 390.8
print(int(b))
print(int(c))
Output
125
390
Ao converter os floats em inteiros com a função int(), o Python corta a casa decimal e os números do float que restam são usados para criar um inteiro. Embora talvez você queira arredondar 390,8 para 391, o Python não fará isso através da função int().
Números convertidos através de divisão
Em Python 3, quocientes relevantes são convertidos de inteiros para floats ao fazer uma divisão, embora não sejam em Python 2. Ou seja, quando você dividir 5 por 2, em Python 3, você receberá um float como resposta (2.5):
a = 5 / 2
print(a)
Output
2.5
Em Python 2, como você estava lidando com dois inteiros, você receberia um inteiro de volta como sua resposta: 5 / 2 = 2. Leia “Python 2 vs Python 3: considerações práticas" para mais informações sobre as diferenças entre o Python 2 e Python 3.
Convertendo com as strings
Uma string é uma sequência de um ou mais caracteres (letras, números ou símbolos). As strings são uma forma comum de dados em programas de computador. Muitas vezes, pode ser necessário converter strings em números e números em strings, especialmente quando estivermos incluindo dados gerados pelo usuário.
Convertendo números em strings
Podemos converter números em strings usando o método str(). Vamos passar um número ou uma variável dentro dos parênteses do método e então esse valor numérico será convertido em um valor de string.
Primeiro, vamos ver como converter inteiros. Para converter o inteiro 12 em um valor de string, passe o número 12 para o método str():
str(12)
Ao executar str(12) no shell interativo do Python com o comando python em uma janela de terminal, você receberá o seguinte resultado:
Output
'12'
As aspas ao redor do número 12 significam que o número já não é mais um inteiro, mas sim um valor de string.
Com variáveis, podemos começar a ver como é prático converter inteiros em strings. Vamos supor que queiramos monitorar o progresso diário de um usuário na programação e estamos inserindo quantas linhas de código eles estão escrevendo por vez. Queremos mostrar esse feedback para o usuário. Para tanto, os valores de string e inteiro serão impressos ao mesmo tempo:
user = "Sammy"
lines = 50
print("Congratulations, " + user + "! You just wrote " + lines + " lines of code.")
Ao executar este código, iremos receber o seguinte erro:
Output
TypeError: Can't convert 'int' object to str implicitly
Não é possível concatenar strings e inteiros em Python, de modo que teremos que converter a variável lines para se tornar um valor de string:
user = "Sammy"
lines = 50
print("Congratulations, " + user + "! You just wrote " + str(lines) + " lines of code.")
Agora, ao executar o código, iremos receber o resultado a seguir, parabenizando o usuário pelo progresso alcançado:
Output
Congratulations, Sammy! You just wrote 50 lines of code.
Se quisermos converter um float em uma string, ao invés de um inteiro em uma string, seguimos os mesmos passos e formatos. Ao passar um float no método str(), um valor de string do float será retornado. Podemos usar o valor do float em si ou uma variável:
print(str(421.034))
f = 5524.53
print(str(f))
Output
421.034
5524.53
Vamos fazer um teste para garantir que tudo está correto, fazendo a concatenação com uma string:
f = 5524.53
print("Sammy has " + str(f) + " points.")
Output
Sammy has 5524.53 points.
Agora, temos certeza de que o float foi convertido corretamente em uma string, pois a concatenação foi realizada sem nenhum erro.
Convertendo strings em números
As strings podem ser convertidas em números usando os métodos int() e float().
Se sua string não tiver casas decimais, você provavelmente vai querer convertê-la em um número inteiro, usando o método int().
Vamos usar o exemplo do usuário Sammy, monitorando as linhas de código escritas a cada dia. Pode ser que queiramos manipular esses valores com operações matemáticas, no intuito de dar um feedback mais interessante para o usuário. Porém, no momento, tais valores estão armazenados em strings:
lines_yesterday = "50"
lines_today = "108"
lines_more = lines_today - lines_yesterday
print(lines_more)
Output
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Como os dois valores numéricos foram armazenados em strings, um erro foi emitido. O operando - para a subtração não é um operando válido para dois valores de string.
Modifique o código para incluir o método int() que converterá as strings em inteiros, permitindo, assim, fazer operações matemáticas com os valores que eram originalmente strings.
lines_yesterday = "50"
lines_today = "108"
lines_more = int(lines_today) - int(lines_yesterday)
print(lines_more)
Output
58
A variável lines_more é automaticamente um inteiro, sendo igual ao valor numérico de 58 neste exemplo.
Também é possível converter os números no exemplo acima em valores float usando o método float() no lugar do método int(). Em vez de receber o resultado de 58, iremos receber o resultado de 58.0, um float.
O usuário Sammy está ganhando pontos em valores decimais.
total_points = "5524.53"
new_points = "45.30"
new_total_points = total_points + new_points
print(new_total_points)
Output
5524.5345.30
Neste caso, usar o operando + com duas strings é uma operação válida, mas irá concatenar duas strings ao invés de fazer a adição de dois valores numéricos. Então, nosso resultado parece não convencional, pois apenas coloca os dois valores um ao lado do outro.
Precisamos converter essas strings em floats antes de executar qualquer operação matemática com o método float():
total_points = "5524.53"
new_points = "45.30"
new_total_points = float(total_points) + float(new_points)
print(new_total_points)
Output
5569.83
Agora que convertemos as duas strings em floats, recebemos o resultado esperado que adiciona 45.30 a 5524.53.
Se tentarmos converter um valor de string com casas decimais em um inteiro, iremos receber um erro:
f = "54.23"
print(int(f))
Output
ValueError: invalid literal for int() with base 10: '54.23'
Se passarmos um valor decimal em uma string para o método int(), iremos receber um erro, pois ele não será convertido em um inteiro.
Converter strings em números nos permite modificar rapidamente o tipo de dados com o qual estamos trabalhando para que possamos realizar operações com valores numéricos que eram originalmente strings.
Convertendo em tuplas e listas
Os métodos list() e tuple() podem ser usados para converter os valores passados a eles nos tipos de dados lista e tupla respectivamente. Em Python:
uma lista é uma sequência ordenada mutável de elementos que fica contida dentro de colchetes [ ].
uma tupla é uma sequência ordenada imutável de elementos contida dentro de parênteses ( ).
Convertendo em tuplas
Vamos começar com a conversão de uma lista em uma tupla. Converter uma lista em uma tupla, que é um tipo de dados imutável, pode permitir uma otimização substancial aos programas que criamos. Quando usamos o método tuple(), ela irá retornar a versão em tupla do valor passado a ele.
print(tuple(['pull request', 'open source', 'repository', 'branch']))
Output
('pull request', 'open source', 'repository', 'branch')
Vemos que uma tupla foi impressa no resultado, pois os itens estão agora contidos dentro de parênteses ao invés de colchetes.
Vamos usar tuple() com uma variável que representa uma lista:
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp']
print(tuple(sea_creatures))
Output
('shark', 'cuttlefish', 'squid', 'mantis shrimp')
Novamente, vemos que o valor de lista foi alterado para um valor de tupla, indicado pelos parênteses. Podemos converter qualquer tipo iterável em uma tupla, incluindo strings:
print(tuple('Sammy'))
Output
('S', 'a', 'm', 'm', 'y')
Considerando que é possível iterar em strings, podemos convertê-las em tuplas com o método tuple(). Entretanto, com tipos de dados que não são iteráveis, como inteiros e floats, iremos receber um erro do tipo:
print(tuple(5000))
Output
TypeError: 'int' object is not iterable
Embora seja possível converter um inteiro em uma string, para então converter em uma tupla, como em tuple(str(5000)), é melhor escolher um código legível ao invés de conversões complicadas.
Convertendo em listas
Converter valores, especialmente tuplas, em listas, pode ser útil quando for necessário ter uma versão mutável desse valor.
Vamos usar o método list() para converter a tupla a seguir em uma lista. Como a sintaxe para criar uma lista usa parênteses, certifique-se de incluir os parênteses do método list() e, neste caso, também o método print():
print(list(('blue coral', 'staghorn coral', 'pillar coral')))
Output
['blue coral', 'staghorn coral', 'pillar coral']
Os colchetes indicam que uma lista foi retornada a partir do valor de tupla original passado ao método list().
Para tornar o código mais legível, podemos remover um dos pares de parênteses usando uma variável:
coral = ('blue coral', 'staghorn coral', 'pillar coral')
list(coral)
Caso imprimíssemos list(coral), iríamos receber o mesmo resultado que acima.
Assim como as tuplas, as strings podem ser convertidas em listas:
print(list('shark'))
Output
['s', 'h', 'a', 'r', 'k']
Aqui, a string 'shark' foi convertida em uma lista, fornecendo uma versão mutável do valor original.
Conclusão
Este tutorial de Python demonstrou como converter vários dos tipos de dados nativos importantes em outros tipos de dados, principalmente através de métodos integrados. Ser capaz de converter tipos de dados em Python fornece uma flexibilidade extra ao escrever seus programas.
Want to learn more? Join the DigitalOcean Community!
Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.
Sign up
About the authors
Default avatar
Lisa Tagliaferri
author
Developer and author at DigitalOcean.
Still looking for an answer?
Ask a question
Search for more help
Was this helpful?
******************************************
Feedback
Pesquisas relacionadas
limitar caracteres input python
isnumeric python
limitar casas decimais input python
variável aceitar somente número em c
truncar número python
input de números python
input somente números inteiros
entrada e saída python
99-ganhar-dinheiro
99pay-ou-sofisa
99pay
alimentos-inflamatorios
almoco-domingo-estado-mes-ano
alura-ou-udemy
alura
apenas-o-e-mail-dado-pessoal-lgpd
apostas-online
atualizacao-para-mysqli
aumentar-acessos-com-sites-similares
bootstrap-vs-wordpress
borda-tabela-css
buffer-logger
calcular-onde-investir-me-tempo-em-conteudo
cancelar-compra-multiproprieadade
caractere-invisivel-whatsapp
caracteres-especiais-html
centraliza-html
centralizar-icone-svg
coisas-de-manaus
colecionador-disco-vinil
colocar-site-google-discovery
concurso-publico-ti-2023
configurar-outlook-servidor
consulta-sql-php-8
conteudo-provas-clinicas
cores-html
corrigindo-erro-php
curiosidade
curriculo-programador-web
cursos
dar-permissao-pasta-remota-php
decoracao-com-disco-de-vinil
dinheiro-cartoes-investimentos-fintechs
disco-de-vinil-roberto-carlos
disco-de-vinil
disco-vinil-usado-antigo
discos-amazon
discos-antigos
discos-mais-procurados-colecionadores
disder
do-que-e-feito
editor-de-video-online-gratis
email-dado-pessoal-lgpd
erro-arquivo-xml-atom
espaco-imagem-css
explicando-dinheiro-cartao-de-credito
faixa-etaria-viagem
fazer-agrupamento-sql-por-todos-campos-com-mesmo-termo
fazer-antes-de-viajar
fechar-modal
filtro-psl152
forcar-arquivo-pdf-abrir-apenas-em-iframe
forcar-pdf-apenas-iframe
formulario-lead-autorizacao-lgpd
formulario-para-registro-de-lead
foto-smartwatch
frases-curiosas
front-end-linguagens
funcao-mysql
furada
gerencia-de-projetos-2015
google-ad-manager
htaccess-nao-funciona-no-host
icone-svg
if-ternario-php
imagem-escondida
impedir-link-form
include-dentro-echo-php
inteligencia-artificial
iron-man-black-sabbath
jogo-do-tigrinho
joinads
legendas-youtube
limitar-numeros-input-python
link-interno-seo
links-do-adsense-que-as-pessoas-estao-clicando
matrix-internet
matrix-reserva
matrix
medicamentos
melhores-a-piores-praias-de-salvador
melhores-capitais-para-viajar
melhores-destinos-para-viajar-baixa-temporada-brasil
micronicho-investimento-infinitas-possibilidades
monarx
multipropriedade-vale-a-pena
musica-tela
musicas-brasileiras-viajar
musicas-criticas-a-tecnologia
musicas-que-falam-de-discos
musicas-viajar
o-colorib-sabe-que-o-template-e-dele
oceano-azul-seo
paginas-amp
palavras-bomba-hidraulica
palavras-chaves-multipropriedade
pdf-para-html
perguntas-em-vagas-de-emprego
permissao-pasta-remota-php
pesquisas-abril-22-p254
picpay-vs-nubank
pilates-penteadeira
pipe-angular-cpf
png-para-jpg
pontos-negativos-contidos-livro-mulipropriedade
prioridade-matrizes
prioridade
priorizacao-de-conteudo-para-site-e-blog
priorizar-conteudo-nos-sites
que-roupa-usar
quebra-linha-whatsapp
query-artigo-800-palavras
query-php-um-campo
questoes-clinicas-2017
questoes-sprint
reclame-aqui-ganha-dinheiro
reclame-aqui
redirect-html
regex
remover-o-s-de-uma-palavra-plural-singular-php
remover-pontos-tracos-excel
rende-mais-cdi-agosto-de-2023
retirar-linha-excel
samurai-x
seo-local
serie-explicando-dinheiro-netflix-cartao-de-credito
sexta-temporada-black-mirror
simular-colunas-tabela-html
sinal-maior-menor
sistema-multipropriedade
snake-case
sugestao-dominio-feminino
taboola-o-joao-kleber-da-internet
termos-direto-ao-ponto
tipos-join
tirar-espaco-excel
trocar-foto-smartwatchs-em-alta
usar-ad-manager
usar-adsense-em-arquivo-pdf
usar-no-sobre
valor-unico-mysqli-php
varios-sites-de-prefeituras-direcionam-para-sites-de-aposta
vinil-anos-90-dificil-achar
vinil-para-depois
viver-de-blog-monetizacao
webstories-videos-texto
whatsapp-direto
whatsapp