IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

demande d'aide (de fonction)


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 1
    Points
    1
    Par défaut demande d'aide (de fonction)
    salut
    je voudrais savoir la valeur de cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str(int(url[-3:-1] + url[-1] + 1)
    pour l'url
    par example
    http: //www.nabulsi.c...d=102&sssid=103
    merci a vous

  2. #2
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Salut,

    Un peu dur a dire, vu que le bout de code que tu donnes n'est pas valide.

    Si c'est ca a la place:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>>str(int(url[-3:-1] + url[-1]) + 1)
    >>> # identique a:
    >>>str(int(url[-3:]) + 1)
    C'est un affreux moyen d'incrementer le dernier chiffre de l'URL que tu proposes. En gros pour http://....ssid=103 le bout de code renverra "104". Mais y'a tellement de moyens que ca ne fonctionne pas (+/- de 3 chiffres, parametres de la requete dans un autre ordre, ...)

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> import re
    >>> url = "http: //www.nabulsi.c...d=102&sssid=103"
    >>> res = re.search("(?P<url>.+=)(?P<value>\d+)", url)
    >>> res.group('url')
    'http: //www.nabulsi.c...d=102&sssid='
    >>> res.group('value')
    '103'
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Si le but est de récupérer les caractères après le dernier "=", .rsplit() est quand même plus intuitif que les "regexp":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> url = "http: //www.nabulsi.c...d=102&sssid=103"
    >>> int(url.rsplit('=')[-1]) + 1
    104
    Dans tous les cas, la réponse au PO:
    Citation Envoyé par aime_jeux Voir le message
    salut
    je voudrais savoir la valeur de cette fonction
    se résume quand même à aller pianoter à la console "pour voir".
    Et il est facile d'obtenir rapidement une réponse par soi-même plutôt que de poster et attendre que quelqu'un veuille bien prendre la peine de...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par wiztricks Voir le message
    Si le but est de récupérer les caractères après le dernier "=", .rsplit() est quand même plus intuitif que les "regexp"
    si c'est le dernier oui, il s'agit d'un paramètre dans l'URI, rien ne garantit qu'il soit placé à la fin, pour moi les regex ont du sens pour peu qu'on se contente pas de matcher le dernier signe '=' justement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import re
    >>> url = 'http: //www.nabulsi.c...d=102&sssid=103'
    >>> re.findall('sssid=(\d+)', url)
    ['103']

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    si c'est le dernier oui, il s'agit d'un paramètre dans l'URI, rien ne garantit qu'il soit placé à la fin, pour moi les regex ont du sens pour peu qu'on se contente pas de matcher le dernier signe '=' justement
    hmm, dans ce cas (parser une URL "en général"), vous avez la bibliothèque urllib.parse qui fait déjà le boulot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> from urllib.parse import urlparse, parse_qs
    >>> urlparse(url)
    ParseResult(scheme='http', netloc='', path=' //www.nabulsi./', params='', query=
    'd=102&sssid=103', fragment='')
    >>> parse_qs(_.query)['sssid']
    ['103']
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Si le but est de récupérer les caractères après le dernier "=", .rsplit() est quand même plus intuitif que les "regexp":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> url = "http: //www.nabulsi.c...d=102&sssid=103"
    >>> int(url.rsplit('=')[-1]) + 1
    104
    Dans tous les cas, la réponse au PO:

    se résume quand même à aller pianoter à la console "pour voir".
    Et il est facile d'obtenir rapidement une réponse par soi-même plutôt que de poster et attendre que quelqu'un veuille bien prendre la peine de...

    - W
    réception terrible .......tout doux

  8. #8
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par aime_jeux Voir le message
    réception terrible .......tout doux
    non seulement c'est pas dit méchamment mais il a pleinement raison, il suffisait d'ouvrir un interpréteur python et y coller ta ligne pour "savoir la valeur"

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par dahtah Voir le message
    Salut,

    Un peu dur a dire, vu que le bout de code que tu donnes n'est pas valide.

    Si c'est ca a la place:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>>str(int(url[-3:-1] + url[-1]) + 1)
    >>> # identique a:
    >>>str(int(url[-3:]) + 1)
    C'est un affreux moyen d'incrementer le dernier chiffre de l'URL que tu proposes. En gros pour http://....ssid=103 le bout de code renverra "104". Mais y'a tellement de moyens que ca ne fonctionne pas (+/- de 3 chiffres, parametres de la requete dans un autre ordre, ...)
    un grand merci mon ami message reçu
    je voulais juste savoir le bout de cette fonction

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    mon travail se base sur enigma2 et IDLE ne me convient pas
    Ne me dites pas que vous vous souviendrez de toutes les fonctions
    enfin merci a vous

  11. #11
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    en fait - à titre indicatif et toujours histoire de donner à ce thread un peu plus d'intérêt que ne revêt la question initiale - dans l'expression que tu donnes il n'y a que 2 fonctions, str() et int(), la première sert à convertir en string, la seconde à convertir en nombre entier, donc c'est assez simple à se souvenir effectivement

    la seule difficulté vient de ce qu'on appelle le slicing qui consiste en fait à prendre une portion de chaine (pour le dire simplement), ainsi chaine[-3] donnera le 3e caractère de la chaine en partant de sa fin, tandis que chaine[5:8] extraira la sous-chaine composée des caractères 5 (exclu) à 8 (inclu) de la chaine chaine initiale

    en clair c'est une expression très simple, sans subtilité particulière, et IDLE suffit tout à fait pour l'interpréter, et pour peu qu'on ait codé autre chose qu'un print 'hello world' ça se fait même de tête


  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    en fait - à titre indicatif et toujours histoire de donner à ce thread un peu plus d'intérêt que ne revêt la question initiale - dans l'expression que tu donnes il n'y a que 2 fonctions, str() et int(), la première sert à convertir en string, la seconde à convertir en nombre entier, donc c'est assez simple à se souvenir effectivement

    la seule difficulté vient de ce qu'on appelle le slicing qui consiste en fait à prendre une portion de chaine (pour le dire simplement), ainsi chaine[-3] donnera le 3e caractère de la chaine en partant de sa fin, tandis que chaine[5:8] extraira la sous-chaine composée des caractères 5 (exclu) à 8 (inclu) de la chaine chaine initiale

    en clair c'est une expression très simple, sans subtilité particulière, et IDLE suffit tout à fait pour l'interpréter, et pour peu qu'on ait codé autre chose qu'un print 'hello world' ça se fait même de tête

    en bref
    moi je croyais que le code était destiné au url
    mais après avoir lu la réponse de dahtah j'ai su qu'il y a un problème avec l'url
    j'ai fouiné et j'ai trouvé d'ou venais le probleme
    il fallait juste prendre en considération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="ss_cat.php?id=104&amp;sid=111&amp;ssid=112">coucou</a></li>
    j'ai donné un bout de code rien que pour savoir et connaitre mon erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def load_data(self, data, main_url):
            movies = re.findall('<li><a href="(.+?)">(.+?)</a></li>', data)
            y = 1
            for each in movies:
                url, title = each
                if y < 6:
                    blabla= title[0:2]
                    # title = title.replace(blabla, '')
                    url = 'blobloblo' + url.replace('?', '?pg=1&').replace('ss_cat', 'sss_cat')  + '&sssid=' + str(int(url[-3:-1] + url[-1]) + 1)
                    self.letter_list.append(show_letter(title, url))
                    y += 1
    de mon coté j'ai trouvé la solution
    et si vous voulez continuez a faire de la discussion .......
    merci dahtah

  13. #13
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par aime_jeux Voir le message
    en bref moi je croyais que bla bla bla...
    oui je comprends, t'as bien raison

    merci
    ben de rien, à la prochaine et bonne continuation à toi

Discussions similaires

  1. [XL-2002] Demande d'aide sur la fonction autofilter
    Par Disabled30 dans le forum Excel
    Réponses: 77
    Dernier message: 07/10/2014, 13h56
  2. [MySQL] demande d'aide sur une fonction
    Par kairi084 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/05/2012, 13h51
  3. Demande aide (debutant) => Fonctions
    Par Invité dans le forum C
    Réponses: 5
    Dernier message: 15/11/2009, 20h12
  4. [Demande d'aide fonctions mathématiques en vb .Net]
    Par monromero dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/03/2007, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo