Условные операторы

Введение

So far we have accomplished predefined tasks, but in all honesty we were accomplishing no better than old-time music boxes following one set of instructions to the end. What makes programming so much more powerful are conditional statements. This is the ability to test a variable against a value and act in one way if the condition is met by the variable or another way if not. They are also commonly called by programmers if statements.

Чтобы узнать, истинно или ложно условие, нужен новый тип информации: логический (булевый), описываемый логическими операторами. Любое логическое значение или логическая операция могут быть оценены как “истина” или “ложь”. Условные выражения следует понимать так:

if (условие истинно):

делать это

else:

в противном случае делать это

Условие может быть любым, имея значение истина или ложь. В результате сравнений (таких как == (равнозначно), > (больше чем), < (меньше чем)) всегда возвращается логическое значение.

Часть else необязательна. Если убрать её, при ложном значении ничего не произойдёт.

Примеры

Немного примеров. Можешь просмотреть их построчно и попытаться понять, что они делают (или запустить, чтобы быть уверенным):

condition = True
if condition:
    print("condition met")

if not condition:
    print("condition not met")

direction = -30
if direction > 0 :
    turtle.forward(direction)
else:
    turtle.left(180)
    turtle.forward(-direction)

Giving Directions

Python-черепашка хорошо работает с последовательными указаниями. Давайте с помощью функции input() будем принимать команды от пользователя, которые указывают направление движения черепашки. Чтобы не усложнять программу, предусмотрим только 2 инструкции: “налево” и “направо”.

Примечание

Используешь Python 2? Функция input() называется raw_input().

Намного проще выделить это в функцию, вот так:

def move():
    direction = input("Go left or right? ")
    if direction == "left":
        turtle.left(60)
        turtle.forward(50)
    if direction == "right":
        turtle.right(60)
        turtle.forward(50)

Теперь, используя move(), ты можешь выбрать, в какую сторону двигаться: влево (left) или вправо (right).

Преобразование данных (“data munging”)

In this program, the turtle will only respond to exactly left or right with no variation. Though Left or LEFT might seem the same as left to a human, that isn’t the case when programming. Python has a few utility methods to help with that. A string has the methods .strip(), which removes whitespace and .lower() which makes everything lower-case.

Немного примеров, демонстрирующих работу .strip() и .lower():

my_variable = "       I Am Capitalised"
print(my_variable)
my_stripped = my_variable.strip()
print(my_stripped)
my_lower = my_variable.lower()
print(my_lower)

Попробуй добавить direction = direction.strip().lower() в функцию move() и посмотри, что получилось. Это называется преобразованием данных (“data munging”) и очень часто используется в различных программах.

Можешь ли ты добавить дополнительные варианты движения, чтобы черепашка рисовала другие фигуры? Как насчёт шестиугольника?