¿Cómo puedo usar la condicion if.. else... en una macro con Python?

Hola, tengo una macro y quiero implementar una condición if else para la gestión de datos, Ejemplo:

import uno

def main():

casilla = 'x'
dia = '12'
mes = '05'
ano = '2020'

if  casilla == ' ':
    nada = ''
else:
    dia2=dia
    mes2=mes
    ano2=ano
return

Si así tienes el código, esta mal indentado…

Al respecto puedo informarte, en forma general que:

1- La estructura de control if
Permite que el programa ejecute instrucciones cuando se cumple una condición.
La sintaxis es la siguiente:

 if condición:
    órdenes que se ejecutan si la condición es cierta

La condición se evalúa siempre.
Si el resultado es True se ejecutan las sentencias.
Si el resultado es False no se ejecutan las sentencias.

La primera línea contiene una expresión lógica a evaluar y termina siempre en dos puntos.
La segunda línea, es un bloque que siempre debe ir sangrado y esta constituido por las órdenes que se ejecutan cuando la condición es verdadera.

2- La estructura de control if — else
Permite que el programa ejecute unas instrucciones cuando la condición es cierta y otras instrucciones cuando la condición es falsa.
La sintaxis es la siguiente:

if condición:
   órdenes que se ejecutan si la condición es cierta

else:
   órdenes que se ejecutan si la condición es falsa 

La ejecución de esta construcción es la siguiente:

La condición se evalúa siempre.
Si el resultado es True se ejecutan las sentencias 1
Si el resultado es False se ejecutan las sentencias 2

La primera línea contiene la expresión lógica a evaluar y termina siempre en dos puntos.
La segunda línea es un bloque que siempre debe ir sangrado, está constituído por las órdenes que se ejecutan cuando la condición es verdadera

Después viene la línea con la orden else, que indica que las órdenes se ejecutan cuando la condición es falsa, esta línea también debe terminar siempre en dos puntos.
La última línea, es un bloque que siempre debe ir sangrado y está constituído por las órdenes de instrucciones que corresponde a else

Se aconseja utilizar siempre el mismo número de espacios en el sangrado, generalmente cuatro.

3- La estructura de control if — else, se puede extender añadiendo la instrucción elif:
Permite encadenar varias condiciones.

La sintaxis es la siguiente:

if condición_1:
    bloque 1

elif condición_2:
    bloque 2

else:
    bloque 3

Si se cumple la condición 1, se ejecuta el bloque 1

Si no se cumple la condición 1 pero sí que se cumple la condición 2, se ejecuta el bloque 2

Si no se cumplen ni la condición 1 ni la condición 2, se ejecuta el bloque 3.

Se pueden escribir todos los bloques elif que resulten necesarios, el bloque else se ejecuta si no se cumple ninguna de las condiciones previas.

Editado: ----------- 30-10-2020 ----------

En LibreOffice Basic.

Tiene similar a Python, la instrucción If…Then…Else

Esta instrucción define bloques de instrucciones que se ejecutan cuando una condición es verdadera.

Sintaxis:

If condition=true 
    Then bloque de instrucciones 
ElseIf condition=true 
    Then Bloque de instrucciones 
Else 
    Bloque de instrucciones 
EndIf

En vez de Else If puede escribir ElseIf, y en vez de End If puede escribir EndIf.

Cuando la instrucción If, es verdadera, se ejecutan todas las instrucciones posteriores hasta que se encuentre una nueva instrucción Else o ElseIf.

Si la condición es falsa y a continuación hay una instrucción ElseIf que es verdadera se ejecutan todas las instrucciones posteriores hasta que se encuentre una nueva instrucción Else o ElseIf.

Si la condición es falsa continúa con la siguiente instrucción ElseIf o Else.

La ejecución continúa hasta EndIf.

Este es un ejemplo brindado por LibreOffice Help -https://help.libreoffice.org/latest/es/text/sbasic/shared/03090101.html-
Que permite introducir una fecha de caducidad de un producto y determina si ésta ya ha caducado.
Ejemplo:

Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
    sFecha = InputBox("Escriba la fecha de caducidad (MM.DD.AAAA)")
    sDate = Right$(sDate, 4) + Mid$(sDate, 4, 2) + Left$(sDate, 2)
    sToday = Date$
    sToday = Right$(sToday, 4)+ Mid$(sToday, 4, 2) + Left$(sToday, 2)
    If sDate < sToday Then
        MsgBox "La fecha de caducidad ya ha pasado"
    ElseIf sDate > sToday Then
        MsgBox "La fecha de caducidad no ha pasado aún"
    Else
        MsgBox "La fecha de caducidad es hoy"
    End If
End Sub

Hola, agradezco tu respuesta, entiendo como funciona la condición if else y si solo usara Python3 no tendría ningún problema, pero la cuestión aquí es que al agregar la condición dentro de una macro en libreoffice… libreoffice ya no me la detecta.

Primero debes de asegurarte de que tienes soporte para macros Python, entonces, tu código debe estar correctamente indentado:

def main():
    selection = XSCRIPTCONTEXT.getDocument().CurrentController.Selection
    nada = ''
    if selection.String:
        nada = selection.String
        
    print(nada)

    return

Hola, ya probé tu ejemplo y me marca un error en la siguiente parte:

if selection.String:

Sin embargo realice otras pruebas para que este correctamente indentado, el cual me ejecuto la función If sin problemas:

def main():

     doc = XSCRIPTCONTEXT.getDocument()
     text = doc.Text
     edad = '15'
     if edad < '18':
        text.String = 'Hola Amigos'	
     else:
        text.String = 'Hola Amigos como estan'	

     return