return sum(letter in ascii_lowercase for letter in text.lower()) if == 26
Je sais que c'est faisable, mais je n'arrive pas à trouver la bonne syntaxe. C'est un exercice sur checkio.org.
def check_pangram(text):
from string import ascii_lowercase
return sum(letter in ascii_lowercase for letter in text.lower()) if == 26
if __name__ == '__main__':
# These "asserts" using only for self-checking and not necessary for auto-testing
assert check_pangram("The quick brown fox jumps over the lazy dog."), "brown fox"
assert not check_pangram("ABCDEF"), "ABC"
assert check_pangram("Bored? Craving a pub quiz fix? Why, just come to the Royal Oak!"), "Bored?"
Ah oui j'ai oublié de dire que ça devait renvoyer True (ou False)
Je ne pense pas que ton code soit correct, la ponctuation serait comptée aussi non ? Edit : Ok avec ord(char) ça marche mieux tout d'un coup ^^
Je voudrais que ça renvoie True si il y a bien 26 lettres comme tu l'as deviné. Tout ça de façon one-liner pour le stayle
Edit :
return True if len([c for c in set(text.lower()) if ord(c) in range(97, 123)]) == 26
#Invalid syntax
#Idem si je fais :
return if len([c for c in set(text.lower()) if ord(c) in range(97, 123)]) == 26
- Edité par InhumanRampage 23 mars 2015 à 15:22:26
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
???