Ir ao conteúdo

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


Ir à solução Resolvido por ZueiroFC,

Posts recomendados

Postado

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)

 

Postado

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)

 

  • Solução
Postado
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)

Postado

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)

 

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...