Skip to content

Commit 77c0fa4

Browse files
authored
Merge pull request #13 from the-code-experiments/develop
Develop
2 parents b309668 + c3d03db commit 77c0fa4

File tree

9 files changed

+186
-0
lines changed

9 files changed

+186
-0
lines changed

codes/session_2/iterators.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Open terminal > python3 iterators.py
2+
# Start typing below commands and see the output
3+
4+
for element in [1, 2, 3]:
5+
print(element)
6+
7+
for element in (1, 2, 3):
8+
print(element)
9+
10+
for key in { 'one': 1, 'two': 2, 'three': 3}:
11+
print(key)
12+
13+
for char in '123':
14+
print(char)
15+
16+
print('\n\n')
17+
18+
s = 'XYZ'
19+
it = iter(s)
20+
print(next(it))
21+
print(next(it))
22+
print(next(it))
23+
print(next(it)) # StopIteration Exception

codes/session_7/classEg1.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Open terminal > python3 classEg1.py
2+
# Start typing below commands and see the output
3+
4+
def scopeTesting():
5+
def doLocal():
6+
name = '(Do not change) -> LOCAL'
7+
print(name)
8+
9+
def doNonLocal():
10+
nonlocal name # Change the name binding to scopeTesting's level
11+
name = '-> Changed to NON-LOCAL'
12+
13+
def doGlobal():
14+
global name # Change the name binding to module level
15+
name = '-> Changed to GLOBAL'
16+
17+
name = "-> (Do not Change) DEFAULT" # Default, DO NOT change the name binding to scopeTesting's level"
18+
19+
doLocal()
20+
print('After local assignment: ', name)
21+
22+
doNonLocal()
23+
print('After non-local assignment: ', name)
24+
25+
doGlobal()
26+
print('After global assignment: ', name)
27+
28+
scopeTesting()
29+
print('In global scope: ', name)

codes/session_7/classEg2.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Open terminal > python3 classEg2.py
2+
# Start typing below commands and see the output
3+
4+
class Person:
5+
name = 'Mr. Unknown'
6+
7+
def __init__(self, email):
8+
self.email = email
9+
10+
p1 = Person('[email protected]')
11+
print(p1.name)
12+
print(p1.email)

codes/session_7/classEg3.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Open terminal > python3 classEg3.py
2+
# Start typing below commands and see the output
3+
4+
class Person:
5+
actions = []
6+
7+
def addAction(self, action):
8+
self.actions.append(action)
9+
10+
p1 = Person()
11+
12+
p1.addAction('Eating')
13+
p1.addAction('Walking')
14+
p1.addAction('Sleeping')
15+
16+
print(p1.actions)

codes/session_7/classEg4.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Open terminal > python3 classEg4.py
2+
# Start typing below commands and see the output
3+
4+
class Person:
5+
def __init__(self):
6+
self.actions = []
7+
8+
def addActions(self, action):
9+
self.actions.append(action)
10+
11+
p1 = Person()
12+
13+
p1.addActions('Eating')
14+
p1.addActions('Sleeping')
15+
16+
print(p1.actions)

codes/session_7/classEg5.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Open terminal > python3 classEg5.py
2+
# Start typing below commands and see the output
3+
4+
# Base class
5+
class Person:
6+
actions = []
7+
8+
# def __init__(self):
9+
# self.actions = [] # Cannot be accessed from Derived class instance
10+
11+
def addActions(self, action):
12+
self.actions.append(action)
13+
14+
# Derived class
15+
class Student(Person):
16+
def __init__(self):
17+
self.name = 'Ashwin'
18+
19+
def getName(self):
20+
return 'My name is ' + self.name
21+
22+
s1 = Student()
23+
print(s1.getName())
24+
25+
s1.addActions('Eating')
26+
s1.addActions('Sleeping')
27+
print(s1.actions)

codes/session_7/classEg6.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Open terminal > python3 classEg6.py
2+
# Start typing below commands and see the output
3+
4+
class A:
5+
name = 'A'
6+
7+
def getName(self):
8+
return self.name
9+
10+
class B(A):
11+
name = 'B' # Override class A's name
12+
13+
def getName(self):
14+
return self.name
15+
16+
b = B()
17+
18+
print(b.getName())

codes/session_7/classEg7.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Open terminal > python3 classEg7.py
2+
# Start typing below commands and see the output
3+
4+
class A:
5+
name = 'A'
6+
7+
def getName(self):
8+
return self.name
9+
10+
class B:
11+
name = 'B'
12+
13+
def getName(self):
14+
return self.name
15+
16+
class C(A, B):
17+
name = 'C' # C Override A Override B
18+
19+
def getName(self):
20+
return self.name
21+
22+
c = C()
23+
24+
print(c.getName())

codes/session_7/classEg8.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Open terminal > python3 classEg8.py
2+
# Start typing below commands and see the output
3+
4+
class Reverse:
5+
def __init__(self, data):
6+
self.data = data
7+
self.index = len(data)
8+
9+
def __iter__(self):
10+
return self
11+
12+
def __next__(self):
13+
if self.index == 0:
14+
raise StopIteration
15+
self.index = self.index - 1
16+
return self.data[self.index]
17+
18+
r = Reverse('XYZ')
19+
20+
for char in r:
21+
print(char)

0 commit comments

Comments
 (0)