Seite 1 von 1

noob sucht hilfe!

Verfasst: Donnerstag 24. April 2008, 01:17
von Lacerda_The_Portoguese
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

Verfasst: Donnerstag 24. April 2008, 07:05
von Jan-Peer
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.

Re: noob sucht hilfe!

Verfasst: Donnerstag 24. April 2008, 07:43
von meneliel
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.

Verfasst: Donnerstag 24. April 2008, 09:11
von EyDu
Die Fragen sind so grundlegend, dasTutorial sollte all deine Fragen lösen.

Verfasst: Donnerstag 24. April 2008, 11:25
von Lacerda_The_Portoguese
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?

Verfasst: Donnerstag 24. April 2008, 11:29
von jens
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

Verfasst: Donnerstag 24. April 2008, 11:36
von Y0Gi
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)

Verfasst: Donnerstag 24. April 2008, 11:43
von Lacerda_The_Portoguese
alles klar, herzlichsten dank auch! werds gleich mal ausprobieren.

Verfasst: Donnerstag 24. April 2008, 13:03
von Leonidas
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.

Verfasst: Donnerstag 24. April 2008, 15:37
von Y0Gi
Das kann ein guter Moderator im Zweifelsfall auch ;)

Verfasst: Donnerstag 24. April 2008, 15:59
von Leonidas
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.

Verfasst: Donnerstag 24. April 2008, 16:11
von Karl
Die Lösung:

Code: Alles auswählen

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

Verfasst: Donnerstag 24. April 2008, 21:09
von BlackJack
Naja, das würde man eher so schreiben:

Code: Alles auswählen

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