Все становится немного интереснее. Не миллиардное (определенно не преувеличиваю здесь… ну… может быть, немного) объяснение различных типов управления потоком, но было задействовано немного кодирования. Реальные маленькие программы, а не один или два вкладыша для ввода в интерактивной среде.
Теперь это становится хорошо, все, что я хочу сделать, это программа. Я читаю фоновое чтение, чтобы создать программу, не тратя четыре дня на 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))
- Свейгарт, А. (2020 г.) Автоматизация скучных задач с помощью Python: практическое программирование для начинающих, 2-е изд. Нет Старт Нажмите. Получено с https://automatetheboringstuff.com/2e/chapter2/
- МДН. (2023) продолжить. Получено с https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/continue
- Наставник данных. (н.д.). R break и next Statement. Получено с https://www.datamentor.io/r-programming/break-next/
- Точка учебников. (н.д.). оператор continue в C.Получено с https://www.tutorialspoint.com/cprogramming/c_continue_statement.htm