Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:daten:processing [2026-05-25 08:24] – [Absolute und relative Pfade] hofgf_informatik:daten:processing [2026-06-01 10:14] (aktuell) – [Aufgabe 7] hof
Zeile 10: Zeile 10:
  
 Finde heraus, bei wie vielen Zeilen Excel oder Google Sheets in die Knie gehen. Finde heraus, bei wie vielen Zeilen Excel oder Google Sheets in die Knie gehen.
 +
 ## Das Dateisystem ## Das Dateisystem
 Alle Dateien sind im Permanentspeicher in einer _hierarchischen Ordnerstruktur_ abgelegt. Mit Python kann die Ordnerstruktur gelesen und manipuliert werden. Damit eine Datei gelesen oder beschrieben werden kann, muss sie zuerst geöffnet werden. Alle Dateien sind im Permanentspeicher in einer _hierarchischen Ordnerstruktur_ abgelegt. Mit Python kann die Ordnerstruktur gelesen und manipuliert werden. Damit eine Datei gelesen oder beschrieben werden kann, muss sie zuerst geöffnet werden.
 +
 ### Absolute und relative Pfade ### Absolute und relative Pfade
 Ein _Dateipfad_ identifiziert eine Datei: Ein _Dateipfad_ identifiziert eine Datei:
