como posso colocar a função input () em uma função de definição em python 3

Yassine Remmal

Estou trabalhando em uma seqüência de collatz que encontrei em um livro e quero inserir o número, mas não funciona. Quando coloco o número, a tecla Enter do teclado não funciona, fiz algo errado no meu programa? :

even = range(0,10**5,2)
odd = range(1,10**5,2)

def collatz_s(num):
    while num !=1 :
        if num in even :
            result = num /2
            print(result)
            num = result

        elif num is odd :
            result = num *3+1
            num = result
            print(result)


num = int(input('choose a random number'))
collatz_s(num)
o arquivo de fogo

Para verificar se um número é ímpar ou par, em vez de gerar rangeobjetos e verificar se um número é ineles, observe o restante na divisão por dois, que você pode obter num % 2. Se o restante for 1, significa que o número é par. Caso contrário, é estranho.

Além disso, use num // 2para realizar uma divisão inteira . Desse modo, dividir 16 por 2 resultará em 8 (o número inteiro), em vez de 8,0 (o número de ponto flutuante). Acontece que isso é realmente importante aqui, especialmente porque você está interessado em encontrar o restante da divisão (a conceito principalmente relacionado a números inteiros.)

Eu acredito que é bem possível que um erro de arredondamento na divisão de ponto flutuante poderia ter colocado o seu programa em um loop infinito (desde um número com uma pequena parte decimal não seria em qualquer evenou oddalcance.) Ou se você estivesse ultrapassando o limite de sua intervalos (10 5 ) você estaria na mesma situação onde nenhum dos ramos corresponde. Usar a divisão de inteiros e verificar se há pares ou ímpares usando o restante deve corrigir os dois problemas.

def collatz_s(num):
    while num != 1:
        if num % 2 == 0:
            num = num // 2
            print(num)
        else:
            num = num * 3 + 1
            print(num)

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Python Como posso colocar loops For aninhados em uma função?

Como posso colocar uma função matemática em uma função python?

Python - como posso colocar uma variedade de entradas do usuário em uma função

Como posso ignorar uma definição de função recursiva em uma função de shell?

python, como posso colocar e se em uma função que gera um erro?

Como diferenciar entre uma importação e uma definição de função em python?

Como posso usar pickle em Python 3 para criar uma função de salvamento

Como posso retornar duas variáveis de uma função em python 3?

Como posso armazenar o resultado de uma função em uma variável em Python?

Como posso colocar diretamente um valor de retorno de uma função bash em uma instrução if?

Como posso colocar todas as palavras em uma frase em maiúscula usando uma função?

Como posso colocar todas as palavras em uma frase em maiúscula usando uma função?

Posso colocar uma declaração de lançamento em uma assinatura de função typedef?

Como posso acessar o resultado de uma função anterior em uma função de currying?

Python: como posso obter o valor de uma entrada em uma função

Como chamar uma função dentro de uma função de outra função em Python?

Como posso colocar isso em uma compreensão de lista

como usar um raw_input como argumento em uma função em python 3

Como posso calcular uma função externa em python?

Python: Como posso atualizar a lista em uma função?

Como posso usar .startswith () em uma função python?

Como posso definir uma função chamada "importar" em Python?

Como posso chamar uma função definida em python?

A função 'principal' é classificada como uma definição de função em C?

Como posso especificar o intervalo de um determinado argumento de uma função em python?

Como posso escrever a função de comprimento em uma linha?

Descoberta de raiz para funções vetoriais não lineares em python: como posso colocar limites em minhas variáveis?

Em python 3, como posso retornar uma variável para uma função corretamente?

Como quebrar uma linha em uma definição de função em Python de acordo com pep8?