Циклы while в Python 3 и условия True / False [дубликаты]

Вы также можете изменить метод как статический:

class Handler {
    public static function helloWorld() {
        echo "Hello world!";
    }
}
-2
задан AnFa 16 January 2019 в 23:03
поделиться

3 ответа

Причина, по которой ответ 0, заключается в том, что while False означает, что тело цикла не будет выполняться даже один раз, а поскольку значение total3 увеличивается только в цикле тела, его значение будет оставаться таким же, как и до цикла, который равен 0 из-за линии total3=0 над ним.

Чтобы тело цикла могло выполнить значение выражения после while, должно быть истинно . Наиболее распространенным истинным значением является True.

0
ответ дан Taras Tsugrii 16 January 2019 в 23:03
поделиться

Цикл while оценивает условие и выполняет код в своем блоке, когда условие оценивается как True, в противном случае он выходит из цикла. Условие True заставляет цикл продолжаться бесконечно, поскольку он может только когда-либо принимать значение True, в то время как False заставляет цикл немедленно завершать работу без выполнения кода в своем блоке.

Я знаю, что это только пример того, как использовать цикл while, однако, если бы это был реальный вариант использования, вы бы хотели вместо этого использовать цикл for.

given_list2 = [5, 4, 4, 3, 1, -2, -3, -5]
total3 = 0

for n in given_list2:
    if n > 0:
        total3 += n
    else:
        break

print(total3)

или даже

total3 = sum(n for n in given_list2 if n > 0)
0
ответ дан nicholishen 16 January 2019 в 23:03
поделиться

Истина и Ложь являются логическими значениями. То есть их значения известны и задаются языком. Представьте, что у вас есть что-то вроде:

while 1 < 2:

«1» и «2» - целочисленные литеральные значения. Выражение никогда не меняется, результаты всегда будут одинаковыми. В этом случае результатом является логическое значение, равное True.

Таким образом, цикл while, который имеет «True» или любое неизменное истинное выражение, такое как 1 < 2, в качестве условия, будет хотеть запустить «навсегда», потому что он никогда не провалит этот тест. Единственный способ остановить такой цикл - это сгенерировать исключение клавиатуры (обычно нажатием клавиши «Ctrl-C»), или создать где-то неперехваченное исключение внутри кода, или заставить какой-то фрагмент кода выполнить оператор break . [+1112]

В вашем примере вы складываете числа в given_list2 и останавливаетесь (выполняя break), когда встречаете отрицательное число. Таким образом, положительные числа суммируются, что составляет 17.

Аналогично, цикл while, который имеет «False» или любое неизменное ложное выражение в качестве условия, никогда не будет выполняться, потому что самый первый тест while 1 > 2 завершится неудачно, и цикл будет прервать. Это приводит к тому, что внутренний код не выполняется.

В вашем примере вы начинаете с total3 = 0 и никогда не запускаете какой-либо код, поэтому он остается равным 0.

0
ответ дан aghast 16 January 2019 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: