Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Input Pengguna Tidak Menyekat dalam Aplikasi Konsol Python?
Input Pengguna Tidak Menyekat dalam Aplikasi Konsol
Apabila membina aplikasi konsol yang memerlukan input pengguna secara serentak dengan proses lain, adalah penting untuk mempunyai -menyekat input untuk mengelakkan program daripada membeku sementara menunggu input.
Menggunakan Modul msvcrt (Windows)
Untuk aplikasi konsol eksklusif Windows, modul msvcrt menyediakan penyelesaian mudah:
import msvcrt # Define variables num = 0 done = False # Infinite loop while not done: # Print and increment number print(num) num += 1 # Check for keyboard input if msvcrt.kbhit(): # Display pressed key and quit pressed_key = msvcrt.getch() print("You pressed", pressed_key, "so now I will quit") done = True
Menggunakan Modul termios (Linux)
Untuk aplikasi konsol berasaskan Linux, modul termios boleh digunakan:
import sys, select, tty, termios # Define utility function to check for keyboard input def isData(): return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []) # Configure terminal settings for non-blocking input old_settings = termios.tcgetattr(sys.stdin) tty.setcbreak(sys.stdin.fileno()) # Infinite loop num = 0 while 1: # Print and increment number print(num) num += 1 # Check for keyboard input if isData(): # Read single character from keyboard c = sys.stdin.read(1) # Check for escape key to quit if c == '\x1b': break # Restore terminal settings termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
Menggunakan Modul Pygame (Cross-Platform)
Jika anda memerlukan input tidak menyekat merentas berbilang platform atau mahukan antara muka pengguna grafik, Pygame menawarkan penyelesaian merentas platform:
import pygame from pygame.locals import * # Define variables num = 0 done = False # Initialize Pygame pygame.init() screen = pygame.display.set_mode((640, 480)) pygame.display.set_caption('Python numbers') screen.fill((159, 182, 205)) font = pygame.font.Font(None, 17) # Infinite loop while not done: # Display number display(str(num)) num += 1 # Check for events (e.g., keyboard input) pygame.event.pump() keys = pygame.key.get_pressed() # Check for escape key to quit if keys[K_ESCAPE]: done = True
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Input Pengguna Tidak Menyekat dalam Aplikasi Konsol Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!