Как создать таблицу умножения на основе пользовательского ввода с заголовками строк и столбцов? - PullRequest
0 голосов
/ 20 марта 2020

Необходимо, чтобы значение range () было основано на том, что пользователь вводит в качестве начального и конечного факторов. Также нужны заголовки для строк и столбцов. Пожалуйста, используйте простой синтаксис Я новичок в программировании!

# This program creates a multiplication table with nested loops and limits the
# factors based on user input values.
#
# References:
# https://www.youtube.com/watch?v=0rWHH5JfKdo
# https://www.youtube.com/watch?v=Dpkfh-hX4-M
# https://stackoverflow.com/questions/27312273/python-meaning-of-end-in-the-
# statement-print-t-end/27312325



def nested_loop(start, end):
    for i in range(start, end + 1):
        for j in range(start, end + 1):
            print(i * j, end='\t')
        print('')


def get_value(label):
    print("Enter " + label + " value:")
    value = int(input())
    return value


def main():
    start = get_value("starting")
    end = get_value("ending")
    nested_loop(start, end)


main()

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Ваш код уже выполняет большую часть работы, он печатает 2d матрицу таблицы умножения за период, указанный пользователем, вы пропускаете только часть заголовков, которая может быть добавлена ​​следующим образом

def nested_loop(start, end):
    # printing the top header
    print('', end='\t')
    for i in range(start, end + 1):
        print(i, end='\t')
    print('')

    for i in range(start, end + 1):
        print(i, end='\t') # printing the running column alongside the matrix
        for j in range(start, end + 1):
            print(i * j, end='\t')
        print('')


def get_value(label):
    print("Enter " + label + " value:")
    value = int(input())
    return value


def main():
    start = get_value("starting")
    end = get_value("ending")
    nested_loop(start, end)


main()

Используя данные типа 3, 10

, программа печатает:

    3   4   5   6   7   8   9   10  
3   9   12  15  18  21  24  27  30  
4   12  16  20  24  28  32  36  40  
5   15  20  25  30  35  40  45  50  
6   18  24  30  36  42  48  54  60  
7   21  28  35  42  49  56  63  70  
8   24  32  40  48  56  64  72  80  
9   27  36  45  54  63  72  81  90  
10  30  40  50  60  70  80  90  100 
0 голосов
/ 20 марта 2020

Согласен с принятым ответом, но просто должен показать, как python любовники склонны усложнять вещи ... что-то вроде ... этого:

def nasty_loop(start, end):
    print('\t'+'\t'.join(str(x) for x in range(start,end+1)))
    for y in range(start, end+1):
        print("%d\t" % y + '\t'.join(str(x*y) for x in range(start,end+1)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...