Почему pyautogui обходит(игнорирует) исключения if, elif, else?

import pyautogui as pg

print('Выберите число от 1 до 10')
number = input()

if number == 1:
    pg.moveTo(150, 600, duration = 
0.25)
    pg.click()
elif number == 2:
    pg.moveTo(100, 100)
else:
    print("Error!!!")

Подскажите, почему pyautogui игнорирует if, но при этом выводит Error Прошу прощения Админ, не разобрался как код вбивать в теги


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

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

If не игнорирует и работает как и должно. Проблема только в том, что вы сравниваете число со строкой. То есть если использовать так

...
number = int(input())

if number == 1:
...

Или так

...
number = input()

if number == '1':
...

То все будет, работать. Причина в том, что метод input() возвращает тип данных string. И если сравнивать строку и число, как у вас, то всегда условие будет отрабатывать только в else

Для понимания

>>> 1 == '1' # это ваше сравнение, всегда будет ложно, чтобы вы не ввели
False
>>> '1' == '1' # сравнение 2х строк
True
>>> 1 == 1  # сравнение 2х чисел
True
→ Ссылка