Seite 1 von 9

Verfasst: Montag 5. Januar 2009, 00:44
von dynasty-warriors
ok! also mein folgendes problem ist:

dass ich die brgriffe von random und ... noch nie benutzt haben!!!

p.s. ich weiß was random bedeutet, aber weiß nicht, wie ich es verwenden kann!!!

das war nur so eine aufgabe für die ferien( zum knobeln)
weil wir das thema noch nie hatten! also köönt ihr mir bitte helfen??

Verfasst: Montag 5. Januar 2009, 00:44
von DasIch
nkoehring hat geschrieben:Ich hab uebrigens nichtmal TryExcept benutzt. Ist nur if-elif-else ... ;)
Erinnert mich irgendwie an Lisp:
"Ich hab nicht nichtmal if benutzt!!!1111einseinself"

Verfasst: Montag 5. Januar 2009, 00:46
von nkoehring
DasIch hat geschrieben:
nkoehring hat geschrieben:Ich hab uebrigens nichtmal TryExcept benutzt. Ist nur if-elif-else ... ;)
Erinnert mich irgendwie an Lisp:
"Ich hab nicht nichtmal if benutzt!!!1111einseinself"
Steht alles schon da... einfach lesen was vorher geschrieben wurde.

@DasIch: Hey, das sollte keine Angeberei sein, menno :P

Verfasst: Montag 5. Januar 2009, 00:48
von derdon
@hendrikS: nkoehring und ich haben uns doch auch was überlegt. Worauf willst du denn hinaus? Ich schick dir mal meinen Code per PN, um Missverständnisse zu vermeiden.

Verfasst: Montag 5. Januar 2009, 00:52
von dynasty-warriors
ôk vielen dank! ich habe jetzt das thema mit random verrstanden!!! vielen dank!!!


p.s. was ist tryexcept??

Verfasst: Montag 5. Januar 2009, 00:56
von derdon

Verfasst: Montag 5. Januar 2009, 00:57
von DasIch
dynasty-warriors hat geschrieben:p.s. was ist tryexcept??
Tritt bei der Ausführung eine Exception auf kann man diese Abfangen indem man sie mit try except umschliesst.

Code: Alles auswählen

try:
    raise Exception
    print 'ich werde nie ausgefuehrt'
except Exception:
    print 'abgefangen'

Verfasst: Montag 5. Januar 2009, 01:00
von nkoehring
dynasty-warriors hat geschrieben:ôk vielen dank! ich habe jetzt das thema mit random verrstanden!!! vielen dank!!!


p.s. was ist tryexcept??
Ah du entwickelst tatsaechlich Interesse? Dann bin ich gern bereit zu helfen. Try-Except-Konstrukte verwendet man um Fehler (genauer: Exceptions) abzufangen.

Wenn der User zB keine Zahl sondern einen Text eingibt, kann bei bestimmten Operationen ein Fehler auftreten.

Beispiel:

Code: Alles auswählen

In [29]: x = input("I moag ne Zahl ham! ")
I moag ne Zahl ham! k
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)

/home/psy/<ipython console> in <module>()

/home/psy/<string> in <module>()

NameError: name 'k' is not defined
...das Programm stuerzt also ab und das kann man abfangen:

Code: Alles auswählen

In [29]: try:
    x = input("I moag ne Zahl ham! ")
except NameError:
    print "Menno, i' will ne Zoahl, kee Buchstoab!"

I moag ne Zahl ham! k
Menno, i' will ne Zoahl, kee Buchstoab!

Verfasst: Montag 5. Januar 2009, 01:04
von derdon
Statt input() sollte man vor 3.0 raw_input() verwenden. input() ist das gleiche wie

Code: Alles auswählen

eval(raw_input())
und überall, wo eval drinsteckt, ist etwas evil :twisted:

Verfasst: Montag 5. Januar 2009, 01:49
von Leonidas
DasIch hat geschrieben:Erinnert mich irgendwie an Lisp:
"Ich hab nicht nichtmal if benutzt!!!1111einseinself"
Weil man es auch komplizierter mit ``cond`` machen kann?

Verfasst: Montag 5. Januar 2009, 02:08
von DasIch
Wieso kompliziert?

