2016-02-26 3 views
0

Dans IDLE, il n'y a pas d'écran clair, et après avoir lu les forums, la meilleure méthode consiste à imprimer une tonne de "\ n" s. Cependant, après avoir joué avec IDLE, j'ai fait une découverte. Lorsque mon jeu attendait une entrée après avoir imprimé des instructions en utilisant des instructions d'impression, au lieu de saisir un caractère utile, j'ai saisi 'control-z' et IDLE a commencé à supprimer le texte affiché par les instructions d'impression, une par une.Control - Z En code Python

Ma question principale est, comment puis-je manuellement dans le code lui-même entrer «contrôle-z», donc je peux utiliser cette fonctionnalité?

Si vous êtes confus par mon histoire, voici un exemple de code et essayez-le en tapant control-z.

print("Some Text") 
print("More Text") 
input("The Input (Hit Control - Z Here):") 

Répondre

1

^Z est un peu en désordre. Le contrôle ascii char^D est généralement interprété comme EOT, fin de transmission, qui sous Unix et de nombreux autres systèmes signifie la fin du fichier, ferme l'application. Ascii^Z est destiné à être interprété comme SUB, substitut, quoi que cela signifie. Les éditeurs l'utilisent comme UNDO (ce qui signifie annuler une coupe^X). Microsoft (et quelques autres anciens systèmes) interprète au moins parfois^Z comme fin de fichier, avec le même effet que^D sur * nix.

La console Windows ferme une application de texte après^Z.^D est transmis à l'application. IDLE, en tant qu'application multiplateforme, se ferme sur^D. IDLE fermait sur^Z sous Windows, mais maintenant, pour moi, il efface seulement l'invite. (Je ne sais pas si cette alternative est destinée.) Je ne vois pas la suppression progressive que vous signalez. Quel système d'exploitation et quelle version de Python utilisez-vous?

Pour répondre à votre question principale: vous ne pouvez pas. input est généralement utilisé dans les instructions d'affectation: string = input('prompt'). La manière d'imiter les instructions d'entrée consiste à attribuer directement une 'entrée utilisateur': s = 'simulated user input'. Cependant, cela ne fonctionne pas pour les caractères qui sont interceptés par les programmes gérant la fenêtre de saisie et qui ne sont jamais envoyés au programme python.

Le shell de IDLE imite généralement la console interactive de Python. Ce dernier (au moins sous Windows) fait tout, sauf l'entrée courante, en lecture seule. Shell suit la suite. L'imitation est particulièrement stricte en ce qui concerne l'exécution du code utilisateur. Il est prévu que le code utilisateur testé dans IDLE doit s'exécuter en Python sans IDLE. Il serait erroné pour IDLE d'effacer le shell interactif en réponse au code utilisateur lorsque Python ne le peut pas.

Pour les fenêtres d'édition et de sortie,^A (sélectionner tout) suivi de Retour arrière (supprimer), Supprimer ou^X (couper) efface la fenêtre.

Shell dispose cependant de plus de commandes d'édition que de nombreuses consoles (la plupart d'entre elles?) Et d'un système de menus. Ces ajouts sont autorisés car ils sont uniquement interactifs et non accessibles depuis le code utilisateur. Il y a eu diverses propositions et correctifs pour permettre la suppression d'une partie ou de la totalité de la fenêtre shell. https://bugs.python.org/issue6143 a certaines des discussions et des propositions.