|
|
(54 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| = Mit welche Arten von Daten kann Python umgehen?= | | = Mit welche Arten von Daten kann Python umgehen?= |
| == Ganze Zahlen== | | == Ganze Zahlen== |
− | *positiv und negativ | + | * positiv und negativ |
− | *beliebige Größe | + | * beliebige Größe (theoretisch) |
| + | * int() |
| + | === Zahlendarstellung:=== |
| + | ==== Dezimal==== |
| + | <pre> |
| + | 0 |
| + | >>> _+1 |
| + | 1 |
| + | >>> _+1 |
| + | 2 |
| + | ... |
| + | 9 |
| + | >>> _+1 |
| + | 10 |
| + | </pre> |
| + | ==== Hexadezimal (0x, 0X)==== |
| + | <pre> |
| + | 10 |
| + | >>> hex(_) |
| + | '0xa' |
| + | >>> _+1 |
| + | Traceback (most recent call last): |
| + | File "<stdin>", line 1, in <module> |
| + | TypeError: can't convert 'int' object to str implicitly |
| + | >>> 0xa |
| + | 10 |
| + | >>> |
| + | |
| + | >>> 0xa + 1 |
| + | 11 |
| + | >>> hex(0xa + 1) |
| + | '0xb' |
| + | >>> |
| + | </pre> |
| + | ==== Binär (0b, 0B)==== |
| + | <pre> |
| + | >>> bin(10) |
| + | '0b1010' |
| + | >>> 0B1010 |
| + | 10 |
| + | >>> |
| + | </pre> |
| + | ==== Casting:==== |
| + | * hex() |
| + | * bin() |
| + | ** '''Es werden nicht die Zahlen umgewandelt, sondern nur ihre Darstellung!''' |
| + | * int() |
| + | ** '''Wandelt auch eine Textdarstellung in eine Zahl!''' |
| + | <pre> |
| + | >>> int(10) |
| + | 10 |
| + | >>> int(10.0) |
| + | 10 |
| + | >>> int('10.0') |
| + | Traceback (most recent call last): |
| + | File "<stdin>", line 1, in <module> |
| + | ValueError: invalid syntax for integer with base 10 |
| + | >>> int('10') |
| + | 10 |
| + | >>> |
| + | </pre> |
| | | |
| === Übung: === | | === Übung: === |
− | *Wie groß kann eine ganze Zahl werden? | + | * Dezimalzahlen in Hexadezimalzahlen und Binärzahlen umwandeln. |
| + | * Hexadezimalzahlen in Dezimalzahlen und Binärzahlen umwandeln. |
| + | * Binärzahlen in Dezimalzahlen und Hexadezimalzahlen umwandeln. |
| + | * Wie groß kann eine ganze Zahl werden? |
| ** Start mit 10**100 | | ** Start mit 10**100 |
| + | * Zahl mit input() holen und in Integer umwandeln. |
| + | ** Prüfe mit type(). |
| + | <pre> |
| + | >>> type(42) |
| + | <class 'int'> |
| + | >>> type(3.14) |
| + | <class 'float'> |
| + | >>> type('Hallo') |
| + | <class 'str'> |
| + | >>> |
| + | </pre> |
| + | * Schreibe ein Programm das Zahlen in allen drei Darstellungsarten ausgibt. |
| | | |
| == Fließkomma Zahlen== | | == Fließkomma Zahlen== |
| + | * Punkt zur Trennung von ganzahligen und gebrochenen Teil der Zahl |
| + | * Darstellung in der wissenschaftlichen Schreibweise |
| + | <pre> |
| + | >>> 1.735e6 |
| + | 1735000.0 |
| + | >>> 1.735E6 |
| + | 1735000.0 |
| + | >>> |
| + | |
| + | # größere Zahlen werden auch in wissenschaftlicher Schreibweise ausgegeben. |
| + | >>> 1.1234e8 |
| + | 1.1234e+08 |
| + | </pre> |
| + | ** Mantisse -> Float mit nur einer Stelle vor dem Komma |
| + | ** Exponent -> positiver oder negativer Integer |
| + | * Die Größe ist begrenzt |
| + | ** Ist für Micropython nicht definiert. |
| + | *** Eigene Experimente: |
| + | **** Mantisse: 8-stellig |
| + | **** Exponent: +38 ... -44 |
| + | ==== Casting:==== |
| + | ** float() |
| + | |
| + | === Übung:=== |
| + | * Ganze Zahlen in Fließkommazahlen umwandeln und umgekehrt. |
| + | * Wie viele Stellen werden maximal ausgegeben? |
| + | ** Zahlen mit immer mehr Stellen eingeben und die Ausgabe in der REPL beobachten. |
| + | <pre> |
| + | >>> 1.1234567890 |
| + | </pre> |
| + | *** Wie viele Stellen werden intern verwendet? |
| + | <pre> |
| + | >>> 1.99999999999 |
| + | </pre> |
| + | *** Wann wird gerundet oder abgeschnitten? |
| + | <pre> |
| + | >>> 1.89995 |
| + | 1.89995 |
| + | >>> 1.899995 |
| + | </pre> |
| + | * Fließkommazahlen werden von Micropython in normaler oder in wissenschaftlicher Darstellung ausgegben. |
| + | ** Wann erfolgt die Umschaltung? |
| + | |
| + | == Wahrheitswert / Boolsche Werte== |
| + | * In Programmen wird häufig eine Entscheidung erforderlich. |
| + | ** Das Ergebnis kann dann Wahr oder Falsch sein. |
| + | *** '''True''' = Wahr oder eine Zahl !=0 |
| + | *** '''False''' = Falsch oder 0 |
| + | ==== Casting:==== |
| + | bool() |
| + | |
| + | === Übung=== |
| + | * Testet welche Zahlen '''True''' und welche '''False''' zurückgeben. |
| + | * Wie verhält es sich mit Texten? |
| + | |
| + | == None== |
| + | * Ist nichts - eine noch nicht verwendete Variable |
| + | * None != leere Variable |
| + | * Verwendung: |
| + | ** Variable deklarieren ohne Wertzuweisung |
| + | |
| + | == String== |
| + | * String ist sowohl ein Datentyp als auch eine Datenstruktur. |
| + | * Ein String ist eine Zeichenkette, Also die Aneinanderreihung von Zeichen. Also Worte oder Sätze oder auch ganze Texte. |
| + | * Auch ein einzelnes Zeichen ist in Python ein String. |
| + | * Micropython benutzt UNICODE. UTF8. |
| + | ** Zeichengröße: 8-Bit |
| + | ** 0 ... 127 entspricht dem ASCII-Zeichensatz |
| + | ** >127 ist eine Auswahl aus nationalen Sonderzeichen |
| + | * Strings werden in einfache oder doppelte Anführungszeichen gesetzt. |
| + | ** Das ermöglicht Anführungszeichen in einem String auszugeben. |
| + | ** Strings dürfen nicht auf mehrere Zeilen verteilt werden. |
| + | * Es gibt auch Strings mit drei einfachen oder doppelten Anführungszeichen. |
| + | ** In diesen werden Zeilenumbrüche übernommen. |
| + | |
| + | ==== Casting:==== |
| + | * str() -> wandelt Zahl in Text |
| + | * ord() -> wandelt einen Buchstaben in den UTF-8 Code |
| + | * chr() -> wandelt UTF-8 Code Buchstaben |
| + | <pre> |
| + | >>> str(3.14) |
| + | '3.14' |
| + | >>> ord('a') |
| + | 97 |
| + | >>> chr(97) |
| + | 'a' |
| + | >>> |
| + | </pre> |
| + | |
| + | === Übung=== |
| + | * Erstelle verschiedene Stringvariablen. |
| + | ** Gebe Anführungszeichen im Text aus. |
| + | * Zahlen in Strings Umwandeln und umgekehrt. |
| + | * Erstelle Strings mit 3 Anführungszeichen und teste wie sich Zeilenumbrüche darin verhalten. |
| + | * Versuche den UTF-8 Code verschiedener nicht ASCII-Zeichen zu ermitteln. |
| + | * Versuche die Zeichen für verschiedene Codes <256 anzuzeigen. |
| + | |
| + | == Komplexe Zahlen== |
| + | Micropython kann auch mit komplexen Zahlen rechnen. Das werden wir aber nicht besprechen. |
| + | |
| + | == Zu welchem Typ gehört eine Variable== |
| + | * Da Variableninhalte von unterschiedlichen Typen sein können, bietet Python die Möglichkeit den Typ zu ermitteln. |
| + | ** type() |
| + | |
| + | === Übung=== |
| + | * Erzeuge verschiedene Variablen und ermittle deren Typ. |
| + | * Ändere den Datentyp einer Variablen und teste dann. |
| + | |
| + | == Was haben wir gelernt?== |
| + | * Grundlagen der wichtigsten Datentypen. |
| + | |
| + | == Navigation== |
| + | [[Micropython_Kurs_2023_-_Teil_1|Zurück zu Micropython Kurs 2023 - Teil 1]]<br> |
| + | [[Micropython Kurs 2023|Zurück zur "Micropython Kurs 2023" Startseite]]<br> |
| + | [[Programmieren|Zurück zur Programmieren Startseite]]<br> |
| + | [[Attraktor_Wiki|Zurück zur Wiki Startseite]]<br> |
Micropython kann auch mit komplexen Zahlen rechnen. Das werden wir aber nicht besprechen.