#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