Это мой код, он выводит таблицу умножения, но это не то, что я хотел!
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
Причина, по которой у вас бесконечный цикл на руках, заключается в том, что вы сравниваете 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")
Для этой проблемы проще использовать для петель.
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), поэтому второй цикл вложен в первый цикл.
У вас много логической ошибки. Пожалуйста, ознакомьтесь с этим обновленным кодом:
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
Даже если код, который вы опубликовали, вообще не является питоническим (он очень близок к тому, что может быть написано на языке 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("")
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')
введите любое число, чтобы получить обычную множественную таблицу (номенклатуру) за 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)
Таблица умножения с 1 по 10
for x in range(1,11):
for y in range(1,11):
print(x*y, end='\t')
print()
print()
while
цикла» , а вы предлагаете ответ , основанный на for
. Если вы думаете , что это невозможно решить проблему, используя в while
петли вы должны объяснить обоснование в противном случае вы должны предложить ответ unsing for
цикла. Если это так, то вы можете объяснить , почему wsing в while
цикл может быть, например, неэффективен.
В 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