Routineaufgaben mit Python automatisieren. Al Sweigart

Routineaufgaben mit Python automatisieren - Al Sweigart


Скачать книгу
den vorstehenden Beispielen werden die Funktionen str(), int() und float() aufgerufen und ihnen Werte anderer Datentypen übergeben, aus denen sie Strings, Integer bzw. Fließkommazahlen machen.

      Die Funktion str() ist insbesondere dann praktisch, wenn Sie eine Integer- oder Fließkommazahl haben, die Sie mit einem String verketten wollen. Liegt umgekehrt eine Zahl als Stringwert vor, dann können Sie die Funktion int() anwenden, um diese Zahl in mathematischen Funktionen einsetzen zu können. Das ist beispielsweise bei der Verwendung der Funktion input() wichtig, die stets einen String zurückgibt, auch wenn der Benutzer eine Zahl eingibt. Geben Sie in der interaktiven Shell spam = input() ein. Wenn die Shell auf Ihren Text wartet, schreiben Sie 101. Dabei geschieht Folgendes:

      >>> spam = input()

      101

      >>> spam

      '101'

      In spam ist nicht etwa der Integer 101 gespeichert, sondern der String '101'. Wenn Sie mit dem Wert dieser Variablen nun irgendwelche Berechnungen anstellen wollen, müssen Sie ihn zunächst mit int() in die Integerform umwandeln und diese als neuen Wert in spam speichern.

      >>> spam = int(spam)

      >>> spam

      101

      Jetzt können Sie die Variable spam wie einen Integer verwenden und nicht mehr wie einen String:

      >>> spam * 10 / 5

      202.0

      Wenn Sie int() einen Wert übergeben, der nicht in einen Integer umgewandelt werden kann, zeigt Python eine Fehlermeldung an.

      >>> int('99.99')

      Traceback (most recent call last):

      File "<pyshell#18>", line 1, in <module>

      int('99.99')

      ValueError: invalid literal for int() with base 10: '99.99'

      >>> int('twelve')

      Traceback (most recent call last):

      File "<pyshell#19>", line 1, in <module>

      int('twelve')

      ValueError: invalid literal for int() with base 10: 'twelve'

      Mit der Funktion int() können Sie auch einen Fließkommawert abrunden.

      >>> int(7.7)

      7

      >>> int(7.7) + 1

      8

      In Ihrem ersten Programm werden die Funktionen int() und str() in den letzten drei Zeilen verwendet, um im Code Werte des passenden Datentyps bereitzustellen.

      print('What is your age?') # Fragt nach dem Alter image

      myAge = input()

      print('You will be ' + str(int(myAge) + 1) + ' in a year.')

      Die Variable myAge enthält den von input() zurückgegebenen Wert. Da diese Funktion immer einen String zurückgibt (auch wenn der Benutzer eine Zahl eingegeben hat), müssen Sie den String in myAge mit int(myAge) in einen Integerwert umwandeln, damit Sie 1 addieren können, was in dem Ausdruck int(myAge) + 1 geschieht.

      Das Ergebnis dieser Addition wird wiederum der Funktion str() übergeben: str(int(myAge) + 1). Der daraus resultierende Stringwert wird mit den Strings 'You will be ' und ' in a year' zu einem einzigen, langen Stringwert verkettet, der dann schließlich zur Anzeige an print() übergeben wird.

      Nehmen wir an, der Benutzer gibt als Alter 4 ein. Der String '4' wird in einen Integer umgewandelt, sodass 1 addiert werden kann, was 5 ergibt. Die Funktion str() konvertiert dieses Ergebnis wieder in einen String zurück, sodass er mit dem zweiten String ' in a year' verkettet werden kann, um die endgültige Meldung zu bilden. Die Auswertung läuft wie folgt ab:

image

       Das Verhältnis zwischen Text und Zahlen

      Der Stringwert einer Zahl ist etwas völlig anderes als ihr Integer- oder Fließkommawert. Dagegen können Integer- und Fließkommawerte aber durchaus gleich sein.

      >>> 42 == '42'

      False

      >>> 42 == 42.0

      True

      >>> 42.0 == 0042.000

      True

      Python macht diese Unterscheidung, da Strings Text darstellen, Integer- und Fließkommawerte aber Zahlen.

       Zusammenfassung

      Sie können arithmetische Ausdrücke mit einem Taschenrechner berechnen und Strings in einer Textverarbeitung verketten. Durch Kopieren und Einfügen können Sie sogar auf ganz einfache Weise eine Stringwiederholung erreichen. Ausdrücke, die aus Operatoren, Variablen und Funktionsaufrufen bestehen können, sind dagegen die Grundbausteine von Programmen. Wenn Sie mit diesen Elementen umgehen können, sind Sie in der Lage, Python anzuweisen, große Datenmengen für Sie zu verarbeiten.

      Was Sie sich auf jeden Fall merken sollten, sind die verschiedenen Arten von Operatoren (die arithmetischen Operatoren +, -, *, /, //, % und ** sowie die Stringoperatoren + und *) und die drei in diesem Kapitel vorgestellten Datentypen (Integer, Fließkommazahlen und Strings).

      Sie haben auch schon einige Funktionen kennengelernt. print() kümmert sich um die einfache Textausgabe (auf dem Bildschirm), input() um die Eingabe (von der Tastatur). Die Funktion len() nimmt einen String entgegen und wertet ihn zu einem Integer aus, der die Anzahl der Zeichen in dem String wiedergibt. Mit str(), int() und float() ermitteln Sie die String-, Integer- bzw. Fließkommaversion des übergebenen Wertes.

      Im nächsten Kapitel lernen Sie, wie Sie in Python auf der Grundlage eines Wertes entscheiden, welcher Code ausgeführt, übersprungen oder wiederholt werden soll. Dies wird als Flusssteuerung bezeichnet. Damit können Sie Programme schreiben, die Entscheidungen treffen.

       Wiederholungsfragen

      1 Welche der folgenden Einträge sind Operatoren und welche sind Werte?*'hello'-88.8-/+5

      2 Welcher der folgenden Einträge ist eine Variable und welcher ein String?spam'spam'

      3 Nennen Sie drei Datentypen!

      4 Woraus besteht ein Ausdruck? Was machen alle Ausdrücke?

      5 In diesem Kapitel wurden Zuweisungsanweisungen wie spam = 10 vorgestellt. Was ist der Unterschied zwischen einem Ausdruck und einer Anweisung?

      6 Welchen Wert enthält die Variable bacon, nachdem der folgende Code ausgeführt worden ist?bacon = 20bacon + 1

      7 Wozu werden die beiden folgenden Ausdrücke ausgewertet?'spam' + 'spamspam''spam' * 3

      8 Warum ist eggs ein gültiger Variablenname, 100 dagegen nicht?

      9 Mit welchen drei Funktionen können Sie die Integer-, Fließkomma- oder Stringversion eines Wertes ermitteln?

      10 Warum ruft der folgende Ausdruck eine Fehlermeldung hervor? Wie können Sie ihn korrigieren?'I have eaten ' + 99 + ' burritos.'

      Zusatzpunkt: Suchen Sie online nach der Python-Dokumentation


Скачать книгу