noob sucht hilfe!

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.
Antworten
Lacerda_The_Portoguese
User
Beiträge: 3
Registriert: Donnerstag 24. April 2008, 01:07

hallo leute!

nachdem mir jetzt schon die augen brennen hab ichs endgültig satt mich durch internet-lektüren zu kämpfen und wende mich daher direkt an euch.

ich habe zur zeit zwei kleine problemstellungen zu bewältigen, welche beide nicht funktionieren wollen:

1) programm soll alle zahlen von 1-100 ausgeben welche durch 3 teilbar und ungerade sind.

hier was mal nicht geht: (nur warum?)
x = range (100)

if (x%3==0 and x%2==1):
print x

2) programm soll den benutzer um 2 zahlen fragen und dann die Summe bilden (Erste Zahl: /p Zweite Zahl: /p Summe:)

habs nur geschafft um eingabe zu fragen, jedoch werden bei der summe dann die strings addiert (zb. 6+6=66)

bin für jeden ratschlag dankbar!
lg
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Hallo,

es ist sicherlich nicht verkehrt, daß du dich an uns wendest, allerdings solltest du mal überlegen, ob du das Thema des Threads nicht lieber auf eine exaktere Problembeschreibung setzen solltest. Die meisten hier schauen sich solche Threads schon gar nicht mehr an ("Warum sollte ich mir die Mühe machen, eine Antwort auszudenken, wenn der sich nicht einmal die Mühe macht, eine vernünftige Überschrift auszudenken"). Ich schaue nur rein, weils in diesen Threads fast immer früher oder später was lustiges zu lesen gibt :wink:

Zum Thema: range() erzeugt dir eine Liste, über die du noch iterieren mußt. Ansonsten ist die richtige Einrückung ein zentrales Element von Python - überprüfe deinen Code mal dahingehend.
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Lacerda_The_Portoguese hat geschrieben: habs nur geschafft um eingabe zu fragen, jedoch werden bei der summe dann die strings addiert (zb. 6+6=66)
Wie lässt du denn den User die Zahlen eingeben? Sicher mit raw_input()? Dann bekommst du einen String zurück. Auch wenn der User eine Zahl eingibt ;-) Um tatsächlich die Zahlen zu addieren musst du die Zeichenkette erst in eine Zahl umwandeln.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Die Fragen sind so grundlegend, dasTutorial sollte all deine Fragen lösen.
Lacerda_The_Portoguese
User
Beiträge: 3
Registriert: Donnerstag 24. April 2008, 01:07

danke für die antworten. ich weiß, dass das sehr einfache fragen sind - bin ja auch blutigster anfänger, und ich hab mich auch schon mit einigen tutorials befasst, allerdings schleichen sich bei mir immer irgendwelche fehler ein.

zu problem 1)
was die einrückung betrifft, sieht der code natürlich so aus:
#/usr/bin/python

x = range (100)

if (x%3==0 and x%2==1):
\t print x


allerdings versteh ich nicht, warum er mir nicht x ausgibt.

zu problem 2)

danke für den tipp bezüglich des zahlenformates, jetzt gehts:

#usr/bin/python

x= int(raw_input("Erste Zahl: "))
y= int(raw_input("Zweite Zahl: "))
print "Summe: "
z= x + y
print z


wie kann ich hier noch die additionssumme in die gleiche zeile wie "summe" schreiben lassen?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Lacerda_The_Portoguese hat geschrieben:was die einrückung betrifft, sieht der code natürlich so aus:
Schau mal bitte hier: http://www.python-forum.de/faq.php#21

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

zu 1)
Lass' dir `x` mal anzeigen, entweder im interaktiven Modus oder über `print x` in deinem Programm. Du wirst feststellen, dass - wie schon gesagt wurde - `x` eine Liste ist. Deine Vergleiche gehen aber von `x` als Zahlen aus. Folgerichtig musst du schrittweise die Zahlen aus der Liste holen. Das geht wunderbar mit dem `for`-Loop, der u.a. im Tutorial dokumentiert ist. Damit wendest du dein `if`-Block dann auf jedes Element der Liste an.

Lacerda_The_Portoguese hat geschrieben:wie kann ich hier noch die additionssumme in die gleiche zeile wie "summe" schreiben lassen?

Code: Alles auswählen

print 'Summe:', z
Oder, wenn du den %-Operator (kennt man primär aus C) benutzen möchtest:

Code: Alles auswählen

print 'Summe: %d' % z
Dabei ist '%d' ein Platzhalter für eine Ganzzahl.

Bei mehreren Platzhaltern kann das so aussehen:

Code: Alles auswählen

print '%d + %d = %d' % (x, y, z)
Lacerda_The_Portoguese
User
Beiträge: 3
Registriert: Donnerstag 24. April 2008, 01:07

alles klar, herzlichsten dank auch! werds gleich mal ausprobieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Lacerda_The_Portoguese hat geschrieben:alles klar, herzlichsten dank auch! werds gleich mal ausprobieren.
So, da dir geholfen wurde, kannst du nun auch anderen Helfen und das Thema des Topics ändern, so dass Leute die das in Zukunft Suchen auch etwas davon haben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Das kann ein guter Moderator im Zweifelsfall auch ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Y0Gi hat geschrieben:Das kann ein guter Moderator im Zweifelsfall auch ;)
Klar, das war jetzt auch nicht vom technischen Aspekt gemeint. Inzwischen weigere ich mich, fremde Topics zu editieren und antworte auf solche seltener als früher weil mir sowas zu blöd ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Die Lösung:

Code: Alles auswählen

x = 3
while x <= 100:
	print x
	x += 6
:p
BlackJack

Naja, das würde man eher so schreiben:

Code: Alles auswählen

for x in xrange(3, 101, 6):
    print x
Antworten