3. Lektion: Datentypen: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
(Created page with "= Mit welche Arten von Daten kann Python umgehen?= == Ganze Zahlen== *positiv und negativ *beliebige Größe === Übung: === *Wie groß kann eine ganze Zahl werden? ** Start...")
 
(String)
 
(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>

Aktuelle Version vom 25. September 2023, 16:14 Uhr

Mit welche Arten von Daten kann Python umgehen?

Ganze Zahlen

  • positiv und negativ
  • beliebige Größe (theoretisch)
  • int()

Zahlendarstellung:

Dezimal

0
>>> _+1
1
>>> _+1
2
...
9
>>> _+1
10

Hexadezimal (0x, 0X)

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'
>>> 

Binär (0b, 0B)

>>> bin(10)
'0b1010'
>>> 0B1010
10
>>> 

Casting:

  • hex()
  • bin()
    • Es werden nicht die Zahlen umgewandelt, sondern nur ihre Darstellung!
  • int()
    • Wandelt auch eine Textdarstellung in eine Zahl!
>>> 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
>>> 

Übung:

  • 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
  • Zahl mit input() holen und in Integer umwandeln.
    • Prüfe mit type().
>>> type(42)
<class 'int'>
>>> type(3.14)
<class 'float'>
>>> type('Hallo')
<class 'str'>
>>> 
  • Schreibe ein Programm das Zahlen in allen drei Darstellungsarten ausgibt.

Fließkomma Zahlen

  • Punkt zur Trennung von ganzahligen und gebrochenen Teil der Zahl
  • Darstellung in der wissenschaftlichen Schreibweise
>>> 1.735e6
1735000.0
>>> 1.735E6
1735000.0
>>> 

# größere Zahlen werden auch in wissenschaftlicher Schreibweise ausgegeben.
>>> 1.1234e8
1.1234e+08
    • 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.
>>> 1.1234567890
      • Wie viele Stellen werden intern verwendet?
>>> 1.99999999999
      • Wann wird gerundet oder abgeschnitten?
>>> 1.89995
1.89995
>>> 1.899995
  • 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
>>> str(3.14)
'3.14'
>>> ord('a')
97
>>> chr(97)
'a'
>>> 

Ü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

Zurück zu Micropython Kurs 2023 - Teil 1
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite

Diese Seite wurde zuletzt am 25. September 2023 um 16:14 Uhr geändert. Diese Seite wurde bisher 2.159 mal abgerufen.