Já abordei condicionais em tópicos extras mas fiquei devendo dissecar mais a parte teórica. É um assunto de fácil entendimento mas importantíssimo na lógica de programação.
Imaginem o aplicativo Waze. Pra quem nunca usou o app, ele calcula as rotas de carro mais rápidas a depender do fluxo do trânsito nas vias.

Neste print, a via mais à esquerda está mais engarrafada e o app direcionou o veículo pela opção da direita. Ou seja, SE uma via está mais engarrafada que a outra, o app nos direciona por caminhos alternativos menos engarrafados, de trânsito mais livre.
Um aplicativo como o Waze calcula várias condições para mostrar na tela o caminho mais livre.
Então:
se a via tem trânsito lento:
procure outra via de trânsito mais fluido
Em Python, a palavra reservada para a condição "se" é o "if", ou seja, "se" em inglês.
if x % 2 == 0:
print('x é par')
Podemos adicionar outro "statement" a uma condicional, que é o que fazer caso o "se" não seja verdade. Voltando ao exemplo do Waze:
se a via tem trânsito lento:
procure outra via de trânsito mais fluido
senão:
siga em frente
Em Python, o "senão" é a palavra "else":
if x % 2 == 0:
print('x é par')
else:
print('x é ímpar')
Ou seja, recapitulando e relembrando de booleanos, e tomando o nosso exemplo em Python:
Se o resto da divisão de uma variável x por 2 for zero, caso esta expressão seja verdade, caso o booleano da expressão seja True, o programa printa na tela que x é par.
Senão, ou seja, se o resto da divisão de uma variável x por 2 não for zero, ou seja, o booleano da expressão é False, o programa printa na tela que x é ímpar.
Recapitulando booleanos caso essa explicação esteja confusa:
>>> x = 10
>>> x % 2 == 0
True
>>> type(x % 2 == 0)
<class 'bool'>
Então, o "if" irá verificar se a expressão, o "statement" é verdade. Se for verdade, ele executa o bloco de código que está hierarquicamente subordinado a ele. Se a expressão não for verdade, o código segue em frente. No caso acima, executa o que está hierarquicamente subordinado ao "else".
Também temos uma palavra reservada de Python equivalente a "senão se", que é o "elif" (junção de else + if). Ou seja, podemos verificar se várias expressões são verdade até chegar no "else", que é mais genérico. Exemplificando em código pra ficar mais claro:
>>> x = 9
>>> if x % 2 == 0:
... print('x é divisível por 2')
... elif x % 3 == 0:
... print('x é divisível por 3')
... elif x % 5 == 0:
... print('x é divisível por 5')
... else:
... print('x não é divisível por 2 nem por 3 nem por 5')
...
x é divisível por 3
Nesse caso, o console irá verificar a primeira expressão. Vendo que ela não é verdade, verifica o primeiro "elif", que aí foi verdade. Neste ponto do código o console nem lê as outras afirmações, já solta o resultado na tela. Encadear vários "elif" pode ser útil caso tenhamos várias opções de resultado, haja vista o "else" ser bem mais genérico, ou seja, ele engloba tudo que não for verdade no primeiro "if".
Também podemos aninhar condicionais:
>>> x = 10
>>> if x % 2 == 0:
... if x % 5 == 0:
... if x % 10 == 0:
... print('x é divisível por 2, por 5 e por 10')
... else:
... print('danesse')
...
x é divisível por 2, por 5 e por 10
Aí, o console verifica se a primeira condição é verdadeira, em seguida se a segunda é verdadeira e aí sucessivamente.
Com o conhecimento dos tópicos até agora já dá pra elaborar uns exercícios para treino. Quem tá acompanhando essa série, pretendo jogar uns exercícios no próximo tópico já que ninguém aprende a programar só lendo tutorial e livro.