2017-05-17 2 views
0

Je développe un petit programme que je veux donner à mes plus jeunes amis pour leur présenter les bases minimales de la programmation en utilisant Python. Dans ce document, je souhaite ajouter une fonctionnalité pour afficher la ligne de code en cours d'exécution, en cours d'exécution, sur la console (ou en tant que variable dans Python pouvant être imprimée à l'aide des commandes appropriées). Je veux ceci pour que les utilisateurs de ce programme puissent apprendre mieux en comprenant le processus sous-jacent qui se passe en temps réel, au plus haut niveau (exécution du langage de programmation). Je pensais que cela serait possible surtout parce que Python est un langage d'interprète, donc le code joue un rôle jusqu'à l'avant-dernière étape de son exécution.Sortie ligne de code lors de l'exécution en Python

Existe-t-il un moyen de le faire intrinsèquement? Sinon, je pense qu'il devrait y avoir un moyen d'écrire un programme qui prendra un autre programme en entrée et s'exécutera tout en ayant accès au code source. Avec un peu d'analyse avancée, ce type de conception sera en mesure de réaliser cela, mais je cherche de préférence une façon plus naturelle de le faire.

+0

Pourquoi ne pas simplement utiliser, par ex. http://pythontutor.com/? – jonrsharpe

+0

Cela doit être fait dans un environnement scolaire, et l'accès à Internet en temps réel n'est malheureusement pas une garantie. (Pas même pour moi). – Aalok

+0

Eh bien, il est open source, donc vous pouvez l'héberger localement ou voir comment il fait ce qu'il fait, mais comment réimplémenter quelque chose comme c'est une question beaucoup trop large pour SO. – jonrsharpe

Répondre

1

Cela peut ne pas être parfait pour enseigner en utilisant mais sûrement exec travaillerait? Comme dans:

mycommand = "a = 5**3" 
print(mycommand) 
exec(mycommand) 
print("a = "+str(a)) 
+0

C'est ce que je voulais dire par la deuxième partie de ma question. Cela fonctionnera certainement, mais cela deviendra compliqué pour les boucles 'for', les opérations imbriquées, etc. – Aalok

+0

Non, aucune façon naturelle de le faire, python est trop difficile à analyser sans beaucoup de logique complexe qui ne ferait que perdre du temps lorsque le code peut être vu sur presque tous les systèmes modernes comme étant en cours d'exécution. – pointerless