Как избежать проблем с функцией getch () - PullRequest
0 голосов
/ 07 августа 2020

У меня проблема с моей программой. Это вроде зацикленное меню. Пишу в VS Code. Проблема в том, что когда я запускаю программу и пытаюсь выбрать одну из трех опций, которые она запускает, после else: print («Больше вариантов нет»). Код ниже:

from getch import getch
def func_1():
    print("Hello")
def name():
    name = input("What is your name?: ")
    print("Your name is: "+name)
def do_sth(a=3):
    return 2 * a
while True:
    print("1) Wyświetl wynik funkcji")
    print("2) Wyświetl imię")
    print("3) Wyświetl do Sth")
    keyPressed=getch()
    if keyPressed =='1':
        func_1()
    elif keyPressed == '2':
        name()
    elif keyPressed =='3':
        print(do_sth())
        press = input("Press any key to continue....")
    else:
        print("No more option")

Но когда я записываю тот же код на моем Android smatphone в Pydroid 3, он работает нормально, он запускает каждую функцию отдельно. Я не знаю почему? Я также написал приведенный выше код в сообществе PyCharm, и он не читает никаких ключей. Но в Pydroid 3 на моем android smatphone код отлично работает.

1 Ответ

1 голос
/ 07 августа 2020

Проблема заключается в сравнении байтовой строки со строкой.

Попробуйте:

from getch import getch

def func_1():
    print("Hello")

def name():
    name = input("What is your name?: ")
    print("Your name is: "+name)

def do_sth(a=3):
    return 2 * a

while True:
    print("1) Wyświetl wynik funkcji")
    print("2) Wyświetl imię")
    print("3) Wyświetl do Sth")
    keyPressed=getch()
    if keyPressed == b'1':
        func_1()
    elif keyPressed == b'2':
        name()
    elif keyPressed == b'3':
        print(do_sth())
        press = input("Press any key to continue....")
    else:
        print("No more option")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...