beleidigungsmaschine

Manchmal ist das was einem ein Programm so ausgibt so gehaltvoll wie eine Reiswaffel. Es wird Zeit zurückzuschlagen!

Frohlocket, denn heute programmieren wir eine simple Beleidigungsmaschine. Frei nach einem Comic von Foxitalic. Wir lernen dabei drei verschiedene Methoden kennen um einen Input vom User zu generieren.

#beleidigungsmaschine_1.py

print "\tBELEIDIGUNGSMASCHINE"

print "Hi, what's your name?"
name = raw_input()
print "Pffffhahaha, okay, alright, %s!\n" % name
print "So errr how are you doing, %s?" % name
how = raw_input()
print "Hihihi, I think your Mum is %s!" % how

Ausführen, aufregen, Computer zu Kleinholz schlagen. So einfach ist das! Die Beleidigungsmaschine gibt erst die Frage (auch „prompt“ genannt) nach dem Namen aus. Im nächsten Schritt gibt der oder die Userin eine Antwort ein. Das wird vom Programm mit raw_input „eingelesen“ und die Variable name erhält den string, der zurückgegeben wird. In der nächste Zeile kann ich diesen string gleich einarbeiten. Und so weiter. Das geht allerdings auch etwas eleganter:

#beleidigungsmaschine_2.py 

print "\tBELEIDIGUNGSMASCHINE"
name = raw_input("Hi, what's your name?\n")
how = raw_input("Pfffhaha. Yeah right. So errrr how are you doing?\n")
print "So, apparently your name is %s, and you know what else? I think your Mum is really %s!\n" % (    
    name, how)

Hier kannst du also die Frage an die Userin direkt in die Klammern schreiben. Die Frage wird gestellt und die Antwort als String an die Variable gegeben.
Es geht aber auch noch ein bisschen eleganter! Wer beleidigen will, muss schick aussehen.Oder zumindest ein Skript schreiben können, das Argumente annimmt:

#beleidigungsmaschine_3.py

print "\tBELEIDIGUNGSMASCHINE"

from sys import argv       #1

script, name, how = argv   #2

print "Hi douchebag, I heard your name is", name
print "And somebody told me you're feeling", how
print "You know, who's also", how, "?"
print "Your mom, huehuehue!"

Um das Programm auszuführen reicht es allerdings nicht, einfach nur das übliche python beleidigungsmaschine_3.py in die Konsole zu tippen. In diesem Falle werden gleich beim Aufrufen des Programms die „Argumente“ für die Variablen mitgeliefert. Ich gebe z.B.

python beleidigungsmaschine_3.py Fiona, fine

ein. Das Programm gibt mir

 BELEIDIGUNGSMASCHINE
Hi douchebag, I heard your name is Fiona,
And somebody told me you're feeling fine
You know, who's also fine ?
Your mom, huehuehue!

aus. Bei #1 wird bestimmt, dass das Skript die Argumente von der Kommandozeile nimmt. Was genau passiert ist aber für die Verwendung nicht so wichtig. Das was in der Zeile bei #2 passiert ist sehr viel spannender. Wir haben drei Variablen: script, name und how. Wenn ich das Programm aufrufe gebe ich genau genommen vier Dinge ein:
python, beleidigungsmaschine_3.py, Fiona und how

Außer Python sind diese Dinge „Argumente“. Sie werden in diesem Skript den Variablen zugeordnet. Skript wird mit „beleidigungsmaschine_3.py belegt, name mit „Fiona“ und how bekommt „Fine“ zugewiesen. Ich weise den Variablen also schon beim Aufrufen des Programmes Werte zu. Der Hammer!

Die Beleidigungsmaschine ist natürlich noch ein Prototyp und ich wäre froh, wenn jemand den Kram weiterentwickelt. Oder vielleicht bessere prompts vorschlagen kann. Ich freue mich (und hoffe) auf viele kleine süße Beleidigungsmaschinen-Kinder in den Kommentaren. Vielleicht kann auch jemand meine Maschine so exploiten, dass sie sich selber beleidigt? Ich kann das Nachprogrammieren jedenfalls nur empfehlen. Es ist leicht, macht Freude, macht Freunde, und es ist wenigstens ein bisschen nützlicher als schlecht.s.

%d Bloggern gefällt das: