таблица умножения Python
В следующем примере показано, как реализовать таблицу умножения:
# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.w3big.com # 九九乘法表 for i in range(1, 10): for j in range(1, i+1): print('<>x<>=<>\t'.format(i, j, i*j), end='') print()
Выполните приведенные выше результаты вывода кода:
1x1=1 2x1=2 2x2=4 3x1=3 3x2=6 3x3=9 4x1=4 4x2=8 4x3=12 4x4=16 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
Значение, указанное конечным параметром, выход может быть отменен в конце возврат каретки, перевод строки не понимает.
Python-сообщество
- Начало
- » Python для новичков
- » Таблица умножения при помощи двух циклов, не больше. Как сделать её в таком виде, как на тетрадке, обороте?
#1 Май 24, 2014 20:49:25
ingfa_1981 Зарегистрирован: 2014-01-25 Сообщения: 200 Репутация: 1 Профиль Адрес электронной почты
Таблица умножения при помощи двух циклов, не больше. Как сделать её в таком виде, как на тетрадке, обороте?
from itertools import product for i, j in product(range(0,11), range(0,11)): print i,"*", j, " =", i*j
Отредактировано ingfa_1981 (Май 24, 2014 20:49:40)
#2 Май 25, 2014 16:16:57
dimy44 От: Евпатория Зарегистрирован: 2012-04-21 Сообщения: 463 Репутация: 42 Профиль
Таблица умножения при помощи двух циклов, не больше. Как сделать её в таком виде, как на тетрадке, обороте?
Ниче не пойму, че тут развели, ведь просто все ж
for x in range(1, 10): for y in range(1, 10): print(' x = '.format(x, y, x*y)) # или: print('\n'.join([' x = '.format(x, y, x*y) for x in range(1, 10) for y in range(1, 10)]))
#3 Май 25, 2014 16:51:48
ajib6ept От: От: От: От: От: От: От: От: Зарегистрирован: 2013-08-04 Сообщения: 297 Репутация: 26 Профиль Отправить e-mail
Таблица умножения при помощи двух циклов, не больше. Как сделать её в таком виде, как на тетрадке, обороте?
dimy44
Ниче не пойму, че тут развели, ведь просто все ж
Надо в три столбика — этот вариант вывод в один
_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don’t let PEP 8 make you insanely intolerant of other people’s code.
Как вывести таблицу умножения в python?
нужно чтобы и строки выходили полностью.
Подскажите пожалуйста?
Добавлено через 21 минуту
сорян, вопрос был про Питон
1 2 3 4 5 6 7 8 9
a=1 while a10: b=1 while b10: c=a*b print(c, end=" ") b+=1 print(" ") a+=1
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как вывести на экран таблицу умножения?
program sbb; uses crt; var i,j,s:integer; a:array of integer; begin for i:=1 to 5 do .

Как вывести таблицу умножения на экран
Option Explicit Dim i, j, p As Integer Private Sub table() For i = 1 To 10 .

Вывести таблицу пифагора — таблицу умножения десятичных чисел
задача программы: Вывести таблицу пифагора — таблицу умножения десятичных чисел

Используя два вложенных цикла вывести на экран таблицу Пифагора – таблицу умножения двух целых чисел
Используя два вложенных цикла вывести на экран таблицу Пифагора – таблицу умножения двух целых.
Регистрация: 25.03.2019
Сообщений: 41

Сообщение было отмечено ZhansultanM как решение
Решение
for i in range(1,11): print (' '.join(str(i*v) for v in range(1,11)))
Результат:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
1040 / 575 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1

