```python
from sympy import *
init_printing()
```

# 1. Símbolos (*Symbols*)

Variables de *Python* y *SymPy* 


```python
a = 'stuff' # variable Python
```

La función `symbols` crea una variable *SymPy* `x` que es asignada a la variable Python `x`.


```python
x = symbols('x')
x
```

Lo siguiente funciona también, pero no se recomienda. La variable Python `crazy` se asigna a la variable *Sympy* `unrelated`. Por lo tanto, siempre es una buena idea nombrar sus variables igual que sus símbolos.


```python
crazy = symbols('unrelated')
crazy
```

# 2. Inmutabilidad (*Immutability*)


```python
x, y = symbols('x y')
a = x + y + 1
a
```


```python
x = 3
```

¿Qué es "` a` "ahora?


```python
a
```

Ahora, ¿cómo puedo sustituir x por 3?


```python
??
```

¿Qué es "` a` "ahora?


```python
a
```

Las expresiones de *SymPy* son inmutables. Nunca cambian en el lugar. Por lo tanto, cada vez que haces `subs`, `simplify`, etc. *SymPy* crea una nueva expresión.

# 3. Signo de igual

Comprobando la desigualdad matemática.


```python
x = symbols('x')
a = (x + 1)**2
a
```


```python
b = x**2 + 2*x + 1
```

Ahora, vamos a verificar si `a` y` b` son iguales o no. ¿Cuál crees que será el resultado de lo siguiente?


```python
a == b
```


```python
simplify(a - b)
```

Esa es la diferencia entre la igualdad estructural y matemática.

#### Representando una igualdad simbólica, como por ejemplo: 
$$x^2 = y$$


```python
eq = Eq(x**2, y)
```


```python
eq.lhs
```


```python
eq.rhs
```


```python
solveset(eq, x)
```

# 4. Fracciones 


```python
acos(1/2)
```

Estamos buscando resultados simbólicos, ¿verdad?


```python
Rational(1, 2)
```


```python
acos(Rational(1, 2))
```


```python
from fractions import Fraction
Fraction(1, 2)
```


```python
acos(Fraction(1, 2))
```


```python
type(sympify(Fraction(1, 2)))
```

# 5. Operador Lógico (XOR)


```python
x^2
```


```python
sympify('x^2')
```

Si estás haciendo lógica, y **no** quieres convertir el `XOR` al operador de potencia:


```python
sympify('x^2', convert_xor=False)
```

9429b0ad7c529da6da794f4a093ac82fefe1b979
ipynb
Jupyter Notebook
tutorial_exercises/Gotchas.ipynb
t3rodrig/sympy-tutorial-es
5cd5497f799e889d758a26539781cdc72b1e6a74
BSD-3-Clause
tutorial_exercises/Gotchas.ipynb
t3rodrig/sympy-tutorial-es
5cd5497f799e889d758a26539781cdc72b1e6a74
BSD-3-Clause
tutorial_exercises/Gotchas.ipynb
t3rodrig/sympy-tutorial-es
5cd5497f799e889d758a26539781cdc72b1e6a74
BSD-3-Clause
Qwen/Qwen-72B
1. YES
2. YES