Есть ли способ добавить 0 в угол таблицы умножения

#python #python-3.x

Вопрос:

Это мой код:

 def multiply(end):
    pro = ""
    for i in range(end   1):
        for j in range(end   1):
            pro  = str(i * j)   "t"
        pro  = "n"
    return pro
 

Когда я запускаю свой код, он возвращается при вызове функции multiply(4):

 0   0   0   0   0   
0   1   2   3   4   
0   2   4   6   8   
0   3   6   9   12  
0   4   8   12  16
 

Я хочу, чтобы он вернулся как:

 0   1   2   3   4   
1   1   2   3   4   
2   2   4   6   8   
3   3   6   9   12  
4   4   8   12  16
 

Что мне нужно изменить, и мне также нужно вернуть таблицу вместо того, чтобы печатать таблицу.

Ответ №1:

вам нужно добавить несколько проверок в свою функцию, но это должно сработать —

 def multiply(end):
    pro = ""
    for i in range(0,end   1):
        for j in range(0,end   1):
            if i != 0 and j != 0:
                pro  = str(i * j)   "t"
            else:
                pro  = str(max(j,i))   "t"
        pro  = "n"
    return pro
 

при этом multuply(4) имеет выход —

 0       1       2       3       4
1       1       2       3       4
2       2       4       6       8
3       3       6       9       12
4       4       8       12      16
 

Комментарии:

1. Спасибо, это работает, но я не понимаю, что делает код в инструкции else и почему он работает, можете ли вы объяснить?

2. Конечно. Причина, по которой вы получаете 0 во внешних строках и столбцах, заключается в том, что i или j равно 0, if проверки для этих случаев. max() Функция дает большее из двух заданных чисел, я использовал ее для замены значений 0 на в основном индекс для этой позиции. Пожалуйста, не забудьте принять мой ответ, так как он вам помог.

Ответ №2:

диапазон(x) дает список от 0 до x-1. Попробуйте диапазон(1,x).

 def multiply(end):
    pro = ""
    for i in range(1,end   1):
        for j in range(1,end   1):
            pro  = str(i * j)   "t"
        pro  = "n"
    return pro