Числа Python-фильтра с использованием бесконечных или конечных циклов

Вот несколько кодов, которые я сделал, которые пытались «многократно считывать числа, пока пользователь не вводит« готово », но я не понимаю, зачем мне нужен оператор« Пока верно », чтобы сделать цикл бесконечным для выполнения оператора« if ». Если Я не помещаю оператор «Пока правда» и запускаю код, компьютер скажет «break» вне цикла », что меня смущает. Я также хочу знать, при каких обстоятельствах мы должны использовать« while true »в цикле. ? Пожалуйста, помогите. Спасибо!

count=0
total=0
while True:
    value=input("Enter a value:")
    if value = = "done":
       break
    try:
      num=float(value)
    except:
      print("Bad input")
      continue
    count=count+1
    total=total+num
print(total,count,total/count)

Обычно вам нужно найти сумму нескольких n чисел. Эти n чисел считываются пользователем в каждом цикле, пока пользователь не наберет 'done', который разорвет бесконечный цикл.

Austin 27.10.2018 12:25
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
183
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

while condition повторяет код внутри, в то время как condition - это True.

В while True данное условие - это сам True, поэтому он повторяется бесконечно, пока не произойдет перерыв (break).

break означает «Убирайся самого внешнего цикла», поэтому, если вы используете break вне цикла, вы получите ошибку.

+) Это всего лишь подсказка, но вы можете использовать count += 1, как и count = count + 1! то же самое касается и total = total + num, как и total += num

Цель оператора break - остановить выполнение цикла. Следовательно, язык программирования Python требует, чтобы любой оператор break находился внутри цикла. Итак, если вы опустите оператор while True, ваш break не будет в цикле, и Python правильно объявит об ошибке.

Есть много причин использовать петлю while True. Одна из причин - продолжать заниматься своим делом, пока не произойдет какое-нибудь необычное обстоятельство. Ваша программа может проверить это обстоятельство и при необходимости остановиться. Эту проверку может быть сложно выполнить в начале цикла, поэтому использование while True с одним или несколькими операторами break позволяет выполнять проверку в любой точке цикла.

Еще одна причина возникновения цикла while True - избежать повторения оператора - применение принципа Не повторяйся (СУХОЙ). Ваша программа могла быть сделана иначе. Вы могли сделать:

value = input("Enter a value:")
while value != "done":
    # the body of the loop starting with the "try" statement
    value = input("Enter a value:")

Этот формат помещает проверку в начало цикла, поэтому True или break не требуются. Это имеет тот недостаток, что теперь у вас есть две абсолютно одинаковые линии input, которые должны оставаться неизменными. Если вы позже измените свой код, вы можете легко изменить один из этих input и забыть изменить другой, внося ошибку в свой код. По этой причине повторение самого себя считается плохим занятием. Текущее программирование на Python предпочитает избегать повторения и использовать while True и break, чтобы избежать этого.

Эта трудность возникает из-за того, что программе необходимо выполнить оператор input еще раз, чем выполнить цикл. Цикл выполняется для каждого обычного ввода, но оператор input также необходимо выполнить еще раз, чтобы получить последний ввод done, чтобы остановить цикл. Обработка этого небольшого несоответствия между количеством входов и количеством циклов немного сложна, и идеального решения нет. Но Python, очевидно, остановился на методе while True...break. Как бы то ни было, мои классы программирования 40 лет назад научили нас избегать техники break после того, как идет вразрез с принципами "структурного программирования". Но те дни, кажется, прошли.

Большое спасибо! Наконец-то я понял, и вы очень хорошо объяснили! Спасибо!!!!

W.ZYiiii 09.11.2018 11:45

Другие вопросы по теме