Freitag, 14. Januar 2011
Ganze Zahlen zählen (Schleife, Sequenzen, Funktionen POS1: 1BHIF)
Schreiben Sie ein Programm anzzahlen.py, welches eine Zeile einliest und in dieser Zeile zähle, wieviele ganze Zahlen vorkommen. Jedes Zeichen, das keine Ziffer ist, gilt als nicht zu einer Zahl gehörend.
Beispiel:
Eingabe:
Mögliche Lösung:
Das Programm wäre auch ohne die Funktion
Beispiel:
Eingabe:
das ist eine Zahl 123 und noch eine 1 und noch zwei 3213x23123Ausgabe:
4 Zahlen gefunden.Das Programm soll richtige Sätze ausgeben, also "Keine Zahlen gefunden.", wenn in der Eingabe keine Zahlen sind oder "Eine Zahl gefunden.", wenn eine Zahl in der Eingabe war. Ab 4 soll dann die Zahl ausgegeben werden, z.B. "6 Zahlen gefunden."
Mögliche Lösung:
""" author: Haberstroh, Harald matnr: d09666 file: anzzahlen.py desc: Zähle ganze Zahlen Beispiel: das ist eine Zahl 123 und noch eine 1 und noch zwei 3213x23123 Ausgabe: 4 Zahlen gefunden date: 14.1.2011 class: Lehrer catnr: 33 """ #---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+---- def anz_zahlen(string): """ermittelt die Anzahl der ganzen Zahlen im String""" anzahl = 0 in_zahl = False for zeichen in string: if zeichen in "0123456789": if not in_zahl: anzahl += 1 in_zahl = True else: in_zahl = False return anzahl def ausgabe(anzahl): """gibt deutschen Satz aus mit Anzahl""" if anzahl == 0: print("Keine Zahl gefunden.") elif anzahl == 1: print("Eine Zahl gefunden.") elif anzahl == 2: print("Zwei Zahlen gefunden.") elif anzahl == 3: print("Drei Zahlen gefunden.") else: print(anzahl, "Zahlen gefunden.") def main(): """EVA Eingave Verarbeitung Ausgabe - das Hauptprogramm""" string = input("> ") anzahl = anz_zahlen(string) ausgabe(anzahl) def test(): """Testen von anz_zahlen() und ausgabe()""" string = "das ist eine Zahl 123 und noch eine 1 und noch eine 3213x23123" anzahl = anz_zahlen(string) ausgabe(anzahl) ausgabe(anz_zahlen("keine")) ausgabe(anz_zahlen("eine Zahl 123")) ausgabe(anz_zahlen("zwei 23 und 324")) ausgabe(anz_zahlen("drei 23 34 22")) ausgabe(anz_zahlen("vier 234 234 234 45")) ausgabe(anz_zahlen("5 234 234 234 45")) if __name__ == '__main__': main() # test()Beachten Sie, dass ich hier eine eigene Funktion
test()
gemacht habe, um viele Testfälle immer wieder leicht probieren zu können. Statt main()
muss dann nur test()
aufgerufen werden.Das Programm wäre auch ohne die Funktion
test()
fertig und korrekt. test()
half nur bei der Entwicklung bei der Fehlersuche.Labels: Aufgabe, Lösung, POS1-1, Python
Abonnieren Posts [Atom]
Kommentar veröffentlichen