Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Pangramm » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Pangramm
Beiträge zu diesem Thema Autor Datum
 Pangramm lea 03.11.2017 15:21
 RE: Pangramm as_string 03.11.2017 17:00
 RE: Pangramm lea 03.11.2017 17:04
 RE: Pangramm as_string 03.11.2017 17:05
 RE: Pangramm lea 03.11.2017 17:10
 RE: Pangramm as_string 03.11.2017 17:15
 RE: Pangramm lea 03.11.2017 17:23

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
lea
Grünschnabel


Dabei seit: 02.11.2017
Beiträge: 8

Pangramm Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ja, ich schon wieder. großes Grinsen Wird wohl nicht das letzte Mal gewesen sein großes Grinsen

Folgendes Problem:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
def pangram(nt):
    check = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
    for i in check:
        if (i in nt):
            continue
        else:
            return False
        return True
n = input('--> ')
if (pangram(n.lower ())):
    print('Juhu, ein Pangramm.')
else:
    print('Leider kein Pangram.')


Beispielsätze:
Sein oder Nichtsein, das ist hier die Frage. (Erwartetes Ergebnis: Leider kein Pangramm)
Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. ( Hier: Juhu, ein Pangramm)

Jetzt habe ich allerdings folgendes Problem. Beim 1 Satz funktioniert es. Beim 2ten aber nicht. woran liegt das?
03.11.2017 15:21 lea ist offline E-Mail an lea senden Beiträge von lea suchen Nehmen Sie lea in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich schätze, weil ja so alle Buchstaben sowohl in groß als auch in klein vorkommen müssten. Groß-/Kleinschreibung spielt aber bei einem Pangramm keine Rolle. Ich würde nur Großbuchstaben nehmen und jeden einzelnen Buchstaben im Satz in einen Großbuchstaben verwendeln, bevor ich vergleiche.
Abgesehen davon frage ich mich, ob es nicht eine effizientere Möglichkeit gibt. Wenn man in Python eine Set-Datenstruktur (also eine Menge) hätte, in der die Buchstaben drin sind und aus der alle Buchstaben raus streicht, die im Text auftreten, müsste man am Ende eine leere Menge haben. Dafür kenne ich mich in Python aber wieder mal zu wenig aus.

Gruß
Marco
03.11.2017 17:00 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
lea
Grünschnabel


Dabei seit: 02.11.2017
Beiträge: 8

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

dankeschön, habe es hinbekommen, hast du eventuell auch eine Idee zu meiner anderen Frage?
03.11.2017 17:04 lea ist offline E-Mail an lea senden Beiträge von lea suchen Nehmen Sie lea in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich sehe gerade, Du verwendet schon "lower()" beim Aufruf. Das würde ich besser in die Funktion packen, aber dann müssen alle Großbuchstaben aus der Liste raus.

Gruß
Marco
03.11.2017 17:05 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
lea
Grünschnabel


Dabei seit: 02.11.2017
Beiträge: 8

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

habe es hinbekommensmile
03.11.2017 17:10 lea ist offline E-Mail an lea senden Beiträge von lea suchen Nehmen Sie lea in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Um aber den Gedanken mit dem set noch weiter zu spinnen. Ich meine nämlich, das geht viel kürzer, besser, effizienter, wenn man das so macht:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
def pangram(nt):
    check = set("abcdefghijklmnopqrstuvwxyz")
    return check.issubset(set(nt.lower()))

n = input('--> ')
if (pangram(n.lower ())):
    print('Juhu, ein Pangramm.')
else:
    print('Leider kein Pangram.')

Dann macht nämlich die ganze Arbeit mit den Schleifen direkt Python und das auch noch viel effizienter.
Die Menge aller Buchstaben muss nämlich eine Untermenge der Buchstaben sein, die in dem Satz vorkommen. Und das ist in Python eben schon eingebaut das zu überprüfen.

Gruß
Marco
03.11.2017 17:15 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
lea
Grünschnabel


Dabei seit: 02.11.2017
Beiträge: 8

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hast du vielleicht auch eine Idee zu der Weihnachts aufgabe?
03.11.2017 17:23 lea ist offline E-Mail an lea senden Beiträge von lea suchen Nehmen Sie lea in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Pangramm