<jupyter_start><jupyter_text>Jupyter Notebook & Python Intro Zuerst navigieren wir mit der Kommandozeile in den Folder, wo wir das Jupyter Notebook abspeichern wollen. Dann gehen wir in unser virtual environment und starten mit "jupyter notebook" unser Notebook auf. Jupyter Notebook ist eine Arbeitsoberfläche, der für Coding-Anfänger sehr einfach zu bedienen ist, denn es lassen sich Code-Teile einzelnen abspielen.  Es gibt zwei Formate der Zellen. Code-Format und sogenanntes Markdown. Letzteres ist ein Textformat, das dem Text möglichst wenige Formatinfos anhängt. Nicht wie Word zum Beispiel. Wenn man grosse Notebooks entwickelt, ist es sehr hilfreich damit zu arbeiten. Zum Beispiel Titel Titel Titel Titel Titel 1. Einmal2. Zweimal3. Doppelt?DasischnureBemerkig,wegemGartehaagvornedra. Oder Aufzählungen, Fetten. Das geht alles mit Markdown. Man kann sogar Tabellen bauen oder Hyper Links setzen. Wie zum Beispiel auf dieses [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet). Hier sind weitere sehr praktische Format. In der Regel benutzten wir Jupyter Notebooks aber nicht, um zu texten, sondern zu coden. Legen wir los. 1. Print und Input2. Datentypen3. Aktionen4. Variablen und Zuordnungen5. If, elif, else6. Lists7. Dictionaries8. Tuples9. Simple Funktionen: len, sort, sorted10. For Loop  Python  Print und Input<jupyter_code>#Mit einem Hashtag vor einer Zeile können wir Code kommentieren, auch das ist sehr wichtig. 
#Immer, wirklich, immer den eigenen Code zu kommentieren. Vor allem am Anfang. 
print('hello world')
#Der Printbefehl druckt einfach alles aus. Nicht wirklich wahnsinnig toll. 
#Doch er ist später sehr nützlich. Vorallem wenn es darum geht Fehler im eigenn Code zu finden. 
#Mit dem Inputbefehl kannst Du Den Nutzer mit dem intergieren. 
input('wie alt bis Du?')<jupyter_output>wie alt bis Du?100<jupyter_text>Datentypen<jupyter_code>#Strings
'Hallo wie geht es Dir'
"12345"
str(124)
str(1230847120934)
#Integer
567
int('1234')
#Floats
4.542323
float(12)
#Dates, eigentlich Strings
#Dates liest er als Strings, aber es ist eine der wichtigsten Sonderform. Ansonsten sind str, int und float.
'15-11-2019'
type("12")<jupyter_output><empty_output><jupyter_text>Aktionen<jupyter_code>#strings addieren mit +
print('Hallo' + 'wie' + 'geht' + 'es')
#Strings addieren mit , gibt Abstände!
print('Hallo','wie','geht','es')
#Alle anderen gängigen: 
#minus -
#Mal *
#geteilt durch /
#Spezial: Modulo. %, geteilt durch und der Rest, der übrigbleibt. Also 13 enthält 2x die fünf und dann den Rest = 3. Modulo rechnet alles, was durch (hier) fünf teiltbar ist und sagt, was dann übrig bleibt. Hier: 3
13 % 5<jupyter_output><empty_output><jupyter_text>Variablen, Vergleiche und Zuordnungen von Variablen<jupyter_code>#Grösser und kleiner als: 
#< >
#Gleich == (wichtig, doppelte Gleichzeichen) vergleicht etwas.
#Denn das einfach *definiert* eine Variable
"Schweiz" == 'reich'
Schweiz = 'reich'
Schweiz == 'reich'
'Schweiz' = 'reich'
1 = 6
a = b
a = 'b'
a == 'b'
a = a<jupyter_output><empty_output><jupyter_text>if - else - (elif)<jupyter_code>elem = int(input('Wie alt bist Du?'))
elem
if elem < 0:
    print('Das ist unmöglich')
else:
    print('Du bist aber alt')
if elem == 12:
    print("Gratuliere zum Duzend!")
#elif macht, dass der Code auch weiter ausgeführt wird, auch wenn es zutrifft.
elem = int(input('Wie alt bist Du?'))

if elem < 0:
    print('Das ist unmöglich')
elif elem < 25:
    print('Du bist aber jung')
else:
    print('Du bist aber alt')<jupyter_output>Wie alt bist Du?44
