LIMITAR NUMEROS INPUT PYTHON

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