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 :

vecteurs, listes et puissance


Sujet :

Python

  1. #1
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut vecteurs, listes et puissance
    Bonjour,

    Les listes plates (de profondeur 1) sont utilisées en calcul numérique , pour représenter les vecteurs ; la dimension d'un vecteur V est alors len(V) .
    Soit V = [] ; quelles instructions permettraient de remplir ce vecteur avec les seizes premiers entiers positifs , de 0 à 15 ?
    Ma réponse est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> V = []
    >>> for x in range(0, 15) : V = V + [x] ( c'est dans le cours , mais j'ai pas compris)
     
    >>> V
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

    exercice 1 :

    Soit V = [] ; quelles instructions permettraient de remplir ce vecteur avec les carrés des seize premiers entiers positifs , de 1 à 16 ?
    Ma réponse est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> V = []
    >>> for x in range(1, 16) : V = V + [x**2]
     
    >>> V
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225]


    Donc si j'ai bien saisi , si on nous demande des instruction avec les seize premières puissance de 2 , de 15 à 0 ,décroissante de la gauche vers la droite ,la réponse serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> V = []
    >>> for x in range(15, 0, -1) : V = V + [x**x]
     
    >>> V
    [437893890380859375L, 11112006825558016L, 302875106592253L, 8916100448256L, 285311670611L, 10000000000L, 387420489, 16777216, 823543, 46656, 3125, 256, 27, 4, 1]

    exercice 2 :

    Comment extraire de V les 8 puissances les plus faibles ?

    Ma réponse est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste=[1, 2, 3, 4,5, 6,7,8]
    for index in range(len(liste)) :
    ...  print index, "=", liste[index]


    PS: je sais que pour une puissance de 2 , çà équivaut à 2 puissance x .

    Mais l'opérateur ** est différent de * , à quoi sert t-il ?


    Merci d'avance
    _""""Cats have a big heart ^^ unlike some bad people (whose will never change in their brain) """

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    V = []
    for x in range(0, 15) : V = V + [x]
    C'est très moche. Très très moche. Le principe ici est de rajouter à la liste V un élément, successivement 0,1,2 jusqu'à 14 (soit 15 entiers). Je ne te conseil pas d'écrire cela sur une seule ligne, ce n'est pas une bonne habitude. Mieux vaut faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    V = [] #Liste vide
    for x in range(0,15):
        V = V + [x]
    Tu peux aussi utiliser les "listes en intentions". C'est une structure populaire en python (et faite pour ça):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V = [x for x in range(0,15)]
    Avoue que c'est plus classe. De même tu peux avoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V = [x**2 for x in range (15,0,-1)]
    En python, de base, tu n'as pas le symbole puissance "^", il est remplacé par "**" tout simplement. En maths tout du moins. "*" pour une multiplication (pour être plus précis c'est l'appel à la méthode __mul__()).

    Si tu veux récupérer certains éléments d'une liste, il te faut connaitre les "slice" (ou "coupe" en français). C'est la base, rien de compliqué. Si ta liste est triée, récupérer les 8 premiers éléments se fait comme ceci:

    Je te conseille de lire les cours de bases, ça te servira!

    Ciao

  3. #3
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Merci beaucoup
    Justement , est-ce que tu connais un tuto pour les bases de python ?

    Donc quand tu parle du slice , on pourrait l'utiliser dans cette exercice :

    Soit G un vecteur de gros mots ,avec un programme simple, il faut remplacer chaque juron de ce vecteur par le double de cet élément ?

    Je n'ai compris que veut dire le double de cet élément , le double çà veut dire exemple : x*2 .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> G = ['zut','merde']
    >>> G_new = G[1]
    >>> G_new
    'merde'

    PS : def is_list(x) : return type(x) is type (list()) je sais pas quel est son sens ?pourtant ,j'ai relu le cours 10 fois .

    Le 'for ' et 'in' , quelles sont leur fonction ?
    _""""Cats have a big heart ^^ unlike some bad people (whose will never change in their brain) """

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 817
    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 817
    Points : 7 110
    Points
    7 110
    Par défaut
    PS : def is_list(x) : return type(x) is type (list()) je sais pas quel est son sens ?
    Cette fonction permettra de savoir si x est une liste.

    Entre parenthèses, on préfèrera tout de même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def is_list(x):
        return isinstance(x, list)
    Voir limite aucune fonction, je trouve cette fonction assez inutile...

    Boucle for
    Instruction in

    Google, 2 secondes, faites un effort !!!

    le double çà veut dire exemple : x*2
    Oui tout à fait, mais j'ai du mal à voir l'intérêt si ce n'est peut-être de montrer que ça fonctionne autant avec les nombres qu'avec les chaines de caractères.
    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)

  5. #5
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    ok! Je me suis poser la question à quoi servait def is_list(x) , donc on peut faire la méme chose pour d'autres éléments .L'instruction in montre que quelques choses contient un élèment .

    Donc au fait , la boucle for peut très bien marcher avec un liste et aussi 'range' mais là je pense que c'est avec une liste logiquement ,on parle de créer un liste d’éléments mais de remplacer .
    _""""Cats have a big heart ^^ unlike some bad people (whose will never change in their brain) """

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/09/2010, 00h13
  2. Vecteur ou liste d'IplImages ?
    Par bricoleurfoo dans le forum OpenCV
    Réponses: 3
    Dernier message: 03/04/2008, 10h20
  3. Réponses: 7
    Dernier message: 10/10/2007, 11h29
  4. Vecteur ou liste orienté objet?
    Par Vincent157 dans le forum C++
    Réponses: 4
    Dernier message: 03/07/2007, 14h49
  5. Réponses: 10
    Dernier message: 19/09/2006, 03h15

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