Erro em contagem de números.

1. Erro em contagem de números.

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 20/08/2019 - 13:51h

Eu tenho esse código, para contar quantas vezes os números fornecidos aparecem em um intervalo.

 
#!/usr/bin python
# -*- coding: utf-8 -*-

seq=0

seq1=0

seq2=0

seq3=0

numbers=4

while(numbers >= 0):
numbers = input("Type some number: ")

if(0<=numbers<=25):
seq+=1

elif(26<=numbers<=50):
seq1+=1

elif(51<=numbers<=75):
seq2+=1

elif(76<=numbers<=100):
seq3+=1

print("Numbers between 0 and 25: "), seq
print("Numbers between 26 and 50: "), seq1
print("Numbers between 51 and 75: "), seq2
print("Numbers entre 76 and 100: "), seq3



Agradeço toda ajuda!


  


2. Re: Erro em contagem de números.

FABIO DE OLIVEIRA MARTINS
ofioneu

(usa Outra)

Enviado em 09/09/2019 - 11:58h

Ok, mas o que vc quer fazer realmente?
vc quer entrar com um numero e saber se ele está dentro de um range de números?


3. Re: Erro em contagem de números.

Irova
Irova

(usa Linux Mint)

Enviado em 09/09/2019 - 14:49h



Parece que na variável numbers, no input dela, você não especificou se é um number ou string, arrumando isso o código ficaria assim:
#!/usr/bin python 
# -*- coding: utf-8 -*-

seq=0

seq1=0

seq2=0

seq3=0

numbers=4

while(numbers >= 0):
numbers = int(input("Type some number: "))

if(0<=numbers<=25):
seq+=1

elif(26<=numbers<=50):
seq1+=1

elif(51<=numbers<=75):
seq2+=1

elif(76<=numbers<=100):
seq3+=1

print("Numbers between 0 and 25: "), seq
print("Numbers between 26 and 50: "), seq1
print("Numbers between 51 and 75: "), seq2
print("Numbers entre 76 and 100: "), seq3

Explique melhor também, está muito complicado de entender o seu código e a sua proposta.



4. Re: Erro em contagem de números.

Matheus
pylm

(usa Gentoo)

Enviado em 09/09/2019 - 16:25h

O input retorna uma string por padrão então o teu teste nunca vai ser verdadeiro, podes mudar esse comportamente colocando o input dentro de algum tipo numérico, como por exemplo:


int(input('Insira algo: '))
float(input('Insira algo: '))


Reescrevi teu código pra ficar mais flexível e evitar ficar repetindo o mesmo código com pequenas modificações.


#!/usr/bin/env python3

# Inicia as variáveis
number = 0
number_list = []

while number != 'sair':

# Deixa o input do usuário em caixa baixa e remove espaços para evitar coisas como "SaIr" não sendo reconhecido
number = input('Enter with a number: ').lower().strip()

# Testa se a string recebida é um valor numérico e adiciona ela na lista de números inputados
if number.isnumeric():
number_list.append(int(number))
elif number != 'sair'
# Se não for continua a execução com uma mensagem ao usuário
print('You must insert a numeric value')


# Filtra os valores que estão dentro da range requerida, cria uma lista com os valores filtrados e retorna o tamanho dela
def number_range(n1, n2, n_list=number_list):
numbers = filter(lambda x: x in range(n1, n2 + 1), n_list)
return len([i for i in numbers])

# Lista de números para os quais se quer saber o número de ocorrências dentro da range
numbers_range_list = [0, 25, 50, 75, 100]

# "Zipa" a lista de números e a lista de números avançada em 1 index para poder testar o valor anterior com o próximo.
for i, v in zip(numbers_range_list, numbers_range_list[1:]):

# Usa f strings para printar os valores sem ter que ficar repetindo o print
print(f'Numbers between {i} and {v}: {number_range(i, v)}')




5. Re: Erro em contagem de números.

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/09/2019 - 09:14h


mrx6s0 escreveu:

Eu tenho esse código, para contar quantas vezes os números fornecidos aparecem em um intervalo.

 
#!/usr/bin python
# -*- coding: utf-8 -*-

seq=0

seq1=0

seq2=0

seq3=0

numbers=4

while(numbers >= 0):
numbers = input("Type some number: ")

if(0<=numbers<=25):
seq+=1

elif(26<=numbers<=50):
seq1+=1

elif(51<=numbers<=75):
seq2+=1

elif(76<=numbers<=100):
seq3+=1

print("Numbers between 0 and 25: "), seq
print("Numbers between 26 and 50: "), seq1
print("Numbers between 51 and 75: "), seq2
print("Numbers entre 76 and 100: "), seq3



Agradeço toda ajuda!


Amigo identifiquei dois problemas no seu código:
1- a entrada do input é uma string, para utilizar operações nela é necessário converter para int
2- a identação das condicionais (if e elif) está errada


#!/usr/bin python
# -*- coding: utf-8 -*-

seq=0

seq1=0

seq2=0

seq3=0

numbers=4

while(numbers >= 0):
numbers = int(input("Type some number: "))

if(0<=numbers<=25):
seq+=1

elif(26<=numbers<=50):
seq1+=1

elif(51<=numbers<=75):
seq2+=1

elif(76<=numbers<=100):
seq3+=1

print("Numbers between 0 and 25: ", seq)
print("Numbers between 26 and 50: ", seq1)
print("Numbers between 51 and 75: ", seq2)
print("Numbers entre 76 and 100: ", seq3)







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts