Java–Python: Summierer
25.10 2009 19:28
Da dachte man, man hätte Java hinter sich gebracht und BÄM kommt es wieder und bringt sein komischen Kumpel Python gleich mit. Beide gut drauf, beide noch ziemlich jung und sturmfreie Bude im eclipse. Viel Zeit und willige Variablen, was soll man sagen ... Riesen Sauerei und wir müssen es bereinigen.
Die Aufgabenstellung zum Summierer sieht vor, dass Zahlen-Eingaben von der Tastatur eingelesen und nacheinander auf addiert werden sollen...
Java
Selbst in Java wären es nicht viele Zeilen Code, doch wollen wir zumindest eine mehrstellige Zahl aus der Konsole einlesen können die der Summierer verwenden soll, dann sollte man dem Programm zumindest ein paar Funktionen "spendieren" die das Einlesen von der Tastatur vereinfachen. In unserem Fall verwenden wir dazu drei imports.
import
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
Mit den dadurch gewonnenen Funktionalitäten lässt sich ein BufferedReader erzeugen, sodass wir insgesamt drei Variablen haben, auf die wir in unserem Programm zugreifen und mit arbeiten können.
double ergebnis;
String input;
BufferedReader read;
Die "main" missbrauchen wir nun um eine Endlosschleife des Tastaturlesens aufzurufen, in der wir "versuchen" aka try die Eingabe von einem String in eine Zahl vom Typ float zu verwandeln, um sie daraufhin unserem Gesamtwert ergebnis hinzuzufügen. Sollten wir damit keinen Erfolg haben (weil allem Anschein nach die Eingabe fehlerhaft war, so soll ein entsprechender Fehlertext erscheinen.
main
while(true){
input=read.readLine();
try{
ergebnis+=Double.parseDouble(input);
}
catch(java.lang.NumberFormatException e){
System.err.println("Falsche Eingabe "+input+" wird ignoriert.");
}
System.out.println("Aktuelles Ergebnis: "+ergebnis);
}
"One down, one to go."
Python
Die Schwärmereien haben einen Grund und der "Zeit" Kurs würde sich wahrscheinlich auch freuen, denn Reduktion ist das A&O von Python, zumindest wenn man sich den dazugehörigen Quellcode des Programms einmal ansieht.
ergebnis = 0
while True:
try:
eingabe=input()
ergebnis += eingabe
print ergebnis
except:
sys.stderr.write("Falsche Eingabe wird ignoriert.")
Alles in Allem sieht ja Python gar nicht so übel aus, aber Java>Python und wer dabei bedenken haben sollte, soll erst einmal eine lustigen/humorvollen Joke über Python finden, sonst gibts da gar nichts zu Diskutieren...
Kommentare
- Noch keine Kommentare vorhanden.
