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 [2023-05-31 12:12] – [Aufgabe 4] hofgf_informatik:daten:processing [2025-06-06 08:29] (aktuell) – [Aufgabe 6] hof
Zeile 1: Zeile 1:
 # Data Processing in Python # Data Processing in Python
 +<html><script type="module" src="https://bottom.ch/ksr/ed/bottom-editor.js"></script></html>
  
 {{ :gf_informatik:daten:dataprocessing.pptx | Präsentation}} {{ :gf_informatik:daten:dataprocessing.pptx | Präsentation}}
Zeile 6: Zeile 7:
  
 Wieviel ist viel? 1000?  Wieviel ist viel? 1000? 
 +
 #### Aufgabe 1 #### Aufgabe 1
  
Zeile 25: Zeile 27:
  
    * Wenn Dateien gelesen oder geschrieben werden, müssen sie beim Betriebssystem reserviert werden. Mit `with` wird sichergestellt, dass die Datei nicht offen bleibt sondern nach dem Lesevorgang wieder geschlossen wird.    * Wenn Dateien gelesen oder geschrieben werden, müssen sie beim Betriebssystem reserviert werden. Mit `with` wird sichergestellt, dass die Datei nicht offen bleibt sondern nach dem Lesevorgang wieder geschlossen wird.
-   * Die Datei (hier 'dateiname.txt') muss sich im gleichen Ordner befinden wie die Python-Datei.+   * Die Datei (hier 'dateiname.txt') muss sich im Ordner befinden, wo Python ausgeführt wird. 
 +   * Der Typ einer Datei wird über die Dateierweiterung (`.txt`, en. _extension_) bestimmt. Windows versteckt die Endungen standardmässig, es ist empfehlenswert, [[https://support.microsoft.com/de-de/windows/allgemeine-dateierweiterungen-in-windows-da4a4430-8e76-89c5-59f7-1cdbbc75cb01|diese anzuzeigen]].
    * `'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, wieviel Zeilen die Datei hat. 
-.+ 
 +##### Encoding 
 +Achtung, Mac-Users: Die Datei verwendet die Latin1-Codierung, einer Erweiterung von [[gf_informatik:verschluesselung:codierung|ASCII]], um auch Umlaute anzeigen zu könnenDiese 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> 
 +# Specify text encoding when opening a file. 
 +with open('dateiname.txt', 'r', encoding='latin1') as infile: 
 +</code> 
 ## Dateien schreiben ## Dateien schreiben
 Schreiben funktioniert ganz ähnlich wie lesen, aber als zweites Argument muss `'w'` (für _write_) angegeben werden: Schreiben funktioniert ganz ähnlich wie lesen, aber als zweites Argument muss `'w'` (für _write_) angegeben werden:
Zeile 64: Zeile 75:
   * `split(char)` erzeugt aus einem String eine Liste von Werten, die mit dem angegebenen Trennzeichen abgetrennt sind:   * `split(char)` erzeugt aus einem String eine Liste von Werten, die mit dem angegebenen Trennzeichen abgetrennt sind:
     * `"Aarau,AG,21726,12.36".split(',')` erzeugt die Liste `["Aarau","AG","21726","12.36"]`     * `"Aarau,AG,21726,12.36".split(',')` erzeugt die Liste `["Aarau","AG","21726","12.36"]`
-  * `strip()` gibt den selben String zurück, aber ohne Leerschläge an beiden Enden.+  * `strip()` gibt den selben String zurück, aber ohne Leerschläge an beiden Enden
 +    * `"  Romans Horn  ".strip()` gibt `"Romans Horn"` zurück. 
 + 
 #### Aufgabe 4 #### Aufgabe 4
  
Zeile 74: Zeile 88:
 <nodisp 1> <nodisp 1>
 ++++Lösung:| ++++Lösung:|
-<code python> +<html><bottom-editor zip='https://bottom.ch/ksr/py/files/2m.zip'>with open('gemeinden.csv', 'r') as infile:
-with open('gemeinden.csv', 'r') as infile:+
     be = 0     be = 0
     tg = 0     tg = 0
Zeile 87: Zeile 100:
     print("Bern", be)     print("Bern", be)
     print("Thurgau", tg)     print("Thurgau", tg)
-</code>+</bottom-editor></html> 
 ++++ ++++
 </nodisp> </nodisp>
Zeile 100: Zeile 114:
 Allerdings funktioniert das nur, wenn der String auch wirklich eine Zahl darstellt. Sonst wird eine *Exception* geworfen; wir können sie mit `try...except` auffangen: Allerdings funktioniert das nur, wenn der String auch wirklich eine Zahl darstellt. Sonst wird eine *Exception* geworfen; wir können sie mit `try...except` auffangen:
  
-<code python>+<html><bottom-editor>
 try: try:
     my_number = int("abc" # may throw an exception     my_number = int("abc" # may throw an exception
Zeile 106: Zeile 120:
 except ValueError: except ValueError:
     pass                    # executed if an exception was thrown     pass                    # executed if an exception was thrown
-</code>+</bottom-editor></html>
  
 #### Aufgabe 5 #### Aufgabe 5
Zeile 125: Zeile 139:
 ++++ ++++
  
-<nodisp 2>+<nodisp 1>
 ++++Code:| ++++Code:|
-<code python>+<html><bottom-editor zip='https://bottom.ch/ksr/py/files/2m.zip'>
 def find_smallest_population(): def find_smallest_population():
     with open('gemeinden.csv') as towns:     with open('gemeinden.csv') as towns:
Zeile 147: Zeile 161:
  
 print("Smallest town: ", find_smallest_population()) print("Smallest town: ", find_smallest_population())
 +</bottom-editor></html>
 +++++
 +</nodisp>
  
 +<nodisp 1>
 +++++Code:|
 +<html><bottom-editor zip='https://bottom.ch/ksr/py/files/2m.zip'>
 def find_largest_area(): def find_largest_area():
     with open('gemeinden.csv') as towns:     with open('gemeinden.csv') as towns:
Zeile 167: Zeile 187:
  
 print("Largest area", find_largest_area()) print("Largest area", find_largest_area())
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
Zeile 177: Zeile 197:
   * Wieviele Gemeinden hat der Kanton Glarus?   * Wieviele Gemeinden hat der Kanton Glarus?
  
-<nodisp 2>+<nodisp 1>
 ++++Code:| ++++Code:|
-<code python>+<html><bottom-editor zip='https://bottom.ch/ksr/py/files/2m.zip'>
 def summarize_canton(canton): def summarize_canton(canton):
     with open('gemeinden.csv', 'r') as infile:     with open('gemeinden.csv', 'r') as infile:
Zeile 233: Zeile 253:
 summarize_canton('TI') summarize_canton('TI')
 summarize_canton('GL') summarize_canton('GL')
-</code>+</bottom-editor></html>
 ++++ ++++
 </nodisp> </nodisp>
  • gf_informatik/daten/processing.1685535167.txt.gz
  • Zuletzt geändert: 2023-05-31 12:12
  • von hof