Python Basics
#ENIntroduction
In this article, I'll try to dig deeper into Python Basics.
Mutable vs Immutable
Mutable
- The object ids are same
 
a = [1,2,3]
print("a = %s" % a)
print("id(a) = %s" % id(a))
a.append(4)
print("a = %s" % a)
print("id(a) = %s" % id(a))
a = [1, 2, 3]
id(a) = 4397053320
a = [1, 2, 3, 4]
id(a) = 4397053320Immutable
- The object ids are changed
 
a = "abc"
print("a = %s" % a)
print("id(a) = %s" % id(a))
a = a + "def"
print("a = %s" % a)
print("id(a) = %s" % id(a))
a = abc
id(a) = 4432244216
a = abcdef
id(a) = 4434341816Variable
| class | Immutable | 
|---|---|
| bool | ✅ | 
| int | ✅ | 
| float | ✅ | 
| list | |
| tuple | ✅ | 
| str | ✅ | 
| set | |
| frozenset | ✅ | 
| dict | 
Multiple variable
Mutable
a = [1,2,3]
b = a
a.append(4)
print ("a = %s" % a)
print ("b = %s" % b)
a = [1, 2, 3, 4]
b = [1, 2, 3, 4]Immutable
a = "abc"
b = a
a = a + "def"
print ("a = %s" % a)
print ("b = %s" % b)
a = abcdef
b = abcPython Conveniences
Conditional Expressions
# Case 1
if n >= 0:
  param = n
else:
  param = −n
result = foo(param) # call the function
# Case 2
param = n if n >= 0 else −n # pick the appropriate value
result = foo(param)Comprehension Syntax
# Case 1
result = []
for k in range(1, n+1):
  if n % k == 0:
    result.append(k)
# Case 2
result = [k for k in range(1, n+1) if n % k == 0]Packing and Unpacking of Sequences
for x, y in [ (7, 2), (5, 8), (6, 4) ]:
for k, v in mapping.items():Simultaneous Assignments
j = 1
k = 2
id(j) # 4343226616
id(k) # 4343226648
j,k = k, j
id(j) # 4343226648
id(k) # 4343226616
j # 2
k # 1Modules and the Import Statement
- If the module is imported from another scripts, the code under 
if name == __main__ :is not executed - It is executed only when if the module is directly invoked as a script
 
if name == __main__ :