Потік команд - a byte of python
У програмах, які ми досі розглядали, послідовність команд завжди виконувалася Python по порядку строго зверху вниз. А що, якщо нам необхідно змінити потік виконуються команд? Наприклад, якщо потрібно, щоб програма приймала деякий рішення і виконувала різні дії в залежності від ситуації; скажімо, друкувала "Доброго ранку" або "Добрий вечір" в залежності від часу доби.
Як ви вже, напевно, здогадалися, цього можна досягти за допомогою операторів управління потоком. В Python є три оператора управління потоком: if. for і while.
оператор if¶
Оператор if використовується для перевірки умов: якщо [1] умова вірна [2]. виконується блок виразів (званий "if-блок"), інакше [3] виконується інший блок виразів (званий "else-блок"). Блок "else" є необов'язковим.
Приклад: (збережіть як if.py)
У цій програмі ми приймаємо варіанти від користувача і перевіряємо, чи збігаються вони з наперед заданим числом. Ми встановлюємо змінної number значення будь-якого цілого числа, якого хочемо. Наприклад, 23. Після цього ми приймаємо варіант числа від користувача за допомогою функції input (). Функції - це всього-на-всього багаторазово використовувані фрагменти програми. Ми дізнаємося про них більше в наступному розділі.
Ми передаємо вбудованої функції input рядок, яку вона виводить на екран і очікує введення від користувача. Як тільки ми ввели що-небудь і натиснули клавішу Enter. функція input () повертає рядок, яку ми ввели. Потім ми перетворимо отриманий рядок в число за допомогою int (). і зберігаємо це значення в змінну guess. Взагалі-то, int - це клас, але на даному етапі вам досить знати лише, що за допомогою нього можна перетворити рядок в ціле число (припускаючи, що рядок містить ціле число).
Далі ми порівнюємо число, введене користувачем, з числом, яке ми вибрали заздалегідь. Якщо вони рівні, ми друкуємо повідомлення про успіх. Зверніть увагу, що ми використовуємо відповідні рівні відступу, щоб вказати Python, які вислови відносяться до якогось блоку. Ось чому відступи так важливі в Python. Я сподіваюся, ви дотримуєтеся правила "постійних відступів", чи не так?
Зверніть увагу, що в кінці оператора if стоїть двокрапка - цим ми показуємо, що далі йде блок виразів.
Після цього ми перевіряємо, чи вірно, що призначений для користувача варіант числа менше задуманого, і якщо це так, ми інформуємо користувача про те, що йому слід вибирати числа трохи більше цього. Тут ми використовували вираз elif. яке попросту поєднує в собі два пов'язаних if else-if else вираження в один вираз if-elif-else. Це полегшує читання програми, а також не вимагає додаткових відступів.
Вирази elif і else також мають двокрапка в кінці логічної рядка, за яким слідують відповідні блоки команд (з відповідним числом відступів, звичайно).
Усередині if-блоку оператора if може бути інший оператор if і так далі - це називається вкладеним [4] оператором if.
Пам'ятайте, що частини elif і else не обов'язкові. Мінімальна коректна запис оператора if така:
Після того, як Python закінчує виконання всього оператора if разом з його частинами elif і else. він переходить до наступного виразу в блоці, що містить цей оператор if. У нашому випадку це основний блок програми (в якому починається виконання програми), а такий вираз - це print ( 'Завершено'). Після цього Python доходить до кінця програми і просто виходить з неї.
Хоча це і надзвичайно проста програма, я вказав вам на цілий ряд речей, які варто взяти на замітку. Все це досить легко (навіть дивно легко для тих з вас, хто прийшов зі світу C / C ++). Спочатку вам доведеться тримати всі ці речі в пам'яті, але після деякої практики ви звикнете, і вони вам здадуться цілком "природними".
Зауваження для програмістів на C / C ++
В Python немає оператора switch. Однак, за допомогою конструкції if..elif..else можна досягти того ж самого (а в деяких випадках можна навіть використовувати словник. Щоб зробити це швидко).
оператор while¶
Оператор while дозволяє багаторазово виконувати блок команд до тих пір, поки виконується деяка умова. Це один з так званих операторів циклу. Він також може мати необов'язковий пункт else.
Приклад: (збережіть як while.py)
У цій програмі ми запитуємо введення з боку користувача, але обробляємо введену рядок тільки якщо вона має довжину хоча б в 3 символу. Отже, ми використовуємо вбудовану функцію len для отримання довжини рядка, і якщо довжина менше 3, ми пропускаємо інші дії в блоці за допомогою оператора continue. В іншому випадку всі інші команди в циклі виконуються, виробляючи будь-які маніпуляції, які нам потрібні.
Зауважте, що оператор continue також працює і з циклом for.
Ми побачили, як використовувати три оператора для управління потоком команд: if. while і for. а також пов'язані з ними оператори break і continue. Це найбільш часто використовувані конструкції Python, тому опанувати ними дуже важливо.
Далі ми побачимо, як створювати і використовувати функції.