Verfasst: Montag 5. Januar 2009, 02:23
von Leonidas
Wegen der hohen Anzahl von Klammern, die zusätzlich zu ``if``nötig sind wenn es sich um ein simples if-then-else handelt. Man macht in anderen Sprachen auch kein ``switch/case`` nur weil man damit ein simples ``if`` ersetzen kann.

Verfasst: Montag 5. Januar 2009, 02:26
von str1442
Vielleicht gibt der Benutzer auch mal "1j" ein.

Und cond, car, cdr & co > world ;)

@Thread: Schreib ordentlich und lern die SuFu zu benutzen (wobei die Anwendung jener vielleicht aufgrund der gewählten Bezeichnung eine Anwendung einer ähnlichen vorrausgehen muss), dann kannst du dir auch selbst in den Fuß schiessen ohne auf dich aufmerksam zu machen. Eigentlich ist es schon ziemlich bezeichnend, daß solche Threads immerwieder eröffnet werden, und zwar jedesmal mit ähnlichen Verhaltens und Ausdrucksweisen.

Verfasst: Montag 5. Januar 2009, 04:17
von DasIch
Leonidas hat geschrieben:Wegen der hohen Anzahl von Klammern, die zusätzlich zu ``if``nötig sind wenn es sich um ein simples if-then-else handelt.
Das macht es vielleicht komplex oder bläht dass ganze(im Vergleich) auf aber kompliziert wird es dadurch nicht.
Bei einem Editor(z.B. Kate) mit brauchbarem Syntax Highlighting ist dass mit den Klammern auch kein Problem. Generell hat man dass nach einer Weile recht schnell gut drin, so gut dass ich schon dass ein oder andere mal erwischt habe bei Python die Klammer ebenfalls vor dem Funktionsnamen zu öffnen.

Letzendlich ist es natürlich dumm cond zu verwenden, wenn man nicht mehr braucht als if then else aber dass habe ich ja auch nicht bestritten. Ich fands nur seltsam cond kompliziert zu bezeichnen.

Verfasst: Montag 5. Januar 2009, 04:57
von nkoehring
Aber allgemein geht es hier ja sowieso nicht um Lisp, sondern um eine einfach loesbare Python-Aufgabe 8)

Verfasst: Montag 5. Januar 2009, 09:06
von audax

Verfasst: Montag 5. Januar 2009, 09:39
von BlackJack
Nein, kein Lisp. Aber vielleicht Factor. :-)

Code: Alles auswählen

#! /usr/bin/env factor
USING: combinators io kernel math math.order math.parser math.ranges random ;
IN: number-guessing

: ask-for-number ( -- n )  "Your guess: " write flush  readln string>number ;

: check-guess ( secret guess -- ? )
    over <=>
    { { +eq+ [ t "correct" ] }
      { +lt+ [ f "smaller" ] }
      { +gt+ [ f "greater" ] } } case
    "Your guess is " write write "." print ;

: loop ( n secret -- n )
    over number>string write ". try." print
    ask-for-number
    check-guess
    [ drop ] [ [ 1+ ] dip loop ] if ;

: main ( -- )
    1  100 [1,b] random  loop
    "Yeah!  You found it with " write  number>string write  " tries." print ;

main

Verfasst: Montag 5. Januar 2009, 10:32
von apollo13
@dynasty-warriors:
Du könntest auch "Python für Kids" lesen: http://www.amazon.de/Python-f%C3%BCr-Ki ... 827&sr=8-3

Das ist so geschrieben, dass sogar du es verstehen solltest.
Und es ist jedem hier egal, ob du auf deine Mutter schwörst, dieses Forum zu besuchen: Wir könnten darauf verzichten...

Verfasst: Montag 5. Januar 2009, 10:42
von audax
word.

Verfasst: Montag 5. Januar 2009, 11:18
von Leonidas
audax hat geschrieben:kein Lisp? Schade...
http://paste.pocoo.org/show/98039/
Mal aus meiner Sandbox rausgeholt. Irgendwie mag hier niemand Common Lisp sonderlich ;)

Und DasIch, ein Editor wie Kate ist als Lisp-Editor wenig geeignet. Ohne richtiges, semantisches Einrücken und farbliches Klammer-Level-Matching ist es vergleichsweise unangenehm zu programmieren.