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
noob sucht hilfe!
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
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.
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
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.
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.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)
-
- 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?
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?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Schau mal bitte hier: http://www.python-forum.de/faq.php#21Lacerda_The_Portoguese hat geschrieben:was die einrückung betrifft, sieht der code natürlich so aus:
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.
Oder, wenn du den %-Operator (kennt man primär aus C) benutzen möchtest:
Dabei ist '%d' ein Platzhalter für eine Ganzzahl.
Bei mehreren Platzhaltern kann das so aussehen:
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
Code: Alles auswählen
print 'Summe: %d' % z
Bei mehreren Platzhaltern kann das so aussehen:
Code: Alles auswählen
print '%d + %d = %d' % (x, y, z)
-
- User
- Beiträge: 3
- Registriert: Donnerstag 24. April 2008, 01:07
alles klar, herzlichsten dank auch! werds gleich mal ausprobieren.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.Lacerda_The_Portoguese hat geschrieben:alles klar, herzlichsten dank auch! werds gleich mal ausprobieren.
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:
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.Y0Gi hat geschrieben:Das kann ein guter Moderator im Zweifelsfall auch
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Die Lösung:
:p
Code: Alles auswählen
x = 3
while x <= 100:
print x
x += 6
Naja, das würde man eher so schreiben:
Code: Alles auswählen
for x in xrange(3, 101, 6):
print x