online interprete ejecutar desde descargar consola comandos python prompt python-interactive

ejecutar - interprete de python descargar



Cambia aleatoriamente la solicitud en el intérprete de Python (4)

Buena pregunta. El indicador >>> está en sys.ps1 , el ... en sys.ps2 . La siguiente pregunta sería cómo cambiar esto al azar. Solo como una demostración de cambiarlo a mano:

>>> import sys >>> sys.ps1 = ''<<<'' <<<sys.ps1 = ''<<< '' <<< sys.ps2 = ''.?. '' <<< for i in line: .?.

Es un poco aburrido ver siempre el >>> prompt en Python. ¿Cuál sería la mejor manera de cambiar aleatoriamente el prefijo de solicitud?

Imagino una interacción como:

This is a tobbaconist!>> import sys Sorry?>> import math Sorry?>> print sys.ps1 Sorry? What?>>


De acuerdo con los docs , si asigna un objeto no string a sys.ps1 , evaluará la función str de cada vez:

Si se asigna un objeto no de cadena a cualquiera de las variables, su str () se vuelve a evaluar cada vez que el intérprete se prepara para leer un nuevo comando interactivo; esto se puede usar para implementar una solicitud dinámica.

Bueno, ahora es obvio, ¡deberías hacerlo dinámico! Haz un objeto con un método __str__ donde puedes colocar la lógica que quieras:

class Prompt: def __str__(self): # Logic to randomly determine string return string

También puede hacer cambios o insertar cosas en esta clase a medida que avanza. Entonces, por ejemplo, podría tener una lista de mensajes en Prompt que anexe o cambie, y eso afectará el mensaje de la consola.


Para cambiar el prompt, usamos

>>>import sys >>>sys.ps1 = ''=>'' =>

Ahora la forma de hacerlo al azar sería algo como esto:

import random import sys random_prompts = [''->'', ''-->'', ''=>'', ''Hello->''] sys.ps1 = random.choice(random_prompts)

Para ejecutar esto cuando se inicia el intérprete de python, puede seguir esta guía: https://docs.python.org/2/tutorial/appendix.html#the-interactive-startup-file


Prueba esto:

>>> import sys >>> import random >>> class RandomPrompt(object): ... prompts = ''hello >'', ''hi >'', ''hey >'' ... def __repr__ (self): return random.choice(self.prompts) ... >>> sys.ps1 = RandomPrompt() hello >1 1 hi >2 2