Consecutivo em Código
Sobre a Matemática
Dois números inteiros são consecutivos se um deles vem imediatamente após o outro na ordem habitual.
O antecessor de um número inteiro é o número que vem imediatamente antes dele na ordem natural dos números inteiros. Se 𝑛 é um número inteiro, então: antecessor de n=n−1. Por exemplo, antecessor de 5 → 4 e antecessor de 0 → −1.
O sucessor de um número inteiro é o número que vem imediatamente depois dele na ordem natural dos números inteiros. Se 𝑛 é um número inteiro, então: sucessor de n=n+1. Por exemplo, sucessor de 5 → 6 e sucessor de −1 → 0.
Sobre o Código
Na linguagem de programação Python,
def – é a palavra-chave usada para definir uma função em Python. Uma função agrupa instruções que executam uma tarefa específica e pode ser reutilizada.
docstring – é o texto explicativo colocado logo após a definição de uma função, entre “”” “””. Serve para documentar o que a função faz, facilitando o entendimento do código.
return – é o comando que encerra a execução da função e devolve um valor ao ponto onde a função foi chamada.
abs() – é a função que retorna o valor absoluto de um número.
- – é o operador aritmético de subtração. Em matemática, representa a diferença entre dois valores; em Python, pode calcular antecessores (n – 1).
== – é o operador de comparação de igualdade. Verifica se dois valores são iguais e retorna True ou False.
+ – é o operador aritmético de adição. Em matemática, soma valores; em Python, pode calcular sucessores (n + 1).
int() – é a função embutida (nativa) que converte um valor para inteiro. Muito usada para transformar a entrada do usuário (texto) em número inteiro.
input() – é a função embutida que lê dados digitados pelo usuário via teclado. O valor retornado é sempre do tipo str (texto).
print() – é a função nativa responsável por exibir informações na tela, permitindo comunicar resultados do processamento ao usuário.
f"..." (f-string) – é a forma moderna de formatar textos em Python, permitindo inserir valores de variáveis diretamente dentro da string de forma clara e legível.
if – é a estrutura condicional que executa um bloco de código somente se uma condição for verdadeira. Baseia-se em lógica matemática e booleana.
else – é a parte complementar do if. Define o bloco de código executado quando a condição do if é falsa.
import – é a palavra-chave usada para importar bibliotecas ou módulos, permitindo usar funcionalidades prontas no código.
itertools – é a biblioteca padrão do Python usada para criar e manipular sequências e iteradores, muito útil para números consecutivos e progressões.
list() – é a função que cria ou converte valores em uma lista, estrutura que armazena múltiplos elementos em ordem.
itertools.islice() – é a função que recorta uma quantidade específica de elementos de uma sequência ou iterador, semelhante a um “fatiamento controlado”.
itertools.count() – é a função que gera uma sequência infinita de números consecutivos, começando de um valor inicial e avançando de 1 em 1.
# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.
Vamos ao código…
def sao_consecutivos(a, b):
"""
Verifica se dois números inteiros são consecutivos.
Dois números são consecutivos se a diferença entre eles é 1.
"""
return abs(a - b) == 1
def antecessor(n):
"""
Retorna o antecessor de um número inteiro.
"""
return n - 1
def sucessor(n):
"""
Retorna o sucessor de um número inteiro.
"""
return n + 1| Código Python (.py) | O que faz |
| def sao_consecutivos(a, b): | Define uma função chamada sao_consecutivos que recebe dois números inteiros a e b para verificar se eles são consecutivos. |
| “””Verifica se dois números inteiros são consecutivos. Dois números são consecutivos se a diferença entre eles é 1.””” | Docstring usada para documentar o objetivo da função. |
| return abs(a – b) == 1 | Calcula a diferença entre os números, usa valor absoluto e retorna True se a diferença for 1, indicando que são consecutivos; caso contrário, retorna False. |
| def antecessor(n): | Define uma função que calcula o antecessor de um número inteiro. |
| “””Retorna o antecessor de um número inteiro.””” | Docstring usada para documentar o objetivo da função. |
| return n – 1 | Calcula e retorna o antecessor do número, subtraindo 1, conforme a definição matemática. |
| def sucessor(n): | Define uma função que calcula o sucessor de um número inteiro. |
| “””Retorna o sucessor de um número inteiro.””” | Docstring usada para documentar o objetivo da função. |
| return n + 1 | Calcula e retorna o sucessor do número, somando 1. |
# Testes e demonstração
n1 = int(input("Digite o primeiro número inteiro: "))
n2 = int(input("Digite o segundo número inteiro: "))
print(f"O antecessor de {n1} é {antecessor(n1)}.")
print(f"O sucessor de {n1} é {sucessor(n1)}.")
print(f"O antecessor de {n2} é {antecessor(n2)}.")
print(f"O sucessor de {n2} é {sucessor(n2)}.")
if sao_consecutivos(n1, n2):
print(f"Os números {n1} e {n2} são consecutivos.")
else:
print(f"Os números {n1} e {n2} NÃO são consecutivos.")| Código Python (.py) | O que faz |
| n1 = int(input(“Digite o primeiro número inteiro: “)) | Solicita ao usuário um número inteiro, converte o valor digitado para int e armazena em n1. |
| n2 = int(input(“Digite o segundo número inteiro: “)) | Solicita outro número inteiro, converte para int e armazena em n2. |
| print(f”O antecessor de {n1} é {antecessor(n1)}.”) | Chama a função antecessor, calcula o antecessor de n1 e imprime o resultado usando f-string. |
| print(f”O sucessor de {n1} é {sucessor(n1)}.”) | Chama a função sucessor, calcula o sucessor de n1 e exibe o resultado formatado. |
| print(f”O antecessor de {n2} é {antecessor(n2)}.”) | Calcula e imprime o antecessor do segundo número informado pelo usuário. |
| print(f”O sucessor de {n2} é {sucessor(n2)}.”) | Calcula e imprime o sucessor do segundo número informado. |
| if sao_consecutivos(n1, n2): | Estrutura condicional que chama a função sao_consecutivos para verificar se n1 e n2 são consecutivos. |
| print(f”Os números {n1} e {n2} são consecutivos.”) | Executado quando a condição é verdadeira; imprime a confirmação de que os números são consecutivos. |
| else: | Indica o caminho alternativo quando a condição do if não é satisfeita. |
| print(f”Os números {n1} e {n2} NÃO são consecutivos.”) | Executado quando os números não são consecutivos; imprime a mensagem correspondente. |
Saída do código (valor de retorno)…
O antecessor de 10 é 9.
O sucessor de 10 é 11.
O antecessor de 14 é 13.
O sucessor de 14 é 15.
Os números 10 e 14 NÃO são consecutivos.
# Agora, utilizando a bibilioteca itertools
import itertools
def vizinhos(n):
"""
Retorna antecessor, número e sucessor.
"""
return list(itertools.islice(itertools.count(n - 1), 3))
n = int(input("Digite um número inteiro: "))
print(f"Antecessor, número e sucessor de {n}: {vizinhos(n)}")| Código Python (.py) | O que faz |
| import itertools | Importa a biblioteca itertools, que fornece ferramentas para criação e manipulação de sequências, especialmente sequências de números consecutivos. |
| def vizinhos(n): | Define uma função chamada vizinhos que recebe um número inteiro n. |
| “””Retorna antecessor, número e sucessor.””” | Docstring explicando que a função devolverá três valores: o antecessor, o próprio número e o sucessor. |
| return list(itertools.islice(itertools.count(n – 1), 3)) | Cria uma sequência de números consecutivos iniciando em n – 1 (antecessor), limita a sequência a 3 valores e os retorna como lista. |
| n = int(input(“Digite um número inteiro: “)) | Solicita ao usuário um número inteiro, converte o valor digitado para int e armazena em n. |
| print(f”Antecessor, número e sucessor de {n}: {vizinhos(n)}”) | Chama a função vizinhos, calcula o antecessor, o número e o sucessor, e imprime o resultado de forma formatada usando f-string. |
Saída do código (valor de retorno)…
Antecessor, número e sucessor de 12: [11, 12, 13]
Fonte:
- Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
- Códigos e comentários gerados por ChatGPT com revisão nossa.
- https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]