Невозможно выйти из цикла - PullRequest
0 голосов
/ 04 августа 2020

Я пишу программу, которая находит комбинацию номиналов, которые можно использовать для представления этой цены без повторения номинала. Лог c прост, но я не могу выйти из этого l oop в моем коде

Denom=[1]
Final_Price=int(input("Enter the maximum price"))
current_number=2
while(current_number<=Final_Price):
  present_number=current_number
  i=1
  while(present_number!=0):    ##problematic loop
    try:
      a=Denom[-i]
      print("current denom = "+str(a)+"\npresent number = "+str(present_number)+"\ncurrent number = "+str(current_number))
      if(Denom[-i]<=present_number):
        present_number=present_number-Denom[-i]
    except IndexError as exception:
      if(present_number!=0):
        Denom.append(current_number)
        present_number=0
        break
      else:
        present_number=0
        break
    print(i)
    i=i+1
  current_number=current_number+1 ##program has not reached this

Я попытался использовать функцию break, которая не сработала, поэтому я попытался заставить условие while l oop стать ложный. Что именно здесь происходит не так

Пример вывода:

Streaming output truncated to the last 5000 lines.
27230
current denom = 2
present number = 1
current number = 3
27231
current denom = 2
present number = 1
current number = 3
27232
current denom = 2
present number = 1
current number = 3
27233
current denom = 2
present number = 1
current number = 3
27234
current denom = 2
present number = 1
current number = 3
27235
current denom = 2
present number = 1
current number = 3
27236

1 Ответ

1 голос
/ 04 августа 2020

Всем привет Я нашел что пошло не так. Я использовал блокнот python в google colab и поместил первые 2 строки моего кода в отдельную ячейку от остальных. Решением было просто перезапустить обе ячейки.

Для моих товарищей-новичков не забудьте проверить, все ли ячейки запущены при использовании записной книжки python, особенно если вы используете онлайн-компилятор

...