Ir ao conteúdo
  • Cadastre-se

Python O código só reconhece o algarismo na string


Ir à solução Resolvido por ZueiroFC,

Posts recomendados

então, eu tava fazendo uma tarefa em que tenho q pedir pro usuário colocar uns valores (input), ai dps ele falava qual é o maior e o menor número, e se tiver alguma coisa que n seja um número, ele vai avisar que não é valido.

a parte de reconhecer o inválido e o maior e menor numero está tudo bem, o problema é que o programa tá selecionando os ALGARISMOS e não os números em si

então no final, por exemplo, ele fala que 7 é maior que 100, pois ele só reconhece o 1 e o 0. alguém sabe como posso resolver isso ai? 

 

 

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" : break
    try :
        float(num)


	for ma in [num]:
		if largest is None :
			largest = ma
		elif ma > largest :
			largest = ma


	for me in [num]:
         if smallest is None :
			smallest = me
         elif me < smallest :
            smallest = me



    except:
			print("Invalid input")

print("Maximum is", largest)
print("Minimum is", smallest)

 

Link para o comentário
Compartilhar em outros sites

Fiz umas pequenas mudanças no seu código e acho que resolve o seu problema,

preste muita atenção quando você trabalha com números, flots e strings para não misturar

as estruturas de dados do Python ou de qualquer linguagem de computador. Parabéns pelo

trabalho!

 

largest = None
smallest = None
while True:
    num = int(input("Enter a number: "))
    
    if num == 0:
        break
    try:
        
        for ma in [num]:
            if largest is None:
                largest = ma
            elif ma > largest:
                largest = ma
        for me in [num]:
            if smallest is None:
                smallest = me
            elif me < smallest:
                smallest = me



    except:
        print("Invalid input")

print("Maximum is", largest)
print("Minimum is", smallest)

 

Link para o comentário
Compartilhar em outros sites

  • Solução
14 horas atrás, ZueiroFC disse:

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" : break
    try :
        num = int(num)


    for ma in [num]:
        if largest is None :
            largest = ma
        elif ma > largest :
            largest = ma


    for me in [num]:
         if smallest is None :
            smallest = me
         elif me < smallest :
            smallest = me

    except:
            print("Invalid input")

print("Maximum is", largest)
print("Minimum is", smallest)

um amigo meu me respondeu essa, em baixo do "try:" eu tinha q por um "num" antes do float,  >num= float(num)

Link para o comentário
Compartilhar em outros sites

Outra forma é com eval para aceitar qualquer número int e float,

 

maior = 0
menor = 0
inicia = True
while True:
    num = input('Numero: ')
    if num == 'done':
        break
    try:
        num = eval(num)
        if inicia == True:
            maior = menor = num
            inicia = False
        if num > maior:
            maior = num
        if num < menor:
            menor = num
    except:
        print('Valor inválido')
        
print('Maior = ', maior)
print('Menor = ', menor)

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...