Нахождение, какие значения в списке меньше / больше чем число - PullRequest
0 голосов
/ 02 марта 2019

Я видел темы, похожие на эту, но после опробования их методов он все еще не исправил часть с , если до конца.Из того, что я читал по другим темам, значения не совпадают, но я пытался это исправить и пробовал другие методы, но безуспешно.Спасибо за вашу помощь заранее.Вот мой код:

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())

Ответы [ 3 ]

0 голосов
/ 02 марта 2019

if numbers > single_number делает что-то вроде:

if [1, 2, 3, 4, 5, 6, 7] > 4

Это не имеет никакого смысла.Хотите петлю for?

for number in numbers:
    if number > single_number:
        d += 1
    elif number < single_number:
        m += 1
    # else doesn't make sense here, since 4 is neither larger _nor_ smaller than 4.
0 голосов
/ 02 марта 2019

Вы можете использовать понимание списка для фильтрации, а затем получить длину полученного списка:

d = len([n for n in numbers if n > single_number])
m = len(numbers) - d
0 голосов
/ 02 марта 2019

все, что вам не хватает, это цикл:

for number in numbers: 
    if numbers > single_number:
        d=d+1
    else: # elif numbers < single_number: # what if numbers == single_number?
        m=m+1

есть улучшения, которые вы можете сделать, хотя.d = d+1 правильно;я предпочитаю d += 1 хотя.

тогда (если вы не возражаете циклически повторять свой список дважды):

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

даст вам d и m в компактном видеспособ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...