В чем разница между этими двумя способами записи IF l oop? - PullRequest
0 голосов
/ 21 июня 2020

В моей учебной книге автор форматирует эту программу, как показано в коде №2. в то время как моя интуиция подсказывает мне написать программу, как показано в коде №1. Обе программы выполняют свою работу за меня, но есть ли разница между этими двумя кодами? Если есть, то какой способ, на ваш взгляд, лучше?

#1
total = 0
count = 0
while (True):
    inp = input('Enter a number: ')
    if inp == 'done':
        break
    else:
        value = float(inp)
        total = total + value
        count = count + 1
average = total / count
print('Average:', average)

#end of 1

#2
total = 0
count = 0
while (True):
    inp = input('Enter a number: ')
    if inp == 'done': break
    value = float(inp)
    total = total + value
    count = count + 1
average = total / count
print('Average:', average)

#end of 2

Ответы [ 3 ]

0 голосов
/ 21 июня 2020

Нет никакой разницы в том, как работает код, иногда может быть лучше использовать однострочный оператор if. Один способ объективно не лучше, он зависит от контекста и личных предпочтений. Так что выбирайте тот способ, который вам больше нравится. Если у вас возникнут какие-либо сомнения относительно синтаксиса Python и его стиля, ознакомьтесь с официальным Python Руководством по стилю .

Один из ключевых моментов руководства по стилю - удобочитаемость. , поэтому попробуйте выбрать наиболее читаемый вариант.

0 голосов
/ 21 июня 2020

Если вам удобнее использовать первый синтаксис, тогда вы можете использовать его без каких-либо проблем.

Однако позвольте мне объяснить различия между двумя кодами: Использование 'break' означает, что всякий раз, когда inp == 'done' верно, то вы выйдете из текущего l oop и продолжите. Следовательно, использование else не является обязательным, поскольку оно либо достигает, либо не достигает того, что вы написали в своем операторе else, оно не может go как в операторе if, так и в операторе else.

В противном случае , вот и все, оба кода дадут вам одно и то же: D!

0 голосов
/ 21 июня 2020

Я думаю, ваш способ более читабелен, но дополнительная вкладка в операторе if, а также в операторе else не нужна. Я предпочитаю первый вариант из-за удобочитаемости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...