Creando formas o letras usando Python

Así que estoy tratando de crear la letra H a partir de asteriscos usando Python, pero parece que no puedo averiguar cómo crear una línea vertical para cruzar para crear la letra H usando el código que he escrito hasta ahora. :

def across(n): for i in range(n): print ('*', end=' ') print() def straight(n): for i in range(n): print ('*') def main(): n=6 straight ((n-3)//2) across(n//2) straight ((n-3)//2) main() 

esta es la salida:

 * *** * 

¿Algunas ideas? Gracias por cualquier ayuda por adelantado.

Tienes que imprimir una línea a la vez. Una vez que haya cambiado a la siguiente línea, no podrá volver a la línea anterior. Entonces, la idea es (por ejemplo, para la altura 3), en la primera iteración el código debe imprimir “estrella estrella”. Debería cambiar a la siguiente línea (‘\ n’) y luego imprimir “starstarstar” ya que es la línea del medio. Y finalmente, en la última línea “estrella estrella” de nuevo. Espero que esto ayude.

 def line(a): print "*", for j in range(a-2): print " ", print "*", def middleLine(a): for j in range(a): print "*", a = int(raw_input("Enter height (odd numbers only greater than 3): ")) for i in range(a): if i != (a / 2): line(a) else: middleLine(a) print