0
votes

Trouver quelles valeurs dans une liste sont plus petites / supérieures à un nombre

J'ai vu des sujets similaires à cela, mais après avoir essayé leurs méthodes, il n'a toujours pas fixé la pièce de si fort> jusqu'à la fin. D'après ce que j'ai lu sur d'autres sujets, les valeurs sont incompatibles, mais j'essayais de le réparer et d'essayer d'autres méthodes sans succès. Merci d'avance pour votre aide. Voici mon code:

numbers = []

def calc():

    d=0
    m=0
    single_number=int(input("Enter a number: "))
    number = input("Enter a list of numbers: ")
    numbers = [int(i) for i in number.split()]
    summed =sum(numbers, 0)/len(numbers)
    print("Average: ", summed)
    minimum=min(numbers)
    maximum=max(numbers)
    print("Minimum", minimum)
    print("Maximum", maximum)
    if numbers > single_number:
        d=d+1
    else:
        m=m+1
    print("Amount of numbers in the list that are smaller than the 1st entered number:", m)
    print("Amount of numbers in the list that are bigger than the 1st number:", d)
print(calc())


0 commentaires

3 Réponses :


0
votes

Tout ce que vous manquez est une boucle:

d = sum(1 for number in numbers if number > single_number)
m = sum(1 for number in numbers if number < single_number)


2 commentaires

Merci pour votre temps de réponse. D = SUM (1 pour NUMBER EN NUMÉRES IF NUMÉRO> SOINT_NUMBER) M = SUM (1 Pour le numéro en numéros Si nombre


Oui, le pour vous dit que je t est une boucle. Malheureusement, vous en boucle deux fois sur la même liste où il suffirait une fois ...



0
votes

si des chiffres> single_number fait quelque chose comme: xxx

qui n'a aucun sens. Voulez-vous un pour boucle? xxx


0 commentaires

0
votes

Vous pouvez utiliser une liste de compréhension pour filtrer, puis obtenir la longueur de la liste résultante:

d = len([n for n in numbers if n > single_number])
m = len(numbers) - d


0 commentaires