Projekte: Python für Fortgeschrittene

Projekte aus Lernquellen

  • Geld aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.288 (OOP)
  • Abrechnung aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.294 (OOP)
  • Farbtester aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.298 (OOP)
  • Zahlenregen aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.301 (OOP)
  • CodeCademy: A Sorted Tale (Sortierung von Daten)
  • replit – online-Plattform mit Problemlösungen etc.
  • CodeCademy: Pokémon (OOP)
  • CodeCademy: Adopt a Pet (Web-Anwendung, Flask)
  • Turm von Hanoi aus dem Buch „Der Weg zum Profi“ (A. Sweigart) , S.288-301)
  • Vier gewinnt aus dem Buch „Der Weg zum Profi“ (A. Sweigart) , S. 301-306)
  • Plagiarism Checker (PDF zum herunterladen)
  • Wie spät ist es? (I) aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.371 (Webseiten)
  • Wie spät ist es? (II) aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.383 (Webseiten)
  • Umfrage aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.386 (Webseiten)
  • Wie spät ist es? (III) aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.393 (Webseiten)
  • Wie spät ist es? (IV) aus dem Buch „Python3 für Ausbildung“ (M.Weigend), S.320 (Webseiten)

Fragen zu Objektorientierte Programmierung

Fragen zu Objektorientierte Programmierung

  1. Was bedeutet Objektorientierte Programmierung?
  2. Auf welchen Prinzipien ist OOP basiert?
  3. Was sind Klassen und Objekte?
  4. Wie wird eine Klasse definiert und wie wird sie in der UML dargestellt?
  5. Was ist Konstruktor?
  6. Wie werden private und public Instanzvariablen erzeugt?
  7. Was sind Getter und Setter?
  8. Wie werden Objekte einer Klasse erzeugen?
  9. Wie kann man auf Attribute einer Klasse Zugreifen?
  10. Wie kann man Methoden einer Klasse aufrufen?
  11. Wie können Objekte mit variablen Anfangswerten erzeugt?
  12. Was sind Metaphern in Bezug zur OOP?
  13. Was sind Klassenattribute?
  14. Wie wird Polymorphie in Python realisiert?
  15. Wie ist die Relation zwischen Typ und Klasse?
  16. Was sind in Python Magische Methoden?
  17. Wie wird in Python die Vererbung realisiert und wie sie wird in der UML dargestellt?
  18. Was ist eine Hash-Funktion?
  19. Wie wird Mehrfachvererbung realisiert?
  20. Wa bedeutet Operator Overloading?
  21. Was sind ed-hoc-Objekte?

1. Square Numbers and Return Their Sum

In this challenge, you need to implement a method that squares passing variables and returns their sum.
Problem statement
Implement a class Point that has three properties and a method. All these attributes (properties and methods) should be public. This problem can be broken down into two tasks:
Task 1
Implement a constructor to initialize the values of three properties: x, y, and z.
Task 2
Implement a method, sqSum(), in the Point class which squares x, y, and z and returns their sum.
Sample properties: 1, 3, 5
Sample method output: 35
Coding exercise
First, take a close look at the slides above and then design a similar step-by-step algorithm before jumping to its implementation.

1
2
3
4
5
6
7
8
class Point:
def __init__(self):
self.x = x
self.y = y
self.z = z

def sqSum(self):
pass
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Point:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z

def sqSum(self):
a = self.x * self.x
b = self.y * self.y
c = self.z * self.z
return(a + b + c)

obj1 = Point(4, 5, 6)
print(obj1.sqSum())

Explanation
Task 1:
We passed parameters and assigned them to their corresponding properties.
Task 2:
We calculated the squares of the properties by multiplying them with itself and stored them in a variable.
Then, we added all the squared numbers.
Finally, we returned their sum

2. Calculate the Student’s Performance

In this challenge, you need to implement a method that squares passing variables and returns their sum.
Problem statement
In this exercise, you have to calculate a student’s total marks using the concept of Classes.
Problem statement
Implement a class – Student – that has four properties and two methods. All these attributes (properties and methods) should be public. This problem can be broken down into three tasks.
Task 1
Implement a constructor to initialize the values of four properties: name, phy, chem, and bio.
Task 2
Implement a method – totalObtained – in the Student class that calculates total marks of a student.
Sample properties:

1
2
3
4
name = Mark
phy  = 80
chem = 90
bio  = 40

Sample method output: obj1.Total()=210
Task 3
Using the totalObtained method, implement another method, percentage, in the Student class that calculates the percentage of students marks. Assume that the total marks of each subject are 100. The combined marks of three subjects are 300.
The formula for calculating the percentage:

Sample input:

1
2
3
phy  = 80
chem = 90
bio  = 40

Sample output: 70
Coding exercise
Design a step-by-step algorithm before jumping to the implementation.

1
2
3
4
5
6
7
8
9
class Student:
def __init__(self):
pass

def totalObtained(self):
pass

def percentage(self):
pass
Solution
1
2
3
4
5
6
7
8
9
10
11
12
class Student:
def __init__(self, name, phy, chem, bio):
self.name = name
self.phy = phy
self.chem = chem
self.bio = bio

def totalObtained(self):
return(self.phy + self.chem + self.bio)

def percentage(self):
return((self.totalObtained() / 300) * 100)

Explanation
In line 3 – 6, we have initialized name, phy, chem, and bio as public properties in the class initializer.
In line 9, we have then defined the totalObtained() method. In this method, we added individual marks of all the subjects and returned the sum.
At last in line 12, we defined percentage(). In this method, we called totalObtained() and used its value to calculate the percentage.
300
300
is the total number of marks for a student.

3. Implement a Calculator Class

In this exercise, you have to implement a calculator that can perform addition, subtraction, multiplication, and division.
Problem statement
Write a Python class called Calculator by completing the tasks below:
Task 1
Initializer:
Implement an initializer to initialize the values of num1 and num2
Properties:
num1
num2
Task 2
Methods:
add() is a method that returns the sum of num1 and num2.
subtract() is a method that returns the subtraction of num1 from num2.
multiply() is a method that returns the product of num1 and num2.
divide() is a method that returns the division of num2 by num1.
Input:
Pass numbers (integers or floats) in the initializer.
Output:
addition, subtraction, division, and multiplication
Sample input:

1
2
3
4
5
obj = Calculator(10, 94);
obj.add()
obj.subtract()
obj.multiply()
obj.divide()

Sample method output:

1
2
3
4
104
84
940
9.4

Coding exercise
Design a step-by-step algorithm before jumping to the implementation.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Calculator:
def __init__(self):
pass

def add(self):
pass

def subtract(self):
pass

def multiply(self):
pass

def divide(self):
pass
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Calculator:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2

def add(self):
return (self.num2 + self.num1)

def subtract(self):
return (self.num2 - self.num1)

def multiply(self):
return (self.num2 * self.num1)

def divide(self):
return (self.num2 / self.num1)

demo1 = Calculator(10, 94)
print("Addition:", demo1.add())
print("Subtraction:", demo1.subtract())
print("Mutliplication:", demo1.multiply())
print("Division:", demo1.divide())

Explanation
We have implemented the Calculator class, which has the two properties, num1 and num2.
In the initializer, at line 3 – 4, we have initialized both properties, num1 and num2.
In line 7, we implemented add(), a method that returns the sum, num1 + num2, of both properties.
In line 10, we implemented subtract(), a method that returns the subtraction of num1 from num2.
In line 13, we implemented multiply(), a method that returns the product, num2 x num1, of both properties.
In line 16, we implemented divide(), a method that returns the division of num2 by num1.