#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