Псевдокод и введение в циклы
Теперь вы должны быть в состоянии написать программу, которая находит наибольшее из четырех, пяти, шести или даже десяти чисел.
Вы уже знаете схему, поэтому увеличение размера задачи не составит особого труда.
Но что произойдет, если мы попросим вас написать программу, которая находит наибольшее из двухсот чисел? Вы можете представить себе код?
Вам понадобится двести переменных. Если двести переменных - не так уж и плохо, представьте себе поиск наибольшего из миллиона чисел.
Представьте себе код, содержащий 199 условных операторов и двести вызовов функции input ()
. К счастью, вам не нужно с этим разбираться. Есть более простой подход.
Мы пока проигнорируем требования синтаксиса Python и попытаемся проанализировать проблему, не думая о реальном программировании. Другими словами, мы попробуем написать алгоритм, и когда он нас устроит, мы его реализуем.
В этом случае мы будем использовать нотацию, которая не является реальным языком программирования (она не может быть ни скомпилирована, ни выполнена), но она формализованная, краткая и удобочитаемая. Это называется псевдокод.
Давайте посмотрим на наш псевдокод ниже:
largest_number = -999999999
number = int(input())
if number == -1:
print(largest_number)
exit()
if number > largest_number:
largest_number = number
# Go to line 02
Что в нем происходит?
Во-первых, мы можем упростить программу, если в самом начале кода мы присвоим переменной large_number
значение, которое будет меньше любого из введенных чисел. С этой целью мы будем использовать -999999999
.
Во-вторых, мы предполагаем, что наш алгоритм заранее не будет знать, сколько чисел будет доставлено программе. Мы ожидаем, что пользователь введет столько чисел, сколько захочет - алгоритм будет хорошо работать и с сотней, и с тысячей чисел. Как мы это сделаем?
Мы заключаем сделку с пользователем: когда вводится значение -1
, это будет признаком того, что данных больше нет и программа должна завершить свою работу.
В противном случае, если введенное значение не равно -1
, программа прочитает другое число и так далее.
Уловка основана на предположении, что любая часть кода может быть выполнена более одного раза - ровно столько раз, сколько необходимо.
Выполнение определенной части кода более одного раза называется циклом. Значение этого термина, вероятно, Вам очевидно.
Строки с 02
по 08
образуют цикл. Мы пройдемся по ним столько раз, сколько потребуется, чтобы проверить все введенные значения.
Можете ли Вы использовать аналогичную структуру в программе, написанной на Python? Да, можете.
Дополнительная информация
Python часто имеет множество встроенных функций, которые сделают всю работу за вас. Например, чтобы найти наибольшее количество из всех, вы можете использовать встроенную функцию Python под названием max()
. Вы можете использовать его с несколькими аргументами. Проанализируйте код ниже:
# Read three numbers.
number1 = int(input("Enter the first number: "))
number2 = int(input("Enter the second number: "))
number3 = int(input("Enter the third number: "))
# Check which one of the numbers is the greatest
# and pass it to the largest_number variable.
largest_number = max(number1, number2, number3)
# Print the result.
print("The largest number is:", largest_number)
Таким же образом вы можете использовать функцию min()
, чтобы вернуть наименьшее число. Вы можете перестроить приведенный выше код и поэкспериментировать с ним в песочнице.
Мы скоро поговорим об этих (и многих других) функциях. В настоящее время наше внимание будет сосредоточено на условном выполнении и циклах, чтобы дать вам больше уверенности в программировании и научить вас навыкам, которые позволят Вам полностью понять и применить эти две концепции в своем коде. Так что, на данный момент мы не срезаем путь.