Как запустить и отключить l oop, нажав клавишу на Python 3.x - PullRequest
2 голосов
/ 20 марта 2020

У меня есть этот код, который ломает l oop при нажатии клавиши "P", но l oop не работает, пока я не нажму клавишу, которая не является "P"

def main():
    openGame()
    while True:
        purchase()
        imageGrab()
        if a.sum() >1200:
            fleaButton()
            time.sleep (0.01)
        grab()
        if b.sum() <=9:
            pressOk()
            time.sleep (0.01)
        if keyboard.read_key() == "p":
            print("Stopping the bot.")
        break


print("Press 'F1' key to stop the bot.")
input("Press enter to start the bot.")

main()

Я новичок ie в программировании и не знаю, что с этим делать: (

Кроме того, я искал код, который позволяет мне останавливать l oop, когда я нажимаю клавишу и продолжайте l oop, когда я нажимаю клавишу. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Попробуйте этот код и позвоните main(), как показано ниже:

from pynput import keyboard
import time
break_program = True
def on_press(key):
    global break_program
    print (key)
    if key == keyboard.Key.f1 and break_program:
        print ('end pressed')
        break_program = False

    if key == keyboard.Key.enter:
        print ('enter pressed')
        break_program = True


print("Press 'F1' key to stop the bot.")
print("Press enter to start the bot.")

listener =  keyboard.Listener(on_press=on_press)
listener.start()
while True:
    if break_program:
        main()
        time.sleep(1)

Вы можете установить этот пакет, используя pip как pip install pynput

Измените код в соответствии с вашими потребностями , Прямо сейчас это не начнется Enter. Вы можете изучить пакет pynput и настроить свой код.

0 голосов
/ 20 марта 2020

На первый взгляд, ваше заявление о разрыве не имеет правильного отступа.

Я бросил это в repl, и он, казалось, работал как хотелось.

import keyboard
while True:
   if keyboard.read_key() == 'p':
      print("stopping")
      break
...