pythonanfänger weiß nicht weiter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
lena_
User
Beiträge: 14
Registriert: Sonntag 27. Februar 2011, 11:55

oh und danke! Wär schön wenns jemand sehn würde was falsch ist!
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Leonidas hat geschrieben:Eine Bitte zuerst: Verwende ab und zu Großbuchstaben.
/me hat geschrieben:Bezüglich der defekten Shift-Taste an deiner Tastatur kann ich dir übrigens die Newsgroup de.comp.hardware.misc empfehlen.
SCNR
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

lena_ hat geschrieben:Also wenn ich lambda x: vor eine Zeichenkette schreibe, ...
Du kannst lambda als Funktion betrachten. Kann auch mehrere Parameter besitzen und nicht nur x heissen. Bsp.:

Code: Alles auswählen

f = lambda a,b:a+b
ist identisch mit

Code: Alles auswählen

def f(a,b):
    return a+b
Ist im Prinzip nicht so wichtig, weil man auch ohne lambda auskommt. Trotzdem gut zu wissen. Wird hin und wieder verwendet um einfache Funktionen an map oder so zu übergeben. Ausserdem ist lambda limitiert auf einen Ausdruck. Mehr Info gibts übrigens in der Doku darüber.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Also mal ein paar kleine Tipps:
1) Jede ( sollte immer mit einer ) geschlossen werden
2) print kann nur strings ausgeben, also str(irgendwas)
3) Namen überprüfen

Und falls vor handen immer TraceBacks Posten

Code: Alles auswählen

import random

secret_number = int(random.uniform(0, 1000))
entry_number = int(raw_input("Welche Zahl koennte es sein?"))

count = 0

while entry_number != secret_number:
    if entry_number < secret_number:
        print "Diese Zahl ist zu klein!"
    if entry_number > secret_number:
        print "Zu hoch!"
    entry_number = int(raw_input("Neuer Tipp: "))
    count += 1

print "Geschafft!" , secret_number, "war die geheime Zahl!"
print "Du hast " + str(count) + " mal geraten"
Zuletzt geändert von Py-Prog am Montag 28. Februar 2011, 15:54, insgesamt 3-mal geändert.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Py-Prog hat geschrieben:2) print kann nur strings ausgeben, also str(irgendwas)
Quatsch. Schon mal probiert?

Code: Alles auswählen

print 42
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lena_
User
Beiträge: 14
Registriert: Sonntag 27. Februar 2011, 11:55

Ah! Jetzt hab ich mich voll gefreut weils nicht mehr gleich in Zeile 4 hängen geblieben ist, aber jetzt komm ich nciht über Zeile 16:

print "Geschafft!" , a, "war die geheime Zahl!"

bei print mach Python an das t ein Häckchen und sagt wiedermal "invalid syntax" habs jetzt schon in alle Varianten umgeschrieben die mir eingefallen sind! Es tritt immer der geliche Fehler auf, sogar wenn ich die Zeile einfch durch 'print 3' ersetzt!
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Ja, ich war aber wieder mal zu faul zum schreiben, aber wenn man schreibt:

Code: Alles auswählen

print "Text" + 80
geht das schlecht. :wink:

@lena_ bei mir geht der code den ich gepostet habe.
(Wozu Open Anno Unknown Horizons doch alles gut ist :wink: )
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
lena_
User
Beiträge: 14
Registriert: Sonntag 27. Februar 2011, 11:55

@py-prog: na ich weiß nciht was da kaputt ist, bei mir läufts nciht wegen dieser Zeile.. naja ich denk mir einfach es hätte funktioniert, und mach mit dem nächsten weiter..
Schade wär so a nettes Spiel gewesen ;)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Py-Prog hat geschrieben:Ja, ich war aber wieder mal zu faul zum schreiben, aber wenn man schreibt:

Code: Alles auswählen

print "Text" + 80
geht das schlecht. :wink:
Das hat allerdings nichts mit print zu tun, sondern damit, dass du versuchst, einen String mit einem Integer zu addieren. Das sagt dir aber auch schon die Fehlermeldung.
lena_ hat geschrieben:@py-prog: na ich weiß nciht was da kaputt ist, bei mir läufts nciht wegen dieser Zeile.. naja ich denk mir einfach es hätte funktioniert, und mach mit dem nächsten weiter..
Dann zeige doch mal deinen vollständigen Code und die vollständige Fehlermeldung.
Das Leben ist wie ein Tennisball.
lena_
User
Beiträge: 14
Registriert: Sonntag 27. Februar 2011, 11:55

okay:

Code: Alles auswählen

import random

a=int(random.uniform(0,1000))

z=int(raw_input("Welche Zahl koennte es sein?"))

c=0
while z!=a:
	c = c+1
	if z<a:
		print "Diese Zahl ist zu klein!"
	if z>a:
		print "Zu hoch!"
	a=int(raw_input("Neuer Tipp: ")

print "richtig"

print "Du hast" + str(c) + "mal geraten"
und die Fehlermeldung:
File "C:\pythonaufgaben\ratespiel.py, line 16
print "richtig"
^
SyntaxError: invalid syntax
wobei das ^ auf Höhe vom t ist. Die Einrückung nimmt das Zitat wohl nicht mit.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du hast (schon wieder) eine schließende Klammer vergessen, in der Zeile drüber.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
problembär

Ich würde jeweils Leerzeichen setzen, also z.B.

Code: Alles auswählen

a = 1
Außerdem weist Du der Zufallszahl (a) die Eingabe zu (es müßte vielmehr "z = ..." heißen).
Ich würd's so schreiben:

http://paste.pocoo.org/show/345817/

(Angucken bei Bedarf.)

Gruß
BlackJack

@lena_: Statt `random.uniform()` könntest Du Dir in dem Modul auch eine Funktion suchen die gleich eine ganze Zahl liefert.
lena_
User
Beiträge: 14
Registriert: Sonntag 27. Februar 2011, 11:55

also die Kausur ist vorbei, jetzt kommts auf die Korrektoren an!
Auf jeden Fall viele herzlichen Dank für eure Unterstützung! Es hat mir wirklich geholfen jemanden Fragen zu können!
Gruß,
Lena
Antworten