Kurs:Python/Forum/Archiv/2010

Aus Wikiversity
Archiv Dies ist eine Archivseite. Bitte benutze die aktuelle Diskussionsseite, wenn du eine Diskussion fortführen möchtest. Diese Archivseite sollte nicht verändert werden.

Übungsaufgabe 18, Nr. 2

print "Bereiche addieren"
n = 1
ergebnis1 = 0
ergebnis2 = 0

untergrenze = input ("Untergrenze des Bereichs: ")
obergrenze   = input ("Obergrenze des Bereichs: ")


while n != 0:
        n = input ("Daten eingeben: ")
        if untergrenze < n < obergrenze:
            ergebnis1 = ergebnis1 + n
        else: 
            ergebnis2 = ergebnis2 + n
            
print "Summe der Werte innerhalb des Bereichs: ",  ergebnis1
print "Summe der Werte ausserhalb des Bereichs: ",  ergebnis2

--Michael Reschke 23:41, 20. Jan. 2010 (CET)

Aufgabe, Kapitel 15, Nr. 3

Aufgabe gelöst...

wort1 = raw_input ("Geben Sie das erste Wort ein: ")
wort2 = raw_input ("Geben Sie das zweite Wort ein: ")

zeile = 30 - len(wort1) - len(wort2)
punkte = "."

for i in range (0,  zeile):
    punkte = punkte + "."

print  wort1 + punkte + wort2

--80.132.67.147 00:23, 21. Jan. 2010 (CET)

Aufgabe, Kapitel 20, Nr. 5

An einer Lösung wird noch gearbeitet...

print "Gehen Sie bitte weiter. Hier ist nichts zu sehen."

--80.132.67.147 00:25, 21. Jan. 2010 (CET)

Fehlersuche

Das Programm ermittelt den größten gemeinsamen Teiler.

def ggt(a,b):
       while b:
            a,b=b,a%b
            print a,  b
        return a

Eric sagt: „Die Datei ... enthält den Syntaxfehler unindent does not match any outer indentation level in Zeile 5, Position 17.“

Das Problem ist „return a“.

Jetzt ist es lauffähig...

def ggt(a,b):
       while b:
            a,b=b,a%b
            print a,  b
            return a

Einrückungsfehler bei return a, allerdings war zuvor die Programmversion ohne die print-Anweisung lauffähig... --Kurs 2010 21:24, 26. Jan. 2010 (CET)

Zur Funktionsweise

a = 9

while a:
    print a
    a = a - 1

Wenn die Variable a den Wert 0 annimmt, beendet sich die while-Schleife.

Über das =-Zeichen können (offensichtlich) mehreren Variablen neue Werte zugewiesen werden. --Kurs 2010 21:29, 26. Jan. 2010 (CET)

Prüfziffern von Euro-Geldscheinen

Ich bin da momentan dran. Ich bearbeite die zugehörige Programmieraufgabe und hänge an folgendem Abschnitt:

  1. Es wird die Quersumme der Positionszahl und der 10 Ziffern berechnet (im Beispiel 2+6+6+0+6+1+2+2+0+0+2+2 = 29)
Die Zahl wird mit Rest durch 9 geteilt (2)
Der Rest wird von 8 subtrahiert. Das Resultat ist die Prüfziffer (6).

Also bei mir ergibt 29 / 9 = 3 (Ganzzahl-Division). --Kurs 2010 00:06, 29. Jan. 2010 (CET)

Möglicherweise 29 / 10 = 2? Werde das auch noch einmal im Programm testen. --Kurs 2010 00:08, 29. Jan. 2010 (CET)

Endlosschleife...

def rekursion (zahl):
    while zahl * zahl <= 100:
        print zahl * zahl
        rekursion (zahl+1)

zahl = 1

rekursion (zahl)

Erwartet hatte ich:

1 4 9 16 25 36 49 64 81 100

Ich erhalte ein anderes Ergebnis und suche noch nach dem Fehler.

Es läuft in dieser Scriptfassung:

def rekursion (zahl):
    while zahl <= 10:
        print zahl * zahl,  
        zahl = zahl + 1

zahl = 1

rekursion (zahl)

--Kurs 2010 16:39, 3. Feb. 2010 (CET)