<jupyter_start><jupyter_text>Python EinführungHier wollen Python kennen lernen.Dies ist eine Markdown-Zelle, in der man ein Kontext für den Code gebene kann. Ich kann Text *kursiv*, **fett** aber auch ***fett-kursiv*** schreiben. Und vieles mehr.  Erste Anweisung<jupyter_code>print("Hello world!")<jupyter_output>Hello world!<jupyter_text>Kommentare<jupyter_code># Diest ist eine Kommentar
print("Something")<jupyter_output>Something<jupyter_text>Einfache Datentypen<jupyter_code># Variablen und Wertezuweisung (Value-Assignment)
name = "Lovelace"
print(name)
# String - Zeichenkette
first_name = "Ada"
print(name)
# Integer - Ganzzahlen
age = 73
print(age)
# Float - Gleitkommazahl
size = 1.7123
print(size)
# Boolean - Boolscher Wert
knows_math = True
print(knows_math)
likes_gardening = False
print(likes_gardening)
# Typen anzeigen lassen
type(name)
# Der letzte Rückgabewert wird von Jupyter Notebook ausgeben
name
age
# Wenn man andere Werte ausgebene haben möchte muss man "print" nutzen
print(name)
print(age)<jupyter_output>Lovelace
73<jupyter_text>Operatoren<jupyter_code># Additiona von Integers
5 + 5
# Multiplikation
age * 100
# Verkettung von Strings
name + name
# String werde x-mal aneinandergekettet
name * 10
# Funktioniert nicht - der +-Operator kann nicht auf die Kombination 
# von Typen angewandt werden.
name + 10
name + "10" # hier ist "10" ein String
# Division
size/age
type(size)
number_of_articles = "50"
# Geht nicht
number_of_articles / 10
# String mit int() erst in Integer umwandeln
int(number_of_articles) / 10<jupyter_output><empty_output><jupyter_text>Funktionen und Methoden nutzen<jupyter_code>len(name)
name.upper()
# Der String selber wird nicht verändert
name
name.count("e")
# Methode mit zwei Argmenten
name.replace("lace", " is everywhere")<jupyter_output><empty_output><jupyter_text>Listen und Dictionaries<jupyter_code># Liste
names = ["Lovelace", "Darwin", "Curie", "Hawking"]
names[0]
names[1]
names[2]
names[-1]
names[0:3]
# Slicing
names[:2]
# Slicing
names[2:]
authors_and_birth_years = {"Lovelace": 1815, 
                           "Darwin": 1809 ,
                           "Noether": 1882 ,
                           "Hawking": 1942}
authors_and_birth_years["Darwin"]
# Key ist nicht definiert => Fehler 
authors_and_birth_years["DARWIN"]<jupyter_output><empty_output><jupyter_text>for-Schleifen<jupyter_code>for person in names:
    print(person + " did awesome stuff.")<jupyter_output>Lovelace did awesome stuff.
Darwin did awesome stuff.
Curie did awesome stuff.
Hawking did awesome stuff.<jupyter_text>Bedingte Anweisungen (Conditionals)<jupyter_code>temp = 20
if temp > 15:
    print("It's warm")
20 > 15
20 > 70
temp = 10
if temp > 15:
    print("It's warm")
temp = 10
if temp > 15:
    print("It's warm")   
else:
    print("It's cold")
temp = 15
if temp >= 25:
    print("It's hot") 
elif temp >= 15:
    print("It's warm")
else:
    print("It's cold")
# show the path (for later use with the git lesson) of folder that contains the current jupyter-notebook
import os
print(os.path.abspath(os.getcwd()))<jupyter_output>/home/till/Documents/Bits_and_pieces_for_the_carpentries_workshops/python
{'fraction_non_alphanumeric': 0.10801393728222997, 'fraction_numerical': 0.024707000316756416, 'mean_word_length': 5.108317214700193, 'pattern_counts': {'":': 4, '<': 28, '<?xml version=': 0, '>': 36, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '631306', 'license': 'CC-BY-4.0', 'n_tokens_mistral': 1252, 'n_tokens_neox': 1154, 'n_words': 297, 'path': 'jupyter_notebooks/Python_Basics_de.ipynb', 'repo_name': 'zbmed/2021-06-07-fdm_nrw-online', 'size': '3157'}