Einführung in objektorientierte Programmierung in Python
George Boorman
Curriculum Manager, DataCamp
a = 1
a / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
1/0
ZeroDivisionError: division by zero
a = [1,2,3]
a[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
a[5]
IndexError: list index out of range
a = 1
a + "Hello"
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
a + "Hello"
TypeError: unsupported operand type(s) for +: /
'int' and 'str'
a = 1
a + b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
a + b
NameError: name 'b' is not defined
try - except - finally:try: print(5 + "a")except TypeError: print("Du kannst keine ganze Zahl zu einem String addieren, aber du kannst sie multiplizieren!")# Mehrere except-Blöcke möglich except AnotherExceptionHere: # Dies ausführen, wenn AnotherExceptionHere passiert# Optionaler finally-Block finally: print(5 * "a")
Du kannst keine ganze Zahl zu einem String addieren, aber du kannst sie multiplizieren!
aaaaa
def make_list_of_ones(length): if length <= 0: # Eigene Meldung, wenn ValueError auftritt # Beendet das Programm und wirft den Fehler raise ValueError("Invalid length!") return [1]*lengthmake_list_of_ones(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
make_list_of_ones(-1)
File "<stdin>", line 3, in make_list_of_ones
raise ValueError("Invalid length!")
ValueError: Invalid length!
BaseException oder ExceptionBaseException
+-- Exception
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- RuntimeError
...
+-- SystemExit
...
Exception oder einer Unterklasse erbenclass BalanceError(Exception): passclass Customer: def __init__(self, name, balance): if balance < 0 : raise BalanceError("Balance has to be non-negative!") else: self.name = name self.balance = balance
cust = Customer("Larry Torres", -100)
Traceback (most recent call last):
File "script.py", line 11, in <module>
cust = Customer("Larry Torres", -100)
File "script.py", line 6, in __init__
raise BalanceError("Balance has to be non-negative!")
BalanceError: Balance has to be non-negative!
cust
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cust
NameError: name 'cust' is not defined
try:
cust = Customer("Larry Torres", -100)
except BalanceError:
cust = Customer("Larry Torres", 0)
Einführung in objektorientierte Programmierung in Python