Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Função "input"

Existe alguma forma de colocar um input no meu codigo que devolva todos os valores que eu dar nos seu respectivos tipos? Tipo se eu enviar um número inteiro ele ver o tipo como um "int", se eu mandar uma letra ele ver o tipo como um "str" e por ai vai, ao invês de ler tudo como "str"??

3 respostas

Olá Breno, tudo bem? Espero que sim!

A função input necessariamente vai receber os valores somente em formato de string para evitar erros e não fará a conversão automática para algum outro tipo.

O que você pode fazer é na mesma linha do input(), converter o valor para o tipo que desejar. Por exemplo int(input())irá converter o input para um inteiro.

Dessa forma você pode garantir de maneira melhor o tipo da variável que vai entrar no input para conseguir trabalhar com ela no código.

Bons estudos!

Mas tem alguma forma de fazer a função input receber outros valores ao mesmo tempo??

Tipo, eu estou quero fazer um algoritimo que ele recusa respostas que não são string, e para fazer isso eu estava pensando em fazer o algorimo ler o tipo da resposta pra ver se ela é string, int, float, bool... e se tal resposta não for do tipo string por exemplo um número, ele iria recusar, mas como qualquer valor é lido como String na função input, eu não sei como fazer esse código.

Você tem uma dica de como fazer isso, ou que outro metodo usar??

    [...]
    chute = input("Chute uma letra: ")
    chute = chute.lower().strip()
    tipo_chute = type(chute)


    posição = 0


    if tipo_chute is not str:
        print("Chute inválido...")

    else:
        if chute in palavra_secreta:
                for letra in palavra_secreta:
                    if chute == letra:
                        letras_acertadas[posição] = chute
                    posição += 1

        else:
            letras_erradas.append(chute)
            erros += 1 
            [...]

Assim que estava ficando... Se não for possivel fazer desta maneira, qual outro jeito poderia usar??

solução!

Olá Breno, tudo bem? Espero que sim!

Dessa forma realmente não irá funcionar, uma vez que o input sempre será considerado uma string e sempre irá executar o bloco else.

Nesse caso, vou sugerir a você fazer um curso de tratamento de strings da plataforma:

Nesse curso é utilizado o Regex para validar se uma string tem os caracteres válidos. Dessa forma você pode checar se a string só possui dígitos de a-z e não há nenhum dígito especial ou números.

Bons estudos!