Python 101 LN 2#

Übungsblatt 2, Punkte: 2

Aufgabe LN2.1: Ein Ergebnis mit dem richtigen Datentyp erzeugen#

gegeben folgende Variablen:

i = 3
j = 5
pi = 3.14

Im folgenden sind einige Rechnungen angegeben. Weisen Sie in den folgenden Zellen an der Stelle ... den Variablen X und Y die Variablen von oben (i, j usw.) so zu, dass das assert keinen Fehler mehr wirft.

Beispiel:

# Aufgabe
X = ...
Y = ...
ergebnis = X // Y
print(ergebnis)
assert ergebnis  == 1
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[2], line 4
      2 X = ...
      3 Y = ...
----> 4 ergebnis = X // Y
      5 print(ergebnis)
      6 assert ergebnis  == 1

TypeError: unsupported operand type(s) for //: 'ellipsis' and 'ellipsis'
X = ...
Y = ...
ergebnis = X // Y
print(ergebnis)
assert ergebnis  == 1 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[61], line 3
      1 X = ...
      2 Y = ...
----> 3 ergebnis = X // Y
      4 print(ergebnis)
      5 assert ergebnis  == 1 

TypeError: unsupported operand type(s) for //: 'ellipsis' and 'ellipsis'
X = ...
Y = ...
ergebnis = X % Y 
print(ergebnis)
assert ergebnis  == 2
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[53], line 3
      1 X = ...
      2 Y = ...
----> 3 ergebnis = X % Y 
      4 print(ergebnis)
      5 assert ergebnis  == 2

TypeError: unsupported operand type(s) for %: 'ellipsis' and 'ellipsis'
X = ...
Y = ...
ergebnis = X / Y
print(ergebnis)
assert ergebnis  == 1.0
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[62], line 3
      1 X = ...
      2 Y = ...
----> 3 ergebnis = X / Y
      4 print(ergebnis)
      5 assert ergebnis  == 1.0

TypeError: unsupported operand type(s) for /: 'ellipsis' and 'ellipsis'

Aufgabe LN2.2: Slicing#

Gegeben sind folgende Listen:

abc = ['a', 'b', 'c']
h =   "Hallo Welt!"
s =   "   sein oder  nicht   sein  "        # chaotische Leerzeichen
q =   [0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ]

Erzeugen Sie auf Basis dieser Listen mit den Mitteln aus unserer vergangenen Woche Freitag eine Rechnung, die keinen Fehler wirft.

Beispiel:

# Aufgabe
#assert "Hallo" == ...

# Lösung
assert "Hallo" == h[0:5]

Jetzt sind Sie dran:

# alle geraden Quadratzahlen
assert [0, 4, 16, 36, 64] == ...
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[107], line 2
      1 # alle geraden Quadratzahlen
----> 2 assert [0, 4, 16, 36, 64] == ...

AssertionError: 
assert 'HloWl!' == ...
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[95], line 1
----> 1 assert 'HloWl!' == ...

AssertionError: 
assert '!tleW ollaH' == ...
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[96], line 1
----> 1 assert '!tleW ollaH' == ...

AssertionError: 
assert ['H', 'a', 'l', 'l', 'o'] == ...   # hier sind 2 äquivalente Lösungen möglich
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[97], line 1
----> 1 assert ['H', 'a', 'l', 'l', 'o'] == ...   # hier sind 2 äquivalente Lösungen möglich

AssertionError: 

2024-10-29: Die folgende Teilaufgabe “sein oder nicht sein” war fehlerhaft gestellt, ist zurückgezogen. So hätte sie sein sollen, bitte LÖSUNG nachvollziehen:

#falsch:
# assert ['sein', 'oder', 'nicht', 'sein', 'Auto?']

#korrekt:
othello = ['sein', 'oder', 'nicht', 'sein', 'Auto?']
# Lösung
"_".join( othello[0:4] )
'sein_oder_nicht_sein'
assert 'sein_oder_nicht_sein' == "_".join( othello[0:4] )

Aufgabe LN2.3: Markdown#

Im folgenden haben wir einen Sceenshot einer Seite.

Aufgabe: Bauen Sie diese Seite mit Markdown nach!

Lernziel: Hier geht es um Markdown-Formatierung, insbesondere Liste, Zitate, Code-Beisiele im Markdown-Text selbst. Damit Sie den Text dieser Seite nicht selbst eintippen müssen, finden Sie die meisten Text-Bestandteile in der folgenden Zelle. Die Aufgabe besteht also darin, untige Zelle mit Markdown zu formatieren, dass sie wie das Bild aussieht.

— BEGINN Abbildung (png) —

Wird das Bild nicht angezeigt? Hier online: https://www.jbusse.de/python-101/_images/python-101-ln2_hallowelt.png

— ENDE Abbildung (png) —

Aufgabe: LN2.3 Name: Meier, Anna MatNr: 1003344

Hallo Welt!

“Hallo Welt” ist das vielleicht bekannteste Programm der Welt:

aus https://en.wikipedia.org/wiki/”Hello,_World!”_program:

the tradition of using the phrase “Hello, World!” as a test message was influenced by an example program in the 1978 book The C Programming Language

aus http://helloworldcollection.de/:

“Hello World” is the first program one usually writes when learning a new programming language.

Es wird verwendet als Beispiel für ein minimales Programm.

Installation

In der virtuellen Maschine dsci-lab https://www.jbusse.de/dsci-lab/ installiert man das Software-Paket hello z.B. mit sudo apt install hello oder mit sudo apt install hello-traditional.

Hello World in verschiedenen Programmiersprachen

Python:

print(“Hello, World!”)

Java, Quelle: https://en.wikipedia.org/wiki/Java_(programming_language)#Hello_world

public class Example {

public static void main(string[] args) {

System.out.println(“Hello World!”); }

}