- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Une des forces de Python, c'est qu'il dispose de beaucoup de modules qui sont disponiblesdirectement avec ce langage, qui vont vous permettre de faire tout un tas d'opérationsassez intéressantes.
00:00:09 :Dans ce cas-ci, on va avoir un module qui est le module random qui permet de générerdes nombres aléatoires.Donc ce qu'on va faire, c'est qu'on va reprendre notre boucle et notre cube et grâceà ce module random, on va pouvoir créer des cubes de façon aléatoire à l'intérieur
00:00:22 :de notre scène.Donc on peut l'importer directement comme ça en faisant import random et à l'intérieurde ce module, on va avoir tout un tas de fonctions qui vont nous permettre d'effectuercertaines opérations aléatoires.
00:00:32 :Si vous souhaitez savoir tout ce que vous avez de disponible à l'intérieur d'unmodule, je vais vous montrer deux fonctions qui sont très pratiques.Il y a la fonction dire et la fonction help.
00:00:41 :Donc dire, ça va nous permettre d'afficher tout ce que vous pouvez faire sur un objet.Donc si j'importe ce module random et que j'affiche dire de random, vous allez vousretrouver avec une liste ici, qui au départ va contenir beaucoup de choses dont vous n'avezpas besoin de vous soucier.
00:00:55 :Vous voyez il y a plein de choses ici avec des tirés du bas, alors ça c'est des trucsqui sont réservés pour le module que vous n'avez pas besoin d'utiliser.
00:01:01 :Nous ce qui va nous intéresser, c'est plus vers la fin quand vous commencez à voir lestirés du bas qui disparaissent, voilà c'est toutes ces choses là ici.
00:01:07 :Donc par exemple, choice ici, gamma variate, get state, on a les randint, random, randrangequi sont bien pratiques et donc tout ça en fait c'est des choses que vous pouvez utilisersur ce module random.
00:01:18 :Donc par exemple si je prends randint, ici c'est une fonction et pour l'utiliser on vafaire donc random, donc le nom du module point la fonction.
00:01:27 :Maintenant si vous voulez savoir ce que l'on peut faire avec cette fonction, je vais laprendre et je vais la copier ici dans le help.
00:01:33 :Alors je la colle à l'intérieur des parenthèses, attention n'appelez pas cette fonction doncne mettez pas des parenthèses à la suite, là on veut juste passer la fonction à cettefonction help pour afficher l'aide de cette fonction.
00:01:44 :Donc je sélectionne tout ça, je valide avec ctrl entrée pour exécuter le script et làvous voyez que ça nous affiche en fait l'aide de cette fonction, donc ça nous dit que cettefonction on peut l'appeler comme ça, vous voyez on fait randint entre parenthèsesa et b et ça va nous retourner un nombre aléatoire, donc un nombre entier, un integer
00:02:02 :dans le range de a et b avec le a et le b qui vont être inclus.Donc si par exemple on met un range de 0 à 10 on va pouvoir créer un nombre aléatoireentre 0 et 10 inclus.
00:02:12 :Donc vous voyez qu'avec ces deux fonctions déjà vous pouvez faire ce qu'on appellede l'introspection et voir très facilement ce qu'il est possible de faire avec un moduleet avec une fonction en particulier.
00:02:21 :Il faut savoir également que quand on importe un module on peut le faire directement enimportant une fonction en particulier.Imaginez que vous souhaitez utiliser la fonction randint, vous pouvez l'importer en faisantfrom random import randint.
00:02:35 :Si on fait ça on va pouvoir utiliser randint directement, donc comme ceci en faisant parexemple 0,10 et là on va générer un nombre aléatoire entre 0 et 10.
00:02:44 :Si vous importez votre module comme ça avec import random là il va falloir préfixerla fonction du nom du module donc random.randint.Il y a également quelque chose que vous allez voir assez souvent que je vous déconseillede faire, c'est cette façon donc avec l'astérisque, ça ce que ça va faire en fait c'est que
00:02:59 :ça va importer tous les noms qui sont dans ce module dans notre script.Donc tout ce qu'on voit ici le BPF, log4, random, tous ces trucs là ici qu'on a affichésavec la fonction dire ça va être importé dans votre script.
00:03:11 :Donc ça peut paraître pratique puisque si je fais ça et bien directement je pourraisutiliser par exemple randrange ou seed ou sample sans avoir besoin de les préfixerdu nom du module et sans avoir besoin de les spécifier ici en disant randrange.seed.sample.
00:03:24 :Donc ça peut paraître très pratique, le problème c'est que vous allez importer énormémentde choses dans l'espace global de votre script et c'est donc déjà un peu lent.
00:03:34 :Ce n'est pas conseillé également parce que vous allez avoir plein de choses que potentiellementvous pourriez effacer.Par exemple on va importer des noms comme sample, donc sample c'est un nom assez classique,assez courant qu'on pourrait utiliser pour une variable et donc là dans ce cas-ci çarisquerait de surcharger en fait l'espace de votre script avec plein de noms inutiles.
00:03:52 :Donc je vous déconseille de faire comme ça, importez soit le module et ensuite vous préfixezle nom des fonctions du module donc par exemple random.randrange et comme ça vous avez quelque
00:04:02 :chose qui est protégé entre guillemets, qui est protégé par le nom du module oualors vous importez spécifiquement une fonction comme ça en faisant from random import randed.
00:04:11 :Assez parlé de l'import, on va maintenant mettre ça en pratique, donc je vais dansmon cas importer le module random au complet et on va générer un nombre aléatoire eton va le générer à l'intérieur de notre boucle.
00:04:23 :Donc je vais faire pour i in range de 10, on va générer un nombre aléatoire avecrandom.randint et on va générer un nombre entre 0 et 10 et ensuite je vais faire un
00:04:34 :mc.polycube et on va faire un mc.setattribute.Donc là on a les briques en fait de notre script, maintenant il va falloir rajouterquelques petites choses ici.
00:04:43 :Donc on va déjà stocker cette valeur que l'on a générée dans une variable, doncje vais l'appeler par exemple x, on va récupérer le nom de notre cube, on va faire cube égalmc.polycube, on va mettre directement les crochets à la suite donc ça c'est quelque
00:04:56 :chose que l'on peut faire également puisque quand on crée mc.polycube ici, si vous voussouvenez bien ça va nous retourner une liste et nous on souhaite récupérer uniquementle nom du premier élément dans cette liste donc on peut mettre directement crochet 0 iciet donc si j'exécute tout ça vous allez voir qu'on va créer un cube et directement
00:05:13 :récupérer dans cette variable cube le nom de notre cube donc le premier élément decette liste.Et ensuite on va pouvoir faire un setattribute ici avec un fstring, on va insérer donc notrecube donc le nom du cube ici et on va faire un .translate x et on va lui passer la valeur
00:05:28 :aléatoire que l'on a définie ici, alors j'ai oublié l'e égal, il ne faut pas oublierbien sûr l'e égal puisqu'on fait une affectation ici, on affecte la valeur aléatoire dansla variable x et je le mets ici pour le spécifier au setattribute.
00:05:40 :Donc si j'efface ça et que je relance mon script vous voyez que cette fois-ci on a descubes qui sont créés donc 10 cubes qui sont créés avec des valeurs aléatoires sur l'axedes x.
00:05:49 :On peut faire la même chose avec les autres axes donc si par exemple je veux faire lamême chose sur l'axe x, y et z je peux copier cette ligne, la coller une deuxième foiset la coller une troisième fois et modifier le nom de mes variables donc on va mettre
00:06:02 :y et z.On peut utiliser une autre fonction également qui va nous permettre d'avoir des nombresdécimaux puisque là on a des nombres entiers donc vous voyez que ça snap sur la grilledonc nous on aimerait bien avoir quelque chose d'un peu plus précis donc pour ça on peut
00:06:13 :utiliser une autre fonction qui est la fonction uniforme qui elle va nous permettre toujoursentre un certain intervalle ici donc entre 0 et 10 de récupérer un nombre décimal.
00:06:22 :Donc si j'exécute là vous voyez qu'on a 3.22 etc.Donc je vais mettre cette fonction uniforme pour x, y et z et ici plutôt que de spécifierun axe on va juste mettre translate et on va spécifier les 3 valeurs à la suite doncx, y, z.
00:06:37 :Je vais lancer tout ça et là vous voyez qu'on a des cubes aléatoirement créés sur ces3 valeurs.Donc là on a 0 à 10 donc forcément on reste dans ce carré mais on pourrait très bienmettre par exemple ici moins 10 à 10 donc comme ça on aura quelque chose d'un peu plus
00:06:51 :intéressant au niveau de l'aléatoire.Donc je relance tout ça et là vous voyez qu'on a des cubes qui sont un peu plus espacés.Donc vous voyez vraiment ces modules ils sont très pratiques on peut les utiliser pourbeaucoup de choses.
00:07:02 :On commence à avoir un script assez intéressant qu'on pourrait passer à des collègues etlà dans ce cas-ci comme je vous disais on pourrait utiliser soit la fonction inputsoit mettre des constantes au début de notre script.
00:07:12 :Par exemple on pourrait ici mettre une variable qui s'appellerait numberOfCubes qui est égaleà 10 et on va l'utiliser à l'intérieur de range.Et ici on va mettre par exemple random coef et on va mettre une 10 et on va remplacernos valeurs ici par cette variable.
00:07:27 :Donc plutôt que d'avoir 10 ici ça va nous permettre en fait d'utiliser cette variableet de dire à vos collègues que si vous voulez avoir plus de random il suffit de mettre parexemple une valeur de 50 ici et cette variable va être automatiquement répercutée à tousles endroits où on l'utilise.
00:07:40 :Donc on va mettre ici random coef pour toutes les générations aléatoires de nombre etlà si je relance vous voyez qu'on a quelque chose qui est beaucoup plus espacé sur lescubes et on va pouvoir en créer beaucoup plus.
00:07:51 :Donc je vais par exemple dire ici que je veux un coefficient moindre donc de 5 mais queje veux par contre 250 cubes.Je relance tout ça et là vous voyez qu'on a plein de cubes au centre qui sont créésaléatoirement.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.