Quiero crear una función que tome 2 parámetros e imprima la tabla de multiplicación para este número en un formato agradable donde las filas estén separadas por líneas. Este es el objetivo: diseño de destino

Lo he intentado, pero no tengo idea de dónde integrar la cadena "--------". ¿Algunas ideas?

def multi_table(x,y):
    for row in range(1, x+1):
        for col in range(1, y+1):
            num = row * col

            if num < 10: blank = '  '   
            else:
                if num < 100: blank  = ' '  
            print(blank, num, end = '')     
        print()


multi_table(4,5)
1
Christina 24 feb. 2018 a las 22:48

3 respuestas

La mejor respuesta

Debe agregar la declaración de impresión entre el bucle de fila y columna. También debe asegurarse de finalizar la declaración de impresión con un nuevo carácter de línea \ n. Consulte a continuación.

def multi_table(x,y):
    for row in range(1, x+1):
        print("---------------------\n")
        for col in range(1, y+1):
            num = row * col

            if num < 10: blank = '  '   
            else:
                if num < 100: blank  = ' '  
            print(blank, num, end = '')     
        print()


multi_table(4,5)
1
Mayank R 24 feb. 2018 a las 20:02

El print() se usa para ir a la siguiente línea, y ahí es donde desea agregar el "---------------". Entonces cambie print() a print('\n------------------------\n'). \n indica ir a la siguiente línea.

1
ViG 24 feb. 2018 a las 19:53

Para compensar y, puede usar lo siguiente, también, puede simplificar el formato con el método de cadena de formato:

def multi_table(x,y):
for row in range(1, x+1):
    print('----' * y)
    for col in range(1, y+1):
        num = row * col
        print('{:4}'.format(num), end = '')
    print()
1
juanpdp11 24 feb. 2018 a las 20:31