Как использовать циклы while для создания таблицы умножения в python? - PullRequest
0 голосов
/ 05 июля 2018

Это мой код, он выводит таблицу умножения, но это не то, что я хотел!

 num = int(input("Multiplication using value? : "))

while num <= 10:
    i = 1
    while i <= num:
        product = num*i
        print(num, " * ", i, " = ", product, "\n")
        i = i + 1
    print("\n")
    num = num + 1

Я в основном создаю таблицу умножения из ввода пользователя 1-9.

Ex. Если пользователь вводит «3»

Я должен получить этот вывод:

1*1=1
1*2=2
1*3=3

2*1=2
2*2=4
2*3=6

3*1=3
3*2=6
3*3=9

Я впервые изучаю Python, я могу найти любую помощь онлайн, Pls Help

Ответы [ 8 ]

0 голосов
/ 04 июля 2019
num = int(input('Enter the number you want the multiplication table for:'))
i=1
while i<=10:
product = num*i
print(product)
i=i+1 

print('Thank you')
0 голосов
/ 24 января 2019

Таблица умножения от 1 до 10

for x in range(1,11):
  for y in range(1,11):
    print(x*y, end='\t')
  print()
  print()
0 голосов
/ 10 апреля 2019

введите любое число, чтобы получить обычную множественную таблицу (номенклатуру) за 10 итераций.

num = int(input("Input a number: ")) 
# use for loop to iterate 10 times
for i in range(1,11):
   print(num,'x',i,'=',num*i)
0 голосов
/ 05 июля 2018

В Python 3.6+ вы можете использовать f-строки с вложенным циклом for:

num = int(input("Multiplication using value? : "))

for i in range(1, num+1):
    for j in range(1, num+1):
        print(f'{i} * {j} = {i*j}')

Multiplication using value? : 3
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
0 голосов
/ 05 июля 2018

Причина, по которой у вас в руках бесконечный цикл, заключается в том, что вы сравниваете i с num, одновременно увеличивая num при каждом запуске. Если вы убедитесь, что i всегда <= 10, вы получите желаемый результат:

while num <= 10:
    i = 1
    while i <= 10:
        product = num*i
        print(num, " * ", i, " = ", product, "\n")
        i = i + 1
    num = num + 1
    print("\n")
0 голосов
/ 05 июля 2018

Для этой проблемы проще использовать циклы.

num = int(input("Multiplication using value? : "))

for left in range(1,num+1):  # 1st loop
    for right in range(1,num+1): # 2nd loop (nested)
        print(left, " * ", right, " = ", left * right)
    print() # newline

Чтобы понять эту проблему, взгляните на два мультипликата: левый и правый.

Множество слева идет от (1 -> num), отсюда первый цикл for.

Затем для каждого значения левого мультипликатора правый мультипликатор идет от (1 -> num), следовательно, 2-й цикл вложен в первый цикл.

0 голосов
/ 05 июля 2018

Даже если код, который вы разместили, вовсе не является пифоническим (он очень близок к тому, что может быть написано на языке C), он почти работает: с минимальными изменениями его можно исправить следующим образом, чтобы получить ожидаемый результат:

numInput = int(input("Multiplication using value? : "))
num = 1

while num <= numInput:
    i = 1
    while i <= numInput:
        product = num*i
        print(num, " * ", i, " = ", product)
        i = i + 1
    print("")  # no need to add explicit newline character because it is automatically added
    num = num + 1

В более питоническом ключе вы также можете сделать следующее:

numInput = int(input("Multiplication using value? : "))

for i in range(1,numInput+1):
    for j in range(1,numInput+1):
        print(i, " * ", j, " = ", i*j)
    print("")
0 голосов
/ 05 июля 2018

У вас много логических ошибок. Пожалуйста, посмотрите на этот обновленный код:

num = int(input("Multiplication using value : "))

i=1 #you haven't initialized this variable
while i <=num:
    j=1
    while j <= num:
        product = i*j #updated
        print(i, " * ", j, " = ", product, "\n") #updated
        j = j + 1
    print("\n")
    i = i + 1

Выход (для входа 3):

1  *  1  =  1 

1  *  2  =  2 

1  *  3  =  3 



2  *  1  =  2 

2  *  2  =  4 

2  *  3  =  6 



3  *  1  =  3 

3  *  2  =  6 

3  *  3  =  9 
...