не работает цикл и счетчик

Задача состоит в том, чтобы считать количество введенных до того момента цифр пока пользователь не введет цифру 2. При вводе 2 просто печатает пробел

a = int(input())
b = 0
while a != 2:
    b += 1
    if a == 2:
        print(b)

Ответы (2 шт):

Автор решения: ZxNuClear

В вашем примере, при запуске скрипта, идет запрос на ввод числа пользователем, которое присваивается переменной a, а далее, в случае, если пользователь введет любое число не равное 2, начинается бесконечный цикл while, т.к. к примеру пользователь вводит 7, цикл проверяет условие 7 != 2, получает True, увеличивает b на единицу и далее снова цикл делает проверку 7 != 2, ведь переменная a не менялась и по прежнему равно 7 и так бесконечно.

Вам нужно что-то типа такого:

a = b = 0
while a != 2:
  a = int(input('Введи число - '))
  b += 1
print(b)
→ Ссылка
Автор решения: n1tr0xs

Можно так:

b = 0
a = int(input('Введи число - '))
while a != 2:
    b += 1
    a = int(input('Введи число - '))
print(b)

Или можно так:

b = 0
while True:
    a = int(input('Введи число - '))
    if a == 2:
        break
    b += 1
print(b)

А можно использовать синтаксис из Python 3.8 ссылка :

b = 0
while a := int(input('Введи число - ')) != 2:
    b += 1
print(b)
→ Ссылка