Попытка добавить два входа в то время как

#python #input #while-loop #is-empty #arithmetic-expressions

Вопрос:

Я делаю арифметическую прогрессию с помощью python. После 10 первых терминов я хочу задать вопрос о том, сколько еще терминов пользователь хочет видеть. Если значение равно 0, программа завершится. Если это не программа, верните количество запрошенных терминов. И повторяйте до тех пор, пока не станет 0. После первого цикла программа работает, после этого программа возвращает пустое значение.

 i = int(input('Start of PA: '))
r = int(input('PA Reason:  '))
t1 = i
cont = 1
terms = 1
n1 = 0
while cont <= 10:
    t1 = t1   r
    cont  = 1
    print(f'{t1} > ', end='')
while terms != 0 :
    terms = int(input('nHow many terms? '))
    if terms!= 0:
        while cont <= (10   terms):
            t1 = t1   r
            cont  = 1
            print(f'{t1} > ', end='')
    else:
        print('END!')
 

разрешение

Правка: извините за мой английский.

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

1. И в чем же заключается вопрос? Что вам нужно?

Ответ №1:

 while cont <= (10   terms):
 

это только правильное условие для второй партии результатов. Следующая партия должна быть меньше 20 terms , и так далее.

Вместо добавления в terms , вы должны просто cont возвращать значение 0 перед каждым циклом, который печатает следующую партию терминов.

И вместо того, чтобы дважды проверять, равно ли terms нулю, используйте while True: и вырывайтесь из цикла, когда они входят 0 .

 while True:
    terms = int(input('nHow many terms? '))
    if terms!= 0:
        cont = 0
        while cont <= terms:
            t1 = t1   r
            cont  = 1
            print(f'{t1} > ', end='')
    else:
        print('END!')
        break
 

Или вместо использования while циклов используйте for и range()

 while True:
    terms = int(input('nHow many terms? '))
    if terms != 0:
        for _ in range(terms)
            t1 = t1   r
            print(f'{t1} > ', end='')
    else:
        print('END!')
        break