Что является лучшей практикой в ​​Python, когда используются логические значения против «нормальных» значений? - PullRequest
0 голосов
/ 30 июня 2019

Как законченный новичок, не могу понять, как лучше писать код из приведенных примеров. Я чувствую, что хочу как можно больше избегать использования Boolean, так как это дает мне меньше читабельности и контроля над кодом.

Я действительно хочу научиться писать действительно хороший чистый код с самого начала.

Я пытался с Boolean. Без логического значения и с меньшим количеством переменных.

Пример школы:

secret_word = "giraffe"
guess = ""
guess_count = 0
guess_limit = 3
out_of_guesses = False

while guess != secret_word and not(out_of_guesses):
    if guess_count < guess_limit:
        guess = input("enter guess: ")
        guess_count += 1
    else:
        out_of_guesses = True

if out_of_guesses:
    print("YOU LOSE!")
else:
    print("YOU WIN!")

Пример 2: без логического значения.

secret_word = "another"
guess = ""
guess_count = 0
guess_limit = 3

while guess != secret_word:
    if guess_count < guess_limit:
        guess = input("enter guess: ")
        guess_count += 1
        if guess == secret_word:
            print("YOU WIN!")
    else:
        print("YOU LOSE!")
        break

Пример 3: урезанный код только с 3 переменными

secret_word = "another"
guess = ""
guess_count = 0

while guess != secret_word:
    if guess_count < 3:
        guess = input("enter guess: ")
        guess_count += 1
        if guess == secret_word:
            print("YOU WIN!")
    else:
        print("YOU LOSE")
        break

В школьном примере, примечание Линтера содержит избыточные скобки в логическом значении в операторе while.

1 Ответ

1 голос
/ 30 июня 2019

Полагаю, в вашем случае лучше разорвать петлю, если вы правильно поняли.Ограничение максимального числа итераций цикла в основном выполняется для циклов и диапазона.

secret_word = "another"
max_guesses = 3

for guess_cnt in range(max_guesses):
    guess = input("enter guess: ")

    if guess == secret_word:
        break

if guess == secret_word:
    print("YOU WIN!")
else:
    print("YOU LOSE")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...