Skip to main content

Help my variables are changing when i don't want them to, and then they dont change when i want to...




 

 

 Title: ๐Ÿ Demystifying Name, Object, and Mutability in Python ๐Ÿง ๐Ÿ’ป


Welcome, Pythonistas! Today, we're delving deep into the core concepts of name, object, and mutability in Python – the building blocks that shape the behavior of our beloved language. ๐Ÿš€ Let's embark on this exciting journey together and unravel the mysteries behind these fundamental concepts! ๐Ÿ”


### Understanding Names and Objects


In Python, everything is an object – whether it's a simple integer like `1`, a list like `[1, 2]`, or even a function! ๐ŸŽฉ Objects in Python are entities that have data (attributes) and associated behaviors (methods). 


When we assign a value to a variable, we're essentially creating a name that references an object. Let's dive into an example:


```python

x = 1

y = x

y = 2

print(x, y)  # Output: 1 2

```


In this snippet, we create two names (`x` and `y`) that reference the same integer object initially (`1`). However, when we reassign `y` to `2`, it no longer refers to the same object as `x`. Thus, changing `y` does not affect `x`.


### Exploring Mutability


Now, let's talk about mutability – the ability of an object to be changed after it's created. In Python, some objects are mutable (modifiable), while others are immutable (unchangeable).


```python

L1 = [1, 2]

L2 = L1

L1[0] = 3

print(L1, L2)  # Output: [3, 2] [3, 2]

```


In this example, we create a list `L1` containing `[1, 2]`. Then, we assign `L2` to `L1`, meaning both names point to the same list object. When we modify `L1` by changing its first element to `3`, both `L1` and `L2` reflect this change. Why? Because lists are mutable objects in Python.


also:


```

L=[1,2,3]

for item in L:

  item += 1

print(L)

```


versus


```

n=len(L)

for i in range (n):

  L[i] += 1

print(L)

```


### Wrapping Up


And there you have it, folks! We've journeyed through the realms of names, objects, and mutability in Python. Armed with this knowledge, you'll be better equipped to understand the inner workings of Python code and wield its power with finesse. ๐Ÿ› ️


Remember, names are merely labels for objects, and mutability determines whether an object can be changed after creation. Embrace these concepts, experiment with Python's flexibility, and let your coding adventures flourish! ๐ŸŒŸ


Until next time, happy coding! ๐Ÿ’ป✨


Interactive example:

https://colab.research.google.com/drive/1hz1hluXb_B9Vx82kV6wNQJSO0hjIVUG3?usp=sharing

more raw examples:

https://colab.research.google.com/drive/1zKkkH_erZdSLWnjStk_Kcw3_A6RMrBbN

Also try this on python-tutor


Comments

Popular posts from this blog

yer a wizard - making your own custom %%cellmagics for colab notebooks

    ## Dive into the Magic of Jupyter %%cellmagic! ✨๐Ÿ“š Hey there, fellow data enthusiasts! ๐Ÿ‘‹ Today, let's dive into the fascinating world of Jupyter's `%%cellmagic` ๐Ÿช„. This little-known feature can supercharge your Jupyter Notebook workflow! ๐Ÿš€๐Ÿ’ก ### What's `%%cellmagic`? ๐Ÿง™‍♂️✨ In the Jupyter ecosystem, `%magic` and `%%cellmagic` commands add special functionalities to your notebook cells. Think of them as magical commands that can transform how your cells behave! ๐ŸŒŸ For example, `%%time` can measure the execution time of a cell. But what if you want to create your own custom magic? That's where `%%cellmagic` shines! ๐Ÿ’ฅ ### Example: Create Your Own Cell Magic ๐Ÿ› ️๐Ÿ”ฎ Let's say you want to create a custom magic that processes a cell in a specific way. Here's a simple example to get you started: ```python from IPython.core.magic import (Magics, magics_class, cell_magic, needs_local_scope) @magics_class class class_mycellmagic(Magics):     @needs_local_scope ...

x=? or how can i make a random variable in python ?

 **Unleashing the Power of Randomness in Python/Numpy for Simple Game Structures! ๐ŸŽฒ๐Ÿ”€๐Ÿƒ** Welcome, fellow programmers, game enthusiasts, and curious minds! Today, we embark on an exciting journey into the realm of randomness within Python and Numpy. Whether you're a seasoned coder or a newbie explorer, buckle up as we uncover the magic of random functions and how they can breathe life into simple game structures. ๐Ÿš€ **1. Uniform Randomness:** ๐ŸŽฒ Ah, the beauty of unpredictability! With Python's `random` module or Numpy's `numpy.random` package, we can effortlessly generate uniformly distributed random numbers. This feature is ideal for scenarios like rolling dice, selecting random players, or determining the movement of objects in a game world. ```python import random # Roll a fair six-sided die roll_result = random.randint(1, 6) print("You rolled:", roll_result) ``` **2. List Choice:** ๐Ÿ”€ In the realm of games, sometimes decisions need to be made from a pool of ...

how to do the linear regression in python??

  ๐Ÿ“Š **Unlocking the Power of Linear Regression with Python's SciPy Library!** ๐Ÿ“ˆ Hey there, data enthusiasts! Today, we're diving into the world of linear regression using Python's powerful SciPy library. Strap in as we explore how to perform linear regression, calculate the coefficient of determination (R-squared), and unleash the potential of your data with just a few lines of code! ### ๐Ÿ“Š What is Linear Regression? Linear regression is a fundamental statistical technique used to model the relationship between two variables. It's like fitting a straight line to a scatter plot of data points, allowing us to make predictions and understand the underlying relationship between the variables. ### ๐Ÿ’ป Let's Get Coding! First things first, fire up your Python environment and make sure you have SciPy installed. If not, a quick `pip install scipy` should do the trick. Once that's done, import the necessary libraries: ```python from scipy.stats import linregress ``` Now...