Du bist aber alt<jupyter_text>Lists<jupyter_code>#Eckige Klammern
[1,2,"eine String dazwischen",3,4,"nun folgt eine Float:",5.23,6,7]
lst = [1,2,3,4,5,6,7]
lst
#Einzelene Elemente - 0 bedeutet das erste Element.
lst[0]
#Ganze Abschnitte "bis vier" in diesem Bsp.
lst[:4]
#Komplexere Schnitte in diesem Bsp. jedes Zweite Element.
lst[::2]
#Append (hinzufügen), Pop (abschneiden - wenn ich leere Klammern verwende, ist default das letzte Element gemeint), etc.
lst.pop()
lst
lst.append(7)
lst.pop()
lst
#Aufpassen mit Befehl: list weil das macht aus etwas eine Liste. Auch aus Strings:
list('hallo wie geht')
#Elegantester Weg, eine Liste zu schreiben. Und ganz wichtig, 
#der Computer beginn immer bei 0.
list(range(10))
list(range(5,-1,-1))<jupyter_output><empty_output><jupyter_text>DictionariesVerwende hier die geschwungene Klammern<jupyter_code>#Komische, geschwungene Klammern
{'Tier': 'Hund', 'Grösse': 124, 'Alter': 10}
dct = {'Tier': 'Hund', 'Grösse': 124, 'Alter': 10}
dct
dct['Grösse']
#List of Dictionaires
dct_lst = [{'Tier': 'Hund', 'Grösse': 124, 'Alter': 10}, {'Tier': 'Katze', 'Grösse': 130, 'Alter': 8}]
dct_lst[0]
dct_lst[0]['Alter']
dct_lst[1]["Alter"]<jupyter_output><empty_output><jupyter_text>TuplesHier sind runde Klammern König.<jupyter_code>tuple(lst)
#Unveränderbar. Also gutes Format, um Sachen abzuspeichern. 
#Aber das wirklich nur der Vollständigkeitshalber.<jupyter_output><empty_output><jupyter_text>Simple Funktionen - len und sortBeachte wie man die aufruft. Nämlich mit runden Klammern<jupyter_code>#len mit Strings (len für length) - zählt einfach die Elemente.
len('hallo wie geht es Dir')
#len mit Lists
len([1,2,3,4,4,5])
#len mit dictionaries
len({'Tier': 'Hund', 'Alter': 345})
#len mit Tuples
len((1,1,1,2,2,1))
#sorted für momentane Sortierung
sorted('hallo wie geht es Dir')
a = 'hallo wie geht es Dir'
sorted(a)
a
#Sort funktioniert allerdings "nur" mit lists
lst = [1, 5, 9, 10, 34, 12, 12, 14]
lst.sort()
lst
dic = {'Tier': 'Hund', 'Alter': 345}
dic.sort()<jupyter_output><empty_output><jupyter_text>For Loop<jupyter_code>lst
for x in lst:
    print(x)
dic = {'Tier': 'Hund', 'Alter': 345}
for key, value in dic.items():
    print(key, value)
#for loop to make new lists
lst
#Nehmen wir einmal an, wir wollen nur die geraden Zahlen in der Liste
new_lst = []
for elem in lst:
    if elem % 2 == 0:
        new_lst.append(elem)
    else:
        continue
new_lst
lst<jupyter_output><empty_output><jupyter_text>For loop with list of dictionaries<jupyter_code>dic_lst = [{'Animal': 'Dog', 'Size': 45}, 
          {'Animal': 'Cat', 'Size': 23},
          {'Animal': 'Bird', 'Size': 121212}]
for dic in dic_lst:
    print(dic)
for dic in dic_lst:
    print(dic['Animal'])
for dic in dic_lst:
    print(dic['Animal'] + ': '+  str(dic['Size']))<jupyter_output>Dog: 45
Cat: 23
Bird: 121212
{'fraction_non_alphanumeric': 0.11689125665935443, 'fraction_numerical': 0.02930115951112504, 'mean_word_length': 5.2886699507389165, 'pattern_counts': {'":': 0, '<': 46, '<?xml version=': 0, '>': 43, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '11', 'dir': 'jupyter-structured-clean-dedup', 'id': '183983', 'license': 'MIT', 'n_tokens_mistral': 2599, 'n_tokens_neox': 2516, 'n_words': 768, 'path': '02 jupyter notebook, python/02 Jupyter Notebook & Python Intro.ipynb', 'repo_name': 'Cairo4/pythonkurs', 'size': '6382'}