HILFE!! Hausaufgabe/ zahlenrate programm!!
Tritt bei der Ausführung eine Exception auf kann man diese Abfangen indem man sie mit try except umschliesst.dynasty-warriors hat geschrieben:p.s. was ist tryexcept??
Code: Alles auswählen
try:
raise Exception
print 'ich werde nie ausgefuehrt'
except Exception:
print 'abgefangen'
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Ah du entwickelst tatsaechlich Interesse? Dann bin ich gern bereit zu helfen. Try-Except-Konstrukte verwendet man um Fehler (genauer: Exceptions) abzufangen.dynasty-warriors hat geschrieben:ôk vielen dank! ich habe jetzt das thema mit random verrstanden!!! vielen dank!!!
p.s. was ist tryexcept??
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
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!
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Statt input() sollte man vor 3.0 raw_input() verwenden. input() ist das gleiche wie und überall, wo eval drinsteckt, ist etwas evil
Code: Alles auswählen
eval(raw_input())
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Weil man es auch komplizierter mit ``cond`` machen kann?DasIch hat geschrieben:Erinnert mich irgendwie an Lisp:
"Ich hab nicht nichtmal if benutzt!!!1111einseinself"
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
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.
Das macht es vielleicht komplex oder bläht dass ganze(im Vergleich) auf aber kompliziert wird es dadurch nicht.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.
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.
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Aber allgemein geht es hier ja sowieso nicht um Lisp, sondern um eine einfach loesbare Python-Aufgabe
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
kein Lisp? Schade...
http://paste.pocoo.org/show/98039/
http://paste.pocoo.org/show/98039/
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
@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...
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...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mal aus meiner Sandbox rausgeholt. Irgendwie mag hier niemand Common Lisp sonderlichaudax hat geschrieben:kein Lisp? Schade...
http://paste.pocoo.org/show/98039/
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Wenn du eine Zufalls Zahl willst würde ich es Mit random probiern:
So jtz. stimmts gültig für python 2.5
Code: Alles auswählen
import random
zahl=random.randint(1,100) #zufall zwischen 1 und 100
anzahl=1
while zahl != meineZahl:
meineZahl=int(raw_input("Ich habe eine Zahl zwischen 1 und 100: rate "))
if meineZahl==zahl:
print "Richtig, die Zahl war", zahl , "Sehr gut, du hast es in", anzahl,"Versuchen geschafft"
elif meineZahl<zahl:
print"Sorry zu klein"
elif meineZahl>zahl:
print "Sorry zu gross"
anzahl+=1
Zuletzt geändert von INFACT am Montag 5. Januar 2009, 14:01, insgesamt 1-mal geändert.
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
;-)
Mhm... hast du's ausprobiert vorher...? Es funktioniert soooo nicht. Außerdem... solltest du dich an PEP8 halten, finde ich. Also... naja, ich fänds schöner. meineZahl muss vorher'n Wert kriegen, sonst ist es schwer eine Überprüfung zu machen, außerdem sollte die Eingabe'n int werden, sonst bringen die Vergleiche danach stets ein "Sorry zu gross"INFACT hat geschrieben:Code: Alles auswählen
import random zahl=random.randint(1,100) #zufall zwischen 1 und 100 anzahl=1 while zahl != meineZahl: meineZahl=raw_input("Ich habe eine Zahl zwischen 1 und 100: rate ") if meineZahl==zahl: print ("Sehr gut, du hast es in"+anzahl+"Versuchen geschafft") elif meineZahl<zahl: print("Sorry zu klein") else: print("Sorry zu gross")