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

Informatiker Board » Themengebiete » Praktische Informatik » Pangramm » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 7 Beiträge
lea

Hast du vielleicht auch eine Idee zu der Weihnachts aufgabe?
as_string

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
lea

habe es hinbekommensmile
as_string

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
lea

dankeschön, habe es hinbekommen, hast du eventuell auch eine Idee zu meiner anderen Frage?
as_string

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
lea Pangramm

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?