CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème Python

Pseudo supprimé
Pseudo supprimé 25 octobre 2020 à 21:50:46

Bonjour les kheys,
Je dois rendre un devoir, or lors de la correction automatique, l'interface me renvoie une erreur alors que mon programme fonctionne tout à fait dans un exécuteur normal.

Voici l'énoncé :
Créez une fonction extract(code) pour fournir des infos concernant la nature de chaque élément du code :

Par exemple, si le code 'AeB7' est donné en entrée, la fonction devrait produire 'vowel-up vowel-low consonant-up number' comme sortie. En général :

Ajoutez un number à la réponse si l'élément du code est un chiffre.
Ajoutez un vowel à la réponse si l'élément du code est une voyelle.
Ajoutez un consonant à la réponse si l'élément du code est une consonne.
Suivez cela par -up si la voyelle/consonne est en majuscule.
Suivez cela par -low si la voyelle/consonne est en minuscule.

Exemple :

Avec le code '65AeBc7' la fonction devrait sortir number number vowel-up vowel-low consonant-up consonant-up number

Mon code :
def extract(code): for i in range(len(code)): if code[i] =="0" or code[i]=="1" or code[i] =="2" or code[i] == "3" or code[i] =="4" or code[i] == "5" or code[i] == "6" or code[i] == "7" or code[i] =="8" or code[i]=="9": print("number", end=" ") if code[i] !="0" and code[i]!="1" and code[i] !="2" and code[i] != "3" and code[i] !="4" and code[i] != "5" and code[i] != "6" and code[i] != "7" and code[i] !="8" and code[i]!="9": if code[i].upper() != "A" and code[i].upper() != "E" and code[i].upper() != "I" and code[i].upper() != "O" and code[i].upper() != "U" : if code[i] == code[i].upper(): print("consonant-up", end = " ") else : print("consonant-low", end=" ") else : if code[i] == code[i].upper(): print("vowel-up", end=" ") else : print("vowel-low", end=" ")

Message d'erreur :

Traceback (most recent call last):
File "./src/TestExtractor.py", line 44, in test_char_y
File "./src/TestExtractor.py", line 23, in strip_trailing_space
TypeError: object of type 'NoneType' has no len()

Un khey pour m'aider ? Je lui en serais reconnaissant...

Pseudo supprimé
Pseudo supprimé 25 octobre 2020 à 21:51:20

Oups, désolé de l'état du code, je ne sais pas trop comment l'intégrer dans le message

El_Camino
El_Camino
Niveau 10
25 octobre 2020 à 22:17:44

T'inquiète pas Azorban va faire ton devoir

Sinon le soucis est que un objet None est passé en paramètre de la fonction, et donc ce dernier n'a pas de longueur ce qui crée une erreur. Donc tu doit sans doute ajouter le cas où rien n'est mis en paramètre de la fonction.

Mais surtout ton code n'est pas très bien écrit : regarde les fonctions Python de base pour voir si un charactère est un chiffre ou une lettre, et utilise les structures if/else

Azerban
Azerban
Niveau 16
25 octobre 2020 à 23:06:51
# https://www.jeuxvideo.com/forums/42-47-64628077-1-0-1-0-probleme-python.htm
# extract_code.py

# Créez une fonction extract(code) pour fournir des infos concernant la nature de chaque élément du code :

# Par exemple, si le code 'AeB7' est donné en entrée, la fonction devrait produire 'vowel-up vowel-low consonant-up number' comme sortie. En général :

# Ajoutez un number à la réponse si l'élément du code est un chiffre.
# Ajoutez un vowel à la réponse si l'élément du code est une voyelle.
# Ajoutez un consonant à la réponse si l'élément du code est une consonne.
# Suivez cela par -up si la voyelle/consonne est en majuscule.
# Suivez cela par -low si la voyelle/consonne est en minuscule.

import string

def extract_code(code: str) -> str:
    """Fonction qui analyse un code.
    Args:
        code (str): Code à analyser.
    Returns:
        str: Infos.
    """    
    
    vowels = "aeiouy"
    consonants = ''.join([letter for letter in string.ascii_lowercase if letter not in vowels])
    
    infos = []
    
    for char in code:
        
        if char in string.digits:
            infos.append("number")
            
        elif char.lower() in vowels:    
            if char.isupper():
                infos.append("vowel-up")
            else:
                infos.append("vowel-low")
                
        elif char.lower() in consonants:
            if char.isupper():
                infos.append("consonant-up")
            else:
                infos.append("consonant-low")

        
    return ' '.join(infos)

if __name__ == "__main__":
    
    print(extract_code("65AeBc7"))
    print(extract_code("AeB7"))

Retourne :

number number vowel-up vowel-low consonant-up consonant-low number
vowel-up vowel-low consonant-up number
Message édité le 25 octobre 2020 à 23:11:12 par Azerban
Pseudo supprimé
Pseudo supprimé 26 octobre 2020 à 21:55:28

Le 25 octobre 2020 à 22:17:44 El_Camino a écrit :
T'inquiète pas Azorban va faire ton devoir

Sinon le soucis est que un objet None est passé en paramètre de la fonction, et donc ce dernier n'a pas de longueur ce qui crée une erreur. Donc tu doit sans doute ajouter le cas où rien n'est mis en paramètre de la fonction.

Mais surtout ton code n'est pas très bien écrit : regarde les fonctions Python de base pour voir si un charactère est un chiffre ou une lettre, et utilise les structures if/else

Ok merci beaucoup pour vos aides à tous !

cybevil
cybevil
Niveau 27
26 octobre 2020 à 23:30:37

Je commence à me demander si Azerban n'est pas un bot solveur d'exercices python :hap:

Azerban
Azerban
Niveau 16
26 octobre 2020 à 23:50:18

Le 26 octobre 2020 à 23:30:37 cybevil a écrit :
Je commence à me demander si Azerban n'est pas un bot solveur d'exercices python :hap:

Je suis une instance de GPT-3 mais chut :ok:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment