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

[PYTHON] Aide pour exercices débutant

Jorisjojo
Jorisjojo
Niveau 10
25 avril 2018 à 00:33:12

Bonsoir à tous,

Il m'est demandé de faire les exercices suivants, cependant étant débutant je rencontre de nombreuses difficultés ... Voici les exercices et voici ce que j'ai fait :
https://image.noelshack.com/fichiers/2018/17/3/1524609068-ex1.jpg
https://image.noelshack.com/fichiers/2018/17/3/1524609079-ex1.png

https://image.noelshack.com/fichiers/2018/17/3/1524609089-ex2.jpg
https://image.noelshack.com/fichiers/2018/17/3/1524609098-ex2.png

https://image.noelshack.com/fichiers/2018/17/3/1524609105-ex3.jpg
https://image.noelshack.com/fichiers/2018/17/3/1524609111-ex3.png

Merci d'avance pour votre aide

PTSI-PT
PTSI-PT
Niveau 32
25 avril 2018 à 14:59:15

Premier exo: déjà, on ne te demande pas de vérifier que la donnée d'entrée est bien valide mais osef
Il faut que tu raisonnes ligne par ligne
La première ligne doit être une chaîne de caractère contenant l "*"
print("*"*l) fera l'affaire
Ensuite tu veux afficher h-2 chaines de caractère de la forme * puis l-2 blancs puis *
Pour construire cette dernière tu peux écrire "*"+" "*(l-2)+"*"
(Entre 2 chaines de caractères, le + est une opération de concaténation, "a"+"b"="ab")
Il faut donc que tu utilises une boucle for pour afficher h-2 fois cette chaine
Ensuite il ne te reste plus qu'à afficher "*"*l une nouvelle fois

Message édité le 25 avril 2018 à 14:59:46 par PTSI-PT
PTSI-PT
PTSI-PT
Niveau 32
25 avril 2018 à 15:09:03

2ième exo tu as fais le bon raisonnement, mais tu as mis des "return" au milieu de ta fonction!
Le return sert à sortir de ta fonction et renvoyer une donnée
Si tu supprime les return ça devrait fonctionner, mais remplace aussi les print('True') et print('False') par des return True et return False, parce qu'il est préférable que ta fonction renvoie une donnée en sortie, pour que tu puisses l'appeler dans d'autres fonctions, parce que le print n'est qu'un affichage, il n'est pas exploitable

Exemple:
def f(x):
return 2*x

ici si tu écris a=f(5), tu assignes à a le nombre 10
Mais ça ne fonctionne pas avec un print

PTSI-PT
PTSI-PT
Niveau 32
25 avril 2018 à 15:17:25

Exo 3, tu as mal compris la consigne
On te donne 2 listes de nombre et tu dois retourner tous les produits possible
exemple: pour l1=[2,3] et l2=[2,5], tu dois renvoyer [2*2,2*3,2*5,3*5]
La multiplication entre listes n'a pas de sens, [1,2]*[2,2] ne renvoie pas [2,4], ce n'est pas une multiplication terme à terme
Pour cet exo il doit avoir beaucoup de méthodes possibles (pour éviter les doublons surtout), je ne vais pas te donner de solution
Pour appeler le 5ième élément d'une liste, on écrit L[4] (4 et pas 5 car on énumère à partir de 0): si L=[0,0,1,0,0,2], L[2]*L[5]=1*2
Il va sans doute falloir que tu utilises des boucles une nouvelle fois

Jorisjojo
Jorisjojo
Niveau 10
25 avril 2018 à 21:32:23

Merci infiniment pour tes réponses, elles m'ont permis de résoudre l'exercice 1 et 2. Pour l'exercice 3 j'ai essayé d'avancer mais je suis coincé :

https://image.noelshack.com/fichiers/2018/17/3/1524684732-ex3.png
https://image.noelshack.com/fichiers/2018/17/3/1524684739-ex31.png

spf1
spf1
Niveau 12
25 avril 2018 à 21:46:58
def prod(l1,l2):
	return list(set([i*j for i in l1 for j in l2]))

On écrit un one-liner et on sent Pythonist :)

PTSI-PT
PTSI-PT
Niveau 32
25 avril 2018 à 21:52:50

Le 25 avril 2018 à 21:46:58 Spf1 a écrit :
def prod(l1,l2): return list(set([i*j for i in l1 for j in l2]))

On écrit un one-liner et on sent Pythonist :)

https://image.noelshack.com/fichiers/2017/03/1484773333-risitaszoom.jpg

PTSI-PT
PTSI-PT
Niveau 32
25 avril 2018 à 22:01:33
l3=l1[i]*l2[i]

Cette ligne est fausse pour 2 raisons: là, tu définit l3 comme égale à l1[i]*l2[i] et ce à chaque passage dans la boucle for
Donc à la fin de ton programme, tu auras juste l3=l1[n]*l2[n]
Ce que tu veux c'est créer une liste des l1[i]*l2[i] , pour ça une fois que tu as définis ta liste l3 (ce que tu as fait au début) il faut que tu écrive: l3.append(l1[i]*l2[i]) (ajouter l1[i]*l2[i] à l3), ou encore l3=l3+[l1[i]*l2[i]] (l3 devient égale à la concaténation de l3 et l1[i]*l2[i])
L'autre erreur est que là, tu n'ajoutes pas tous les produits! Par exemple pour l1=[1,2] et l2=[2,3], tu auras l3=[2,6], il te manque les produits des termes d'indices différents, il faut en fait que tu utilises 2 boucles for, pour parcourir tous les indices

Pour l'erreur syntaxe, je crois que ça vient de ce que tu as écrit dans tes entrées, la fonction devrait bien renvoyer l1[n]*l2[n] et pas une erreur

PTSI-PT
PTSI-PT
Niveau 32
25 avril 2018 à 22:02:22

(avec n=len(l1) pardon)

Jorisjojo
Jorisjojo
Niveau 10
25 avril 2018 à 22:34:52

Merci, j'ai bien réussi à résoudre l'erreur en imposant les 2 listes, cependant que devrais-je mettre à la place de list() si je veux demander les listes à l'utilisateur ?

Il ne me reste plus qu'à faire les deux boucles pour faire tous les produits !

Jorisjojo
Jorisjojo
Niveau 10
25 avril 2018 à 22:52:26

Lorsque j'essaie de changer l'indice de l'élément de la liste (par exemple je veux faire une autre boucle avec l3=l3+[l1[i]*l2[i+1]]) ça ne marche plus ...

PTSI-PT
PTSI-PT
Niveau 32
26 avril 2018 à 01:00:04

Juste l1=input("Veuillez......") devrais fonctionner je pense si l’utilisateur saisit une liste (donc avec les crochets et les virgules, [0,1,2] par exemple)
Mais je suis pas trop sur, je n'ai jamais utilisé la fonction input et j'ai pas python sous la main pour vérifier

PTSI-PT
PTSI-PT
Niveau 32
26 avril 2018 à 01:02:58

A mon avis ça ne marche plus parce que tu sors de ta liste
Si tu appelles L[5] alors que L=[1,2,3] ça te renverra une erreur, car il n'y a pas assez de termes dans ta liste
Dans le cas général, l1 et l2 sont de tailles différentes
J'aimerais que tu trouves l'astuce tout seul, mais c'est très classique, tu t'en resservira certainement des dizaines de fois, il faut que tu utilises 2 boucles for imbriquées et que tu fasse apparaître la longueur de tes 2 listes

Message édité le 26 avril 2018 à 01:03:27 par PTSI-PT
Jorisjojo
Jorisjojo
Niveau 10
26 avril 2018 à 12:13:00

C'est bon c'est réussi, merci beaucoup !

Sous forums
  • Histoire
  • Environnement & Nature
  • Politique
  • Cours et Devoirs
  • Philosophie
  • Métiers & Orientation
La vidéo du moment