цикл while продолжает цикл еще раз, хотя условие ложно - PullRequest
1 голос
/ 07 мая 2019

Мой код, кажется, застрял в этом цикле while навсегда:

array = []
b = 1
while b != 0:
    b = int(input("please enter whole numbers "))
    array += [b]
print (array)     

Смысл кода состоит в том, чтобы помещать пользовательские входные данные в массив и останавливаться, когда пользователь вводит 0. Я не знаю почемуциклу удается продолжить код, даже если условие ложно.Я думал, что пока условие ложно, python тут же остановится!

Я продолжаю получать 0 как элемент массива, когда не хочу, чтобы он был в нем.

Ответы [ 3 ]

1 голос
/ 07 мая 2019

Я немного изменил ответ магамонго, чтобы не использовать разрыв, но вы также можете использовать его, как и в ответе Квамраны:

array = []
b = 1
while b != 0:
    b = int(input("please enter whole numbers "))
    array += [b]
array = array[:-1]
print(array)
0 голосов
/ 07 мая 2019

"break" поможет вам сделать это.

array=[1]
while array[-1] != 0:
  b = int(input("please enter a whole number"))
  array += [b]
  if array[-1] == 0:
    print(array[1:-1])
    break

Надеюсь, это поможет:)

0 голосов
/ 07 мая 2019

Я думаю, вы могли бы использовать собственное условие выхода и не полагаться на остановку самого оператора while:

array = []

while True:   # never exit here
    b = int(input("please enter whole numbers "))
    if b == 0:
        break    # exit the loop here
    array += [b]
print (array)   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...