Умножение в циклах неизвестной длины

#python #loops #multiplication

Вопрос:

Я застрял на этом коде из mypy2 в течение последнего часа, но, похоже, не могу разобраться в этом. Он хочет, чтобы я написал программу, которая умножает множество чисел вместе. Где программа будет продолжать запрашивать у пользователя номера до тех пор, пока они не введут 0.

Когда они вводят 0, он выходит из цикла и не умножает другие числа на 0. Наконец, он печатает последнее большое число с печатью оператора(«Окончательный ответ», число).

«Например, если пользователь вводит 2, 5, 4, затем 0, ответ должен быть 40. Вы можете рассчитать это, начав с 1, умножив это на 2, чтобы получить 2. Затем умножьте это на 5, чтобы получить 10. Затем умножьте это на 4, чтобы получить 40».

В нем говорится, что мне нужна одна переменная для хранения ввода пользователя, а другая-для отслеживания большого умноженного числа.

Комментарии:

1. Пожалуйста, предоставьте код. А также умножение любого числа на 0 = 0?

Ответ №1:

Я бы сделал что-то подобное:

 my_number = 1
while True:
    new_number = int(input("Enter any number to multiply:"))
    if new_number == 0:
        print(f"Result is: {my_number}")
        break

    my_number *= new_number
 

Комментарии:

1. Большое спасибо за помощь 🙂 Я новичок в кодировании и действительно работал только с условными обозначениями в своем классе. Я пробовал, и, похоже, это не работает. Я не знаком с тем, что означает Истина, разрыв или *=.

2. True является логическим значением . Если условие True выполнено , цикл while будет продолжаться вечно. break указывает потоку управления выйти из цикла (в данном случае из while True: цикла), поэтому на самом деле он не зацикливается навсегда. x *= y это просто сокращение x = x * y .

3. @esier0 Вы упомянули, что код не работает для вас. Как вы им управляете? Я предлагаю сохранить предоставленный мной код в файл. файл py и выполните его через командную строку, скопируйте и вставьте его в оболочку python, это не сработает.

4. Моя вина! Это работает, когда я на самом деле ставлю его на свой Питон! Я просто пытаюсь понять, почему это не происходит на mypy2 сейчас, так как именно там я должен найти решение. Еще раз спасибо тебе

Ответ №2:

Вот фрагмент кода для вас

 product=1
while(True):
    num=int(input())
    if(num==0):
        print("Value: ",product)
       break
product*=num