сложить четные числа в списке, используя два вложенных цикла for и функцию str () - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь получить все четные числа из списка, используя два вложенных цикла и используя str (). Мой код работает, просто не так, как я предполагал, и он не соответствует тому, что я ищу.

 def evnNmbr ():
     a = int(input("Enter 1st integer (lower) "))
     b = int(input("Enter 2nd integer (higher) "))
     evnCnt = 0
     for i in range (a, b):
         if i % 2 == 0:
             evnCnt += 1
             s = str(i)
             print("Even number count is , ", s, evnCnt)



 evnNmbr()

Ex

Enter 1st integer (lower) 0 
Enter 2nd integer (higher) 21 
Even number count is , 0 1 
Even number count is , 2 2 
Even number count is , 4 3 
Even number count is , 6 4 
Even number count is , 8 5 
Even number count is , 10 6 
Even number count is , 12 7 
Even number count is , 14 8 
Even number count is , 16 9 
Even number count is , 18 10 
Even number count is , 20 11 

Я хотел бы получить общее количество четных чисел в диапазоне чисел a и b. ie: (2, 4, 6, 8 = 4 even numbers

Ответы [ 3 ]

0 голосов
/ 09 июля 2020

Я добавил диапазон b + 1, потому что функция диапазона исключает последнее значение, поэтому, если вы поставите четное число в конце, оно не будет учитываться. Единственное, что вам нужно изменить, - это распечатать отдельно переменную evnCnt, чтобы отображалось только общее значение.

def evnNmbr ():
    a = int(input("Enter 1st integer (lower) "))
    b = int(input("Enter 2nd integer (higher) "))
    evnCnt = 0
    for i in range (a, (b + 1)):
        if i % 2 == 0:
            evnCnt += 1
            # s = str(i)
            # print("Even number count is , ", s)
            # if you still want to visualize every number separately you can uncomment the lines
    print(f"Even number count is: {evnCnt}")


evnNmbr()
0 голосов
/ 09 июля 2020

Это будет ваше самое простое решение

def find_evens(a,b):
    l = []
    for i in range(a,b):
        if i % 2 == 0:
            l.append(i)

    answer = len(l)
    return answer

print(find_evens(1,21))
0 голосов
/ 09 июля 2020

Вам просто нужно вывести результат evn_cnt один раз в конец

def evnNmbr():
    a = int(input("Enter 1st integer (lower) "))
    b = int(input("Enter 2nd integer (higher) "))
    evn_cnt = 0
    for i in range(a, b):
        if i % 2 == 0:
            evn_cnt += 1
    print("Even number count is", evn_cnt)

См.

Enter 1st integer (lower) 10
Enter 2nd integer (higher) 88
Even number count is 39
...