Все становится немного интереснее. Не миллиардное (определенно не преувеличиваю здесь… ну… может быть, немного) объяснение различных типов управления потоком, но было задействовано немного кодирования. Реальные маленькие программы, а не один или два вкладыша для ввода в интерактивной среде.

Теперь это становится хорошо, все, что я хочу сделать, это программа. Я читаю фоновое чтение, чтобы создать программу, не тратя четыре дня на Stackoverflow, рвя на себе волосы. Согласитесь, ничего страшного захватывающего здесь тоже нет. Объяснения ясны, и есть несколько диаграмм, которые действительно помогают проиллюстрировать, что происходит. (как визуальный ученик я благодарю вас, мистер Свейгарт)

Я получил один или два лакомых кусочка (еще раз подкрепление, чтобы замедлить) я узнал точное определение продолжения. Я знаю суть того, что он делает, и, возможно, в других языках он немного отличается, но я знаю, что это означает продолжать идти по кругу. Однако в Python он возвращает вас к началу цикла независимо от того, где вы находитесь в этом цикле. тех, кого я знаю или пытался узнать.

Похоже, это означает вернуться к началу цикла. Я не думаю, что когда-либо полностью понимал это, я не часто использую это. Javascript, R и C, кажется, имеют такое поведение, ну, это следующее в R, но то же самое. 234

И вот, наконец, код. Automate the Boring Stuff дает вам полный код для запуска минимально жизнеспособной программы, но это слишком просто. Я здесь, чтобы учиться. Их пример для циклов и операторов if/else — «Угадай число».

Прежде чем читать их код, я сделал свой собственный. Все началось с малого, я просто установил случайное число, а затем получил ввод от пользователя. То же, выше, ниже? Потом мне приснилось. Включаю проверку ошибок. Если это не число, которое вам нужно угадать снова, буквы не работают в этой версии «Угадай число». Если бы вы играли со значениями ascii, это была бы другая история.

import random
import customUtils

def main():
    number = random.randint(1,100)
    numGuesses = 0
    scores = []
    
    while True:
        print("Guess a number between 1 and 100")
        try:
            guess = int(input())
            numGuesses += 1

            if guess < number:
                print(f"{guess} is too low.\nGuess again")
            elif guess > number:
                print(f"{guess} is too high.\nGuess again")
            else:
                print(f"Congratulations, {guess} is correct.\nIt took you {numGuesses} guesses")
                scores.append(numGuesses)
                customUtils.playAgain("Guess the Number", scores)
                number = random.randint(1,100)
                numGuesses = 0
        except ValueError:
            print("You must enter a number")

if __name__ == "__main__":
    main()

Вы можете заметить в блоке else выражение, которое никогда раньше не видели, customUtils.playAgain(). После создания пары этих игрушечных программ с книгой я понял, что копирую себя, поэтому я создал свою собственную маленькую библиотеку. Ничего особенного, и я, вероятно, продублировал работу, которая уже была сделана, но это было веселое и приятное упражнение.

Моя функция принимает два аргумента: название текущей игры, в которую вы играете, и список ваших очков. Он использует их, чтобы сохранить ваши игровые результаты, если вы хотите. Если вам интересна эта функция и другая, которую я написал для нее, я сделал репозиторий с моими экспериментами из книги на Github.

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

Вот исходная программа ниже, как видите, она не слишком отличается от моей.

# This is a guess the number game.
import random
secretNumber = random.randint(1, 20)
print('I am thinking of a number between 1 and 20.')

# Ask the player to guess 6 times.
for guessesTaken in range(1, 7):
    print('Take a guess.')
    guess = int(input())

    if guess < secretNumber:
        print('Your guess is too low.')
    elif guess > secretNumber:
        print('Your guess is too high.')
    else:
        break    # This condition is the correct guess!

if guess == secretNumber:
    print('Good job! You guessed my number in ' + str(guessesTaken) + '
guesses!')
else:
    print('Nope. The number I was thinking of was ' + str(secretNumber))
  1. Свейгарт, А. (2020 г.) Автоматизация скучных задач с помощью Python: практическое программирование для начинающих, 2-е изд. Нет Старт Нажмите. Получено с https://automatetheboringstuff.com/2e/chapter2/
  2. МДН. (2023) продолжить. Получено с https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/continue
  3. Наставник данных. (н.д.). R break и next Statement. Получено с https://www.datamentor.io/r-programming/break-next/
  4. Точка учебников. (н.д.). оператор continue в C.Получено с https://www.tutorialspoint.com/cprogramming/c_continue_statement.htm