Zeile 30: Zeile 32:
  
 Windows versteckt die Erweiterung standardmässig, es empfiehlt sich, [[https://support.microsoft.com/de-de/windows/allgemeine-dateierweiterungen-in-windows-da4a4430-8e76-89c5-59f7-1cdbbc75cb01|sie anzuzeigen]]. Windows versteckt die Erweiterung standardmässig, es empfiehlt sich, [[https://support.microsoft.com/de-de/windows/allgemeine-dateierweiterungen-in-windows-da4a4430-8e76-89c5-59f7-1cdbbc75cb01|sie anzuzeigen]].
 +
 ### Dateioperationen mit Python ### Dateioperationen mit Python
 Mit `os.listdir` können wir die Dateien im momentanen Arbeitsverzeichnis auflisten: Mit `os.listdir` können wir die Dateien im momentanen Arbeitsverzeichnis auflisten:
Zeile 56: Zeile 59:
    * Die Datei (hier `beispiel.txt`) muss sich im Ordner befinden, wo Python ausgeführt wird.    * Die Datei (hier `beispiel.txt`) muss sich im Ordner befinden, wo Python ausgeführt wird.
    * `'r'` bedeutet *read*, dass die Textdatei nur gelesen und nicht verändert wird.    * `'r'` bedeutet *read*, dass die Textdatei nur gelesen und nicht verändert wird.
 +
  
 #### Aufgabe 2 #### Aufgabe 2
  
-Lade die Datei [[https://kantonsschuleromanshorn.sharepoint.com/:f:/s/FSInformatik/Ek-Hi_stH2RMjDa-wQN9jekBMeF_YD6rvhmibDlNglGWxw?e=Y3AX65|gemeinden.csv]] herunter und speichere sie im Ordner, wo du dein Python-Programm abspeicherst. Verwende obigen Python-Code, um herauszufinden, wieviel Zeilen die Datei hat.+Lade die Datei [[https://kantonsschuleromanshorn.sharepoint.com/:f:/s/FSInformatik/Ek-Hi_stH2RMjDa-wQN9jekBMeF_YD6rvhmibDlNglGWxw?e=Y3AX65|gemeinden.csv]] herunter und speichere sie im Ordner, wo du dein Python-Programm abspeicherst. Verwende obigen Python-Code, um herauszufinden, wieviele Zeilen die Datei hat
 + 
 +Alternativ dazu kannst du auch direkt obigen Code modifizieren - die Datei `gemeinden.csv` ist bereits hinterlegt.
  
 ##### Encoding ##### Encoding
-Achtung, Mac-Users: Die Datei verwendet die Latin1-Codierung, einer Erweiterung von [[gf_informatik:verschluesselung:codierung|ASCII]], um auch Umlaute anzeigen zu können. Diese ist in Windows voreingestellt. MacOS hingegen verwendet standardmässig die universelle Unicode (UTF-8) Codierung. Beim Öffnen der Datei kann die Abweichung korrigiert werden:+Achtung, Mac-Users: Die Datei verwendet in Mitteleuropa die Latin1-Codierung, einer Erweiterung von [[gf_informatik:verschluesselung:codierung|ASCII]], um auch Umlaute anzeigen zu können. Diese ist in Windows voreingestellt. MacOS hingegen verwendet standardmässig die universelle Unicode (UTF-8) Codierung. Beim Öffnen der Datei kann die Abweichung korrigiert werden:
  
 <code python> <code python>
Zeile 87: Zeile 93:
 Beschreibe eine Datei mit einigen Zeilen. Es ist ungünstig, mehr als einige zehntausend Zeilen zu schreiben... Beschreibe eine Datei mit einigen Zeilen. Es ist ungünstig, mehr als einige zehntausend Zeilen zu schreiben...
 ## CSV-Format ## CSV-Format
-Die Datei `gemeinden.csv` ist im [[wpde>CSV_(Dateiformat)|Comma-Separated-Values]] Format gespeichert: Die Daten sind ganz ähnlich gespeichert wie in einer Tabelle und können auch mit Excel und Sheets geöffnet werden. Jede Zeile entspricht einer Zeile der Tabelle; die Spalten sind meist mit Kommas voneinander getrennt. Manchmal werden aber auch Semikolons (`;`) oder ein Tabulator (`\t`) als Trennzeichen verwendet.+Die Datei `gemeinden.csv` ist im [[wpde>CSV_(Dateiformat)|Comma-Separated-Values]] Format gespeichert: Die Daten sind ganz ähnlich gespeichert wie in einer Tabelle und können auch mit Excel und Sheets geöffnet werden. Jede Zeile entspricht einer Zeile der Tabelle; die Spalten sind meist mit Kommas voneinander getrennt. Manchmal werden aber auch Semikolons (`;`) oder ein [[wpde>Tabulatorzeichen|Tabulator]] (`\t`) als Trennzeichen verwendet.
  
-Oft werden in der ersten Zeile die Namen der abgespeicherten Werte festgelegt:+Oft werden in der ersten Zeile die Spaltennamen festgelegt:
  
 <code csv> <code csv>
Zeile 103: Zeile 109:
   * `strip()` gibt den selben String zurück, aber ohne Leerschläge oder anderen _Whitespace_ (Zeilenumbrüche...) an beiden Enden:   * `strip()` gibt den selben String zurück, aber ohne Leerschläge oder anderen _Whitespace_ (Zeilenumbrüche...) an beiden Enden:
     * `"  Romans Horn  ".strip()` gibt `"Romans Horn"` zurück.     * `"  Romans Horn  ".strip()` gibt `"Romans Horn"` zurück.
 +
  
 #### Aufgabe 4 #### Aufgabe 4
Zeile 111: Zeile 118:
   * Wieviele Gemeinden gibt es im Kanton Thurgau? Wieviele im Kanton Bern?   * Wieviele Gemeinden gibt es im Kanton Thurgau? Wieviele im Kanton Bern?
  
-<bottom-exercise hidesolution id="count" zip="https://bottom.ch/ksr/2m/data/2m.zip">+<bottom-exercise showsolution id="count" zip="https://bottom.ch/ksr/2m/data/2m.zip">
 <script type="text/x-starter"> <script type="text/x-starter">
 with open('gemeinden.csv', 'r') as infile: with open('gemeinden.csv', 'r') as infile:
Zeile 134: Zeile 141:
 </script> </script>
 </bottom-exercise> </bottom-exercise>
- 
  
 ## Text in Zahlen umwandeln. ## Text in Zahlen umwandeln.
Zeile 149: Zeile 155:
     print(my_number)        # only executes if the above was successful     print(my_number)        # only executes if the above was successful
 except ValueError: except ValueError:
-    pass                    # executed if an exception was thrown+    print("not a number"  # executed if an exception was thrown
 </bottom-editor> </bottom-editor>
- 
 #### Aufgabe 5 #### Aufgabe 5
 Benütze `try...except` um in deinem Code die Bevölkerung und die Fläche der Gemeinden auszulesen. Benütze `try...except` um in deinem Code die Bevölkerung und die Fläche der Gemeinden auszulesen.
Zeile 158: Zeile 163:
    * wie gross ist die Bevölkerung des Kanton Thurgau?    * wie gross ist die Bevölkerung des Kanton Thurgau?
  
-<bottom-exercise hidesolution id="sum-tg" zip="https://bottom.ch/ksr/2m/data/2m.zip">+<bottom-exercise showsolution id="sum-tg" zip="https://bottom.ch/ksr/2m/data/2m.zip">
 <script type="text/x-starter"> <script type="text/x-starter">
 with open('gemeinden.csv', 'r') as infile: with open('gemeinden.csv', 'r') as infile:
Zeile 179: Zeile 184:
 </script> </script>
 </bottom-exercise> </bottom-exercise>
- 
- 
 #### Aufgabe 6 #### Aufgabe 6
 Schreibe Python-Code, um die folgenden Fragen zu beantworten: Schreibe Python-Code, um die folgenden Fragen zu beantworten:
Zeile 190: Zeile 193:
   * kleinste Bevölkerung: Kammersrohr (32 Einwohner)   * kleinste Bevölkerung: Kammersrohr (32 Einwohner)
   * grösste Fläche: Scuol ($438.76 km^2$)   * grösste Fläche: Scuol ($438.76 km^2$)
-  * Einwohner: $8670125$+  * Einwohner: $9050451$
 ++++ ++++
  
-<bottom-exercise id="find-smallest" hidesolution zip="https://bottom.ch/ksr/2m/data/2m.zip" style="max-height:18lh;">+<bottom-exercise id="find-smallest" showsolution zip="https://bottom.ch/ksr/2m/data/2m.zip" style="max-height:18lh;">
 <script type="text/x-starter"> <script type="text/x-starter">
 def find_smallest_population(): def find_smallest_population():
Zeile 221: Zeile 224:
 </bottom-exercise> </bottom-exercise>
  
-<bottom-exercise id="find-largest" hidesolution zip="https://bottom.ch/ksr/2m/data/2m.zip" style="max-height:18lh;">+<bottom-exercise id="find-largest" showsolution zip="https://bottom.ch/ksr/2m/data/2m.zip" style="max-height:18lh;">
 <script type="text/x-starter"> <script type="text/x-starter">
 def find_largest_area(): def find_largest_area():
Zeile 248: Zeile 251:
 </script> </script>
 </bottom-exercise> </bottom-exercise>
- 
 #### Aufgabe 7 #### Aufgabe 7
 Erweitere den Code, um folgende Fragen zu beantworten: Erweitere den Code, um folgende Fragen zu beantworten:
Zeile 256: Zeile 258:
  
  
-<bottom-exercise id="summarize-canton" hidesolution zip="https://bottom.ch/ksr/2m/data/2m.zip" style="max-height:18lh;">+<bottom-exercise id="summarize-canton" showsolution zip="https://bottom.ch/ksr/2m/data/2m.zip" style="max-height:18lh;">
 <script type="text/x-starter"> <script type="text/x-starter">
 def summarize_canton(canton): def summarize_canton(canton):
  • gf_informatik/daten/processing.1779697466.txt.gz
  • Zuletzt geändert: 2026-05-25 08:24
  • von hof