Сообщение было отмечено ZhansultanM как решение
Решение
1 2 3
s1 = 10 for i in range(1, s1+1): print(*range(i, i*s1+1, i), sep='\t')
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100
![]()
1354 / 651 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
1 2 3 4 5 6 7 8 9 10
def mult(): for a in [[1, 2, 3], [4, 5, 6], [7, 8, 9]]: if a != 0: print('') for b in range(1, 10): print('%s*%s=%s\t\t\t' % (a[0], b, a[0] * b), '%s*%s=%s\t\t\t' % (a[1], b, a[0] * b), '%s*%s=%s\t\t\t' % (a[2], b, a[0] * b), ) if __name__ == '__main__': mult()
Регистрация: 03.04.2019
Сообщений: 2
1 2 3 4
for i in range(1,11): for j in range(1,11): print((str(i)+'*'+str(j)+'='+str(i*j)).rjust(9),end=' '*3) print()
Регистрация: 26.03.2021
Сообщений: 1
Время прошло много с вопроса, но оставлю это для тех, кого еще будет заботить этот вопрос)
1 2 3 4 5 6 7 8
print('Таблица умножения') for i in range(1, 10): for k in range(2, 10): print(f' * = \t', end='') print('') else: print('It's off')
Получим таблицу, как в тетрадке
Регистрация: 18.05.2021
Сообщений: 93
еще вариант, через def для определенно заданого числа:
1 2 3 4 5
def tabell(): n = 1 for i in range(1,10): print(f' * = ') tabell()
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вывести таблицу умножения
Написать программу, которая выведет на экран таблицу умножения чисел от 1 до 10 в ввиде: 0 1 2.
Вывести таблицу умножения
Доброго времени суток! Поступило такое вот интересное задание. при помощи цикла do or while.

Вывести таблицу умножения
Нужно вывести таблицу умножения от 1 до 9, что бы первый столбик была таблица 1, следующий 2 и тд.

Вывести таблицу умножения
Составить программу заполнения таблицы умножения. Результат вывести на печать.
Вывести таблицу умножения
Нужно написать скрипт, который выводит таблицу умножения от 1 до 100. Ячейки в таблице должны быть.
Таблица умножения в одну строку

На картинке вы видите обычную таблицу умножения, которая, думаю, всем хорошо знакома.
Ничего особенного в ней нет, кроме того, что весь алгоритм ее построения сжат до одной стандартной Python’овской строки в 79 символов (см. PEP8). Кому интересно добро пожаловать под кат.
Для начала, стоит ответить на появившийся у многих вопрос «А зачем это?». Все сложилось из двух факторов, во-первых я, по настоятельной рекомендации одного хорошего человека, занялся углубленным изучением Python’а, а во-вторых мне нравится концепция демосцены. Результатом стало желание написать (конечно слишком громко сказано) что-нибудь очень маленькое (в идеале в одну строку), но наглядное, используя для всего этого особенности кодинга на Python’е. Я решил вывести на экран таблицу умножения.
Стоит отметить, что пишу я на Python3.7. Версии младше 3.6 не подойдут из-за отсутствия поддержки f-строк, и в итоге рабочий скрипт превысит длину в 79 символов.
Как восемь строк превратились в одну
Для начала я написал код выводящий таблицу умножения, абсолютно не заботясь о компактности:

Листинг
def MultiTabl(): tabl = '' for y in range(1,11): for x in range(1,11): tabl += f'\t' tabl += f'\n' return tabl
Сформировать значения таблицы можно, используя генераторы, а циклы оставить для распаковки списков. Минусом такого подхода оказалось большее количество строк:

Листинг
def MultiTabl(): nums = [[x*y for x in range(1,11)] for y in range(1,11)] tabl = '' for line in nums: for item in line: tabl += f'\t' tabl += f'\n' return tabl
Генератору можно отдать и расстановку Tab’ов (‘\t’) используя f-строки:
nums = [[f'\t' for x in range(1,11)] for y in range(1,11)]
Если извлеченный в первом цикле список склеить в строку, с помощью строкового метода join(), использовать параллельное назначение переменных и разместить цикл в одной строке, то размеры кода значительно уменьшатся:

Листинг
def MultiTabl(): nums, tabl = [[f'\t' for x in range(1,11)] for y in range(1,11)], '' for line in nums: tabl += ''.join(line) + '\n' return tabl
А если внести join() и ‘\n’ в генератор:
def MultiTabl(): nums, tabl = [''.join([f'\t' for x in range(1,11)])+'\n' for y in range(1,11)], '' for line in nums: tabl += line return tabl
Теперь в нашем распоряжении список из строк, и его тоже можно склеить с помощью join(), избавившись тем самым от циклов:
def MultiTabl(): tabl = ''.join([''.join([f'\t' for x in range(1,11)])+'\n' for y in range(1,11)]) return tabl
Ну и обещанный вариант в одну строку (от print, конечно, не избавиться)
print( ''.join([''.join([f'\t' for x in range(1,11)])+'\n' for y in range(1,11)]) )
Конечно, гуру Python’а скажут “И что тут такого?”, но стоит заметить, что указанный подход не является очевидным для начинающих.
Не стоит воспринимать сей опус слишком серьезно, я его писал как разминку перед большой статьей, будет замечательно если он вызовет улыбку, и просто великолепно если принесет пользу.
