Код выводит некорректный ответ

Наталья Вишневская

Новичок
Пользователь
Июн 8, 2021
3
0
1
Здравствуйте, я делаю первые шаги в программировании на Python, так что нужна помощь. Непосредственно задача:


Когда Павел учился в школе, он запоминал таблицу умножения прямоугольными блоками. Для тренировок ему бы очень пригодилась программа, которая показывала бы блок таблицы умножения.

Напишите программу, на вход которой даются четыре числа aa, bb, cc и dd, каждое в своей строке. Программа должна вывести фрагмент таблицы умножения для всех чисел отрезка [a; b][a;b] на все числа отрезка [c;d][c;d].

Числа aa, bb, cc и dd являются натуральными и не превосходят 10, a \le ba≤b, c \le dc≤d.

Следуйте формату вывода из примера, для разделения элементов внутри строки используйте '\t' — символ табуляции. Заметьте, что левым столбцом и верхней строкой выводятся сами числа из заданных отрезков — заголовочные столбец и строка таблицы.


Что касается кода, то он выводит некорректный ответ, вертикальный столбец смещен в право, хотя должен находиться с другой стороны. Прикладываю код и то, что он должен выводить в идеале , к сожалению не в файле, а в текстовом виде.
Python:
a = input()
b = input()
c = input()
d = input()
d = int(d) + 1
b = int(b) + 1
for j in range(int(a), int(b)):
        print("\t" + str(j), end = ' ')
for i in range(int(c), int(d)):
    for l in range(len(str(i))):
        print(str(i)[l])
        for j in range(int(a), int(b)):
             print("\t" + str(j * i), end = ' ')
Операционная система: Windows 7
Язык: Python 3.7


Правильный вывод:
Снимок666666666666.PNG
То что выводит код:
Снимок999999999999999999999999999999999999.PNG
 
Последнее редактирование:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Вставьте пожалуйста код как код


1623167540489.png
 

Наталья Вишневская

Новичок
Пользователь
Июн 8, 2021
3
0
1
Не знала, спасибо большое.
Python:
a = input()
b = input()
c = input()
d = input()
d = int(d) + 1
b = int(b) + 1
for j in range(int(a), int(b)):
        print("\t" + str(j), end = ' ')
for i in range(int(c), int(d)):
    for l in range(len(str(i))):
        print(str(i)[l])
        for j in range(int(a), int(b)):
             print("\t" + str(j * i), end = ' ')
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 599
464
83
пример
Python:
a = input()
b = input()
c = input()
d = input()
lst1 = list(range(int(a), int(b) + 1))
print('\t' + '\t'.join(map(str, lst1)))
lst2 = []
for i in range(int(c), int(d) + 1):
    lst2.clear()
    lst2.append(i)
    for j in lst1:
        lst2.append(i * j)
    print('\t'.join(map(str, lst2)))
 

Наталья Вишневская

Новичок
Пользователь
Июн 8, 2021
3
0
1
Спасибо за помощь! Завтра проверю код, соответствует ли он заданию. Если додумаюсь выложу конструкцию попроще, понятную на моем уровне
 
Последнее редактирование:

Форум IT Специалистов