"j'espère que c'était suffisamment explicite" Quand j'entends ça, je suis obligé de sourire. Tes vidéos sont toutes extraordinairement explicites, tes exemples permettent de comprendre ce que tu veux nous montrer et tout est fait avec soin. Je tenais à te remercier car c'est grâce à toi et à tes vidéos que j'ai envie d'apprendre la programmation, tu donnes les meilleurs cours que des profs auraient pu donner pour intéresser les gens. Continue comme ça, je pense que tu as aidé un très grand nombre de personnes avec ce que tu fais
Je ne prends jamais ce que je fais comme acquis, et je trouve toujours moyen de faire encore mieux que les fois précédentes (et tant mieux, quelque part). Je te remercie pour le retour, à bientôt et bonne continuation sur FormationVidéo ! 👍
Super vidéo, je connaissais déjà le principe des threads, mutex, semaphore etc mais je voulais voir la syntaxe python avec une explication rapide. Bref c’est très bien expliqué, exemples pertinents et pas à pas comme il faut. Continue comme ça 😁✌🏻
Ah voilà une explication de 1er plan. c'est clair, pas trop verbeux, bravo. pour moi qui ait fait mon temps en informatique temps réel dans le temps, je cherchais à savoir si qqchose était possible sous python, que je ne connais que depuis 2 semaines. cette vidéo m'aura fait gagner un temps fou pour une petite app que je développe, qui doit extraire des datas et les afficher en même temps dans l'Ihm. -> quand quelqu'un fait une explication limpide c'est qu'il domine le sujet.
Merci de ton commentaire, je te souhaite plein de réussite avec les contenus proposés ! +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8/ |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
je n'ai pas compris comment dans la class MyProcess on peut définir les 2 fonction que l'on veux faire travailler parallèlement. Il faut créer deux method run ? enfin je ne pense pas car surcharger 2 fois la même method dans un même class nous avancerait a rien. si tu n'as pas compris ce que j'ai pas compris(comprehension-sception) en gros avant que tu crée la class MyProcess tu avais 2 fonction que tu a exécuter en parallèle avec threading.Thread(target=function1) et après la même chose mais avec target=function2, mais apres quand tu a crée la class fille de threading tu a crée une method nommée run(self), mais dedans tu y a mis que une seul indication de fonction pour 2 thread, mais comment faire si comme au début on veux lancer deux fonction ? merci d'avance
Oui, la méthode start() fera appel à run() +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
Super vidéo je cherchais depuis un moment un moyen simple de mettre en place des threads, contenu parfait ! A 18"30, bizarrement les thread ne s'exécutent pas dans un ordre aléatoire. J'ai ajouté dans le verrou un print(threading.current_thread) et constate que mon script exécute d'abord les 3 boucles pour le thread1 puis les 3 boucles pour le thread2. Après réflexion et quelques tests, j'ai l'impression que dans cet exemple, le premier thread ne "laisse pas le temps" au deuxième de se lancer. Il n'y a que l'incrémentation de i avant que la boucle (et donc le verrou) se lance à nouveau. En rajoutant un sleep juste avant/après l'incrémentation, ça reprend un comportement asynchrone :).
Très bonne vidéo, Merci je suis pas mal de vos tuto et s'a m'aide vraiment, cependant j'aurais une petite questions, lorsque vous dites surchager le constructeur et la méthode run de la classe Threading, pourquoi ce ne serait pas plutot des redéfinitions, car on met la même signature ?
@@formation-video Bonjour, J'utilise des interfaces graphiques xaml pour certaines applications or pour une j'ai besoin d'un traitement en parallèle de l'interface, j'ai donc essayé de lancer ce traitement dans un thread et l'interface dans un autre or j'ai une "SystemError: Le thread appelant doit être en mode STA, comme l'exigent de nombreux composants de l'interface utilisateur" Je sais que xaml est habituellement utilisé avec C#, VB... et que ce fameux mode STA doit être lié à ces langages mais je voulais savoir si c'était possible en python... Merci :)
En effet, pas de mode STA en python ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Pour donner un autre exemple, lorsque l'on scanne des badges, l'enregistrement est envoyé en local et sur le serveur. Pour que l'enregistrement sur le serveur qui prend plus de temps ne gêne pas l'enregistrement en local et bien la tâche va être sur une liste d'attente en mémoire. La programmation asynchrone permet que l'utilisateur ne percoivent pas le temps d'éxecution.
Oui, la synchronisation peut toujours être faite en différé dans ce cas +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
Super vidéo bien expliqué, merci. Mais j’aurais une question svp, savez comment on fait pour partager des données entre thread, je dois lire un fichier texte et distribuer les lignes entre plusieurs threads, c'est possible ? Merci.
Dans ton cas précis, tu auras par exemple besoin de mettre en place des files d'attente, que tu peux implémenter via le module "queue" de Python : docs.python.org/3/library/queue.html
Un thread ne peut pas vraiment être interrompu ou stoppé depuis ton programme, mais uniquement avec un arrêt/interruption du programme lui-même, puis le thread est conçu pour exécuter une tâche jusqu'au bout, qui se terminera donc de lui-même. +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8/ |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
Bonjour, un thread est un fil d'exécution. Si tu es sur Windows, tu peux aller voir dans le Gestionnaire des tâches, onglet "Performance" puis cliquer sur la gauche sur ton processeur. Tu verras sur la partie de droite le nombre de threads en cours d'exécution (sûrement quelques milliers).
bonjour, il y a une impertinence dans la partie concernant le lock. En effet dans ton exemple, si on trace le suivi de quel thread est en train d'écrire "ABC" tu obtiens tous les thread th1 puis seulement TOUS les thread th2. or ce n'est pas ce qui est voulu (j'ai fait le test du tracage de quel thread est en train d'écrire ABC) Pour être pertinent, il faut par exemple ajouter un time.sleep (0.2) EN DEHORS DU LOCK, permettant de donner du temps à l'autre thread de prendre la main! Ainsi tu auras toujours A,B et C écrits séquentiellement, mais dans par un ordre aléatoire th1 th2
Quel moment de la vidéo aussi ? +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
Bonjour, le meilleur moyen de le savoir est justement de tester. Cela te donnera quelques réponses au passage sur l'usage que tu peux avoir des threads 👍
bonjour la chaîne de formation vidéo je veux vraiment vous félicite pour cette formidable formation en python je veux juste vous demander si vous pouvez faire un vidéo concernant l’utilisation des imprimante en python comment peut passer une texte à imprimer à une machine d'impression
Bonjour, au plus simple tu peux faire : pastebin.com/tPY4NwWF Qui va utiliser l'imprimante par défaut spécifiée sur ton OS. +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
Oui, c'est l'ordonnanceur du système qui décide de passer la main ou non à un thread, donc le résultat peut être différent à l'exécution. Sur des projets plus conséquents, tu pourras les employer pour exécuter deux tâches en parallèles, et verras un peu mieux leur fonctionnement 😉
Petit problème je met mon code pour te montrer en gros il s'agit de trouver tous les nombres premiers de 1 a n ou l'on choisi n. Je pensais calculer 2 nombres en même temps pour aller plus vite mais je voudrais que chaque thread utilise la même fonction avec des valeurs différentes hors j'ai l'erreur: Exception in thread Thread-2: Traceback (most recent call last): File "C:\Program Files (x86)\Python36-32\lib\threading.py", line 916, in _bootstrap_inner self.run() File "C:\Program Files (x86)\Python36-32\lib\threading.py", line 864, in run self._target(*self._args, **self._kwargs) TypeError: 'int' object is not callable quand je créer mon thread : th=Thread(target=is_not_prime(k,liste)) Voila le pastebin: pastebin.com/bWdxVL3r Edit: problème résolu mais normalement si je calcule 4 nombre a la fois c'est plus rapide que 1 et pourtant le programme est plus rapide sans ... 33 secondes pour aller a 100k sans et 37 avec celui çi... Pastbin: pastebin.com/8L1Bkrxe
C'est plus rapide si les calculs peuvent être faits en parallèle, sinon au contraire, l'usage de threads peut ralentir le traitement. Donc, ton programme est plus rapide sans, et tu as bien fait d'effectuer des tests pour le vérifier. +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@@formation-video donc il n'y a pas de manière artificielle d'augmenter momentanément la puissance de calcul de l'ordi .j'ai vu un truc avec opengl et directX sur ton cours pygame notamment même si je ne sais pas exactement ce qu c'est je crois avoir compris que ça permet d'utiliser les autres pièces que le cpu pour faire des calculs supplémentaires .
Oui, tu peux déléguer le travail de calcul à ta carte graphique par exemple, et utiliser l'accélération matérielle plutôt que de laisser la tâche au processeur qui s'occupe déjà de l'exécution du programme et la gestion des processus (y compris de l'OS). +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
J’ai un soucis. Je souhaite exécuter une fonction (avec arguments) de manière cyclique. Y’a des astuces avec les threads mais ça n’est pas claire… auriez vous des conseils de vidéo ou des solutions ?
@@formation-video yes, en creusant j’ai trouvé des trucs et en re-regardant votre vidéo sur les foncions Python, j’ai re compris des trucs et paf! Ça l’a fait. Merci !
par contre la méthode threading.Thread.__init__ je l'utilise absurdement j'ai pas l'abitude d'utiliser deux constructeur en une seul class ya t 'il une autre syntax? même si elle est plus longue ms pour éviter que je me plante
Si tu ne veux pas écrire explicitement le nom de la classe parente, tu utilises la fonction super(). Ce qui donnera dans ton constructeur de MyProcess la ligne -> super().__init__(self) ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Bonjour, la fonction super() va simplement faire appel au contenu de la classe parente, par exemple, sa méthode init(). La surcharge de méthodes permet de la redéfinir, pour qu'elle soit différente de la classe parente.
Bonjour, j'ai commencer a codé grace a tes vidéo merci pour sa, j'aimerais savoir s'il est possible de faire comme dans la vidéo c'est a dire de faire apparaitre l'un apres l'autre des caractere mais sur la meme ligne. J'ai beaucoup chercher et j'ai trouver end=' ', pour que print ne retourne pas a la ligne, mais dans le cas ou j'utilise for lt in , sa affiche rien puis quand la boucle est finis sa affiche tous dun coup, alors que j'aimerais faire l'inverse
Oui, mais il faudra passer par un timer. Il existe ce genre de classe (Timer) dans le module threading de Python 👍 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@@formation-video lorsqu'un verrou est bloqué (threading.acquire()), ce dernier ne peut être liberé (threading.release()) que par le thread qui la bloqué. Comment est-ce qu'avec un Lock un autre Thread peut libérer ce dernier, puisqu'on ne pourra pas acceder à threading.release() ? Exemple : threading.acquire() Action1() threading.release()
La méthode release() permet justement de libérer le verrou depuis un autre thread éventuellement, comme l'indique la documentation : docs.python.org/3/library/threading.html#threading.Lock.release
salut j'adore tais vidéo , je te cache pas que je fait pas mal d'aller retour dedans :'''') . en revanche j'ai quelque question sur les thread. genre j'ai un prog remplie d'une multitude de fonction (j'ai pas de classe ), peut on le couper en 2 genre un thread qui prend ma fonction principale soit 99% du prog qui et kill par os._exit(0) et un thread 2, qui tournerais en boucle pour un système de sauvegarde automatique , qui serait kill par le thread 1 ? et poser des with lock a tous les endroit critique genre les diffèrent écriture de fichier , peut importe la fonction ou elle ce trouve ? de même je n'est pas vue sur les dock de façons de kill les diffèrent thread proprement en sachant que mon prog ce fini pas vraiment temps que je lui est pas demander :/ continue tais vidéo vraiment au top pour tous le monde intéresser par l'informatique, est bien expliquer :) merci a toi
Bonjour, tu peux effectivement faire des traitements parallèles, tant que les ressources éventuellement partagées sont bien synchronisées et que des verrous sont présents là où il le fait. Il ne te reste qu'à tester et expérimenter 👍
@@formation-video compte sur moi déjà testé hier dans mais 1000 ligne de fonction enchevêtrés les une dans les autre 😂 et ça a l'aire d'être un calvaire a m'être en place. Vue que, de ce que j'ai vue un tread ne fait que une fonction et ne déclanche pas les fonctions interne. 😌😂
Bonjour, je me suis mise à la programmation python3 sur raspberry 4 depuis 1 mois (orienté domotique) et je cherche à présent de réaliser 2 boucles: l'une stoppant l'autre. Je m'explique: une LED clignote tant qu'un système extérieur (station météo, ping,...) n'a pas répondu positivement. Cela est-il possible? Si oui, auriez vous un tuto, une vidéo auquel je peux me référer?
Bonjour, Encore une fois une excellente vidéo! Merci! =) J'ai une question: lorsque je lance les programmes d'exemple (en dehors du dernier avec le verrou) les 2 réponses des 2 threads s'affichent sur la même ligne. Ex: ooooooooooxxxxxxxxxx ooooooooooxxxxxxxxxx ooooooooooxxxxxxxxxx ou AA BB CC AA ... J'ai tapé exactement de même code que dans la vidéo, j'ai revérifié plusieurs fois. D'où cela peut-il venir ? Un changement depuis la version de 2018?
@@formation-video # coding:utf-8 import time import threading def process_one(): i = 0 while i < 3: print("0000000000") time.sleep(0.3) i += 1 def process_two(): i = 0 while i < 3: print("xxxxxxxxxx") time.sleep(0.3) i += 1 th1 = threading.Thread(target=process_one, name="thread1") th2 = threading.Thread(target=process_two) th1.start() th2.start() th1.join() th2.join() print("Fin du programme")
Peut-être un tutoriel en annexe, qui sera publiée dans la playlist appropriée ici : ruclips.net/p/PLrSOXFDHBtfFMB2Qeuej6efzZRvjRdXo8 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
Bonjour, tu as plusieurs manières pour cela, comme générer une Exception, en mettant un point d'arrêt (via un flag, une trace), ou même en envoyant un signal pour stopper ton programme. ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
salut !:) Jason j'ai un probleme File "progAsynch.py", line 48 while i < 3: ^ IndentationError: unindent does not match any outer indentation level class MyProcess(threading.Thread): def __init__(self): threading.Thread.__init__(self) def run(self): i = 0 while i < 3: with my_look: letter = "ABC" for lt in letter: print(lt) time.sleep(0.5) i += 1
Tu as un soucis au niveau de l'indentation de ton code, voire un mélange entre des tabulations et espaces. ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Possible que cette programmation asychrone résolve mes méditations sur les horloges d'un jeu d'échecs : pendant que les Blancs réfléchissent et jouent, les Noirs attendent, et aini de suite....
Merci pour la Vidéo!!! serait-il possible de mettre un cours sur la programmation asynchrone utilisant le module ( Asyncio ) ? surtout sur le theme de gestion clients serveur: ( multi threading ) est a l’échelle de quelques milliers ( asynchrone ) est a l’échelle 10k - 100k Merci encore
j'ai ce message d'erreur : Traceback (most recent call last): File "C:\Users\pillo\Desktop\py\prg_async.py", line 2, in ? import threading ImportError: Bad magic number in C:\Users\pillo\Desktop\py\threading.pyc
Le mot "threading" étant un module de Python, tu dois éviter d'appeler ton fichier avec le même nom d'abord ;) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
J'ai vérifié et il me semble que mon fichier était nommé différemment je pense que mon probleme vien de mes deux version de python la 2.X et 3.X car je suis obliger de basculer entre les deux car tkinter ne marche que sur python 2.X
Voir mon commentaire sur la vidéo de PIP, désinstalle toutes tes versions de Python pour remettre uniquement la version 3.7 : Windows 32 bits > www.python.org/ftp/python/3.7.4/python-3.7.4.exe ou si tu as : Windows 64 bits > www.python.org/ftp/python/3.7.4/python-3.7.4-amd64.exe De faire une installation personnalisée, pour s'assurer que tout ce qui doit être coché l'est (notamment l'installation de tkinter/Tcl, PIP, et l'ajout de Python à la variable d'environnement Path) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
c est bizard pour moi il me disent que le "i" est une erreur dans: def run(self): i = 0 while i < 3: letters = "ABC" for lt in letters: print(lt) time.sleep(0.3) i+=1
Oui, tu dois faire attention à ton indentation de code +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
Bonjour. Avec Windows 7, tu vas être limité car les versions récentes ne sont pas compatibles avec ce dernier. En conséquence, la dernière version que tu peux installer ne sera que la 3.8 : www.python.org/ftp/python/3.8.10/python-3.8.10.exe
salut, s'il te plait je vais soutenir bientot je suis pas pret j'aimerai que tu m'aides, je programme avec python l'envoie d'une image vers un e-mail, mais le soucis est que j'aimerai que l'envoie soit totalement automatique c'est a dire que le logiciel s'actualise au bout de quelque seconde car presentement dans mon code faut toujours faire f5 pour actualiser pour que 'image soit envoyé merci d'avance
Bonjour, pour cela, tu dois mettre en place une tâche asynchrone, ou tu peux aussi regarder du côté de CRON, ça te donnera quelques renseignements sur l'automatisation de tâches ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
La vidéo est toujours d'actualité? J'ai essayé ce code : import threading import time ############ class selftest(threading.Thread): def __init__(self): threading.Thread.__init__(self) def func(self): print("Run!") i = 0 while i < 9: print(threading.current_thread()) time.sleep(0.2) i += 1 thrA = selftest() thrB = selftest() thrA.start() thrB.start() thrA.join() thrB.join() print("end") ################# Et rien ne marche '--' , à part end
Ya rien à faire, j'arrive toujours pas à comprendre le fonctionnement des class en python meme apres avoir revue ta vidéo sur le sujet, c'est pas intuitif, faut vraiment chercher la logique de ces fichus class
Je t'invite à regarder cette vidéo qui aborde la théorie de manière globale sur la programmation objet : ruclips.net/video/5j5z9BJCAW8/видео.html Et si cela ça ne suffit pas, n'hésite pas à poser des questions 😉
Salut Jason j'ai cette erreur qui me bloque : C:\Users\Dell\Desktop\Script>py Script.py Traceback (most recent call last): File "Script.py", line 6, in my_lock = threading.Rlock() AttributeError: module 'threading' has no attribute 'Rlock' Merci beaucoup pour toutes tes vidéos.
L'erreur t'indique que le module "threading" n'a aucun attribut qui porte le nom de "Rlock" ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ RUclips (personnel) : ruclips.net/user/jasonchampagne ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
class MonThread(threading.Thread): def __init__(self ,name, i): threading.Thread.__init__(self) self._name=name self._num=i def run(self): j = 0 while j < 20: with my_lock: # ainsi, l'ecriture de ABCD ci-dessus ne sera pas pertubee entre les deux threads! letters = "ABCD" for lett in letters: print(lett) time.sleep(0.23+int( self._num)/10) print(threading.current_thread()) *time.sleep(0.2) # =====> si on enleve cette ligne tous les th1 sont executé, PUIS seulement tous les th2* j+=1 Mth1= MonThread(" Thread 1",1) Mth2= MonThread(" Thread 2",2) Mth1.start() Mth2.start() Mth1.join() Mth2.join()
"j'espère que c'était suffisamment explicite"
Quand j'entends ça, je suis obligé de sourire. Tes vidéos sont toutes extraordinairement explicites, tes exemples permettent de comprendre ce que tu veux nous montrer et tout est fait avec soin.
Je tenais à te remercier car c'est grâce à toi et à tes vidéos que j'ai envie d'apprendre la programmation, tu donnes les meilleurs cours que des profs auraient pu donner pour intéresser les gens. Continue comme ça, je pense que tu as aidé un très grand nombre de personnes avec ce que tu fais
Je ne prends jamais ce que je fais comme acquis, et je trouve toujours moyen de faire encore mieux que les fois précédentes (et tant mieux, quelque part). Je te remercie pour le retour, à bientôt et bonne continuation sur FormationVidéo ! 👍
@@formation-video Merci, continue comme ça
@@formation-video pour tout te dire tu fais ça très bien, j'apprends a mon rythme et tu te mets extrêmement bien a notre place donc bravo
Excellentes explications, claires et accessibles. Merci
Ravi que ce soit compris 🙂
Cette vidéo est exactement ce que je voulais! Ta voix est aussi très apaisante...
Merci beaucoup (:
Merci et bon courage à toi 😉
Merci pour cette explication parfaite ! j'ai toujours eu du mal avec la programmation asynchrone et avec tes exemples c'est nettement plus clair :D
Bonne continuation :)
Super vidéo, je connaissais déjà le principe des threads, mutex, semaphore etc mais je voulais voir la syntaxe python avec une explication rapide. Bref c’est très bien expliqué, exemples pertinents et pas à pas comme il faut.
Continue comme ça 😁✌🏻
Merci, bon courage et à bientôt 👋
Ah voilà une explication de 1er plan. c'est clair, pas trop verbeux, bravo.
pour moi qui ait fait mon temps en informatique temps réel dans le temps, je cherchais à savoir si qqchose était possible sous python, que je ne connais que depuis 2 semaines. cette vidéo m'aura fait gagner un temps fou pour une petite app que je développe, qui doit extraire des datas et les afficher en même temps dans l'Ihm.
-> quand quelqu'un fait une explication limpide c'est qu'il domine le sujet.
Content de savoir que cela va servir pour ton application, merci du retour 😉
J'ai hâte d'attaquer la vidéo 29 Merci Mister
👍
MERCI BEAUCOUP QUELLE BENEDICTION CETTE VIDEO
👍
Passionnant comme toujours, merci beaucoup.
Merci 🙏
Bonjour Jason, es ce que vous comptez faire C++ ? Merci pour tes vidéos, c'est très intéressants.
Merci beaucoup ! J'affirme que ne pas s'abonner à ce compte, c'est rater pleines des choses. Continuez à nous en fournir.
Merci de ton commentaire, je te souhaite plein de réussite avec les contenus proposés !
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8/
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
je n'ai pas compris comment dans la class MyProcess on peut définir les 2 fonction que l'on veux faire travailler parallèlement. Il faut créer deux method run ? enfin je ne pense pas car surcharger 2 fois la même method dans un même class nous avancerait a rien.
si tu n'as pas compris ce que j'ai pas compris(comprehension-sception) en gros avant que tu crée la class MyProcess tu avais 2 fonction que tu a exécuter en parallèle avec threading.Thread(target=function1) et après la même chose mais avec target=function2, mais apres quand tu a crée la class fille de threading tu a crée une method nommée run(self), mais dedans tu y a mis que une seul indication de fonction pour 2 thread, mais comment faire si comme au début on veux lancer deux fonction ?
merci d'avance
hyper intéressant merci !
Merci à toi surtout :) !
J'espère que tout était suffisamment détaillé
Du python ! Merci Jason ;)
Et oui, la suite est là :)
Merci pour la vidéo, tout est super clair ^_^
🙏
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Il y a quelque chose que je ne comprend pas. th1.start() lance la fonction run() ?
Oui, la méthode start() fera appel à run()
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
@@formation-video Merci !! Je m'y remet =)
@@formation-video Pourquoi la fonction start fait appel à run ? Si je change le nom de run, sa marche pas, pourquoi ?
@@barbeblanche1581 Parce que Run est une méthode spéciale.
très bonne vidéo merci !
Merci Hatim :)
plutôt bonne vidéo, le RLock() est intéressant.
Incroyable vidéo merci !!
De rien 👍
Génial ! ... comme d'habitude quoi ! ;-)
Merci beaucoup ! 👍
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
Super vidéo je cherchais depuis un moment un moyen simple de mettre en place des threads, contenu parfait ! A 18"30, bizarrement les thread ne s'exécutent pas dans un ordre aléatoire. J'ai ajouté dans le verrou un print(threading.current_thread) et constate que mon script exécute d'abord les 3 boucles pour le thread1 puis les 3 boucles pour le thread2. Après réflexion et quelques tests, j'ai l'impression que dans cet exemple, le premier thread ne "laisse pas le temps" au deuxième de se lancer. Il n'y a que l'incrémentation de i avant que la boucle (et donc le verrou) se lance à nouveau. En rajoutant un sleep juste avant/après l'incrémentation, ça reprend un comportement asynchrone :).
Pas de quoi, et bonne idée de tester pour voir comment cela fonctionne en pratique 👍
Youpiiii enfin python !!!
Merciiii
De rien, bon visionnage :) !
Très bonne vidéo, Merci je suis pas mal de vos tuto et s'a m'aide vraiment, cependant j'aurais une petite questions, lorsque vous dites surchager le constructeur et la méthode run de la classe Threading, pourquoi ce ne serait pas plutot des redéfinitions, car on met la même signature ?
Oui c'est une redéfinition 👍
Bonjour Jason, comment je pourrais faire pour passer un thread en mode STA s'il te plaît (si c'est possible avec ce module) ?
Bonjour, c'est-à-dire ?
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@@formation-video Bonjour, J'utilise des interfaces graphiques xaml pour certaines applications or pour une j'ai besoin d'un traitement en parallèle de l'interface, j'ai donc essayé de lancer ce traitement dans un thread et l'interface dans un autre or j'ai une "SystemError: Le thread appelant doit être en mode STA, comme l'exigent de nombreux composants de l'interface utilisateur" Je sais que xaml est habituellement utilisé avec C#, VB... et que ce fameux mode STA doit être lié à ces langages mais je voulais savoir si c'était possible en python...
Merci :)
En effet, pas de mode STA en python
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Pour donner un autre exemple, lorsque l'on scanne des badges, l'enregistrement est envoyé en local et sur le serveur. Pour que l'enregistrement sur le serveur qui prend plus de temps ne gêne pas l'enregistrement en local et bien la tâche va être sur une liste d'attente en mémoire. La programmation asynchrone permet que l'utilisateur ne percoivent pas le temps d'éxecution.
Oui, la synchronisation peut toujours être faite en différé dans ce cas
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
Super vidéo bien expliqué, merci.
Mais j’aurais une question svp, savez comment on fait pour partager des données entre thread, je dois lire un fichier texte et distribuer les lignes entre plusieurs threads, c'est possible ?
Merci.
Dans ton cas précis, tu auras par exemple besoin de mettre en place des files d'attente, que tu peux implémenter via le module "queue" de Python : docs.python.org/3/library/queue.html
@@formation-video Ok merci
Bonjour, je voulais savoir s'il existe une méthode pour interrompre un thread ?
Un thread ne peut pas vraiment être interrompu ou stoppé depuis ton programme, mais uniquement avec un arrêt/interruption du programme lui-même, puis le thread est conçu pour exécuter une tâche jusqu'au bout, qui se terminera donc de lui-même.
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8/
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
Bonjour, est-ce que le nombre de thread correspond au nombre de coeur physique ou virtuel ?
Bonjour, un thread est un fil d'exécution. Si tu es sur Windows, tu peux aller voir dans le Gestionnaire des tâches, onglet "Performance" puis cliquer sur la gauche sur ton processeur. Tu verras sur la partie de droite le nombre de threads en cours d'exécution (sûrement quelques milliers).
@@formation-video Merci !
bonjour, il y a une impertinence dans la partie concernant le lock.
En effet dans ton exemple, si on trace le suivi de quel thread est en train d'écrire "ABC" tu obtiens tous les thread th1 puis seulement TOUS les thread th2. or ce n'est pas ce qui est voulu (j'ai fait le test du tracage de quel thread est en train d'écrire ABC)
Pour être pertinent, il faut par exemple ajouter un time.sleep (0.2) EN DEHORS DU LOCK, permettant de donner du temps à l'autre thread de prendre la main! Ainsi tu auras toujours A,B et C écrits séquentiellement, mais dans par un ordre aléatoire th1 th2
Bonjour, oui, dans un cas réel, les tâches prendraient un certain temps à être réalisées, cela va de soi 😉
Je n'obtiens rien pour th2.join c'est normal ? Et j'ai du faire i
Quel moment de la vidéo aussi ?
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
Très utile merci
Je t'en prie =)
Bonjour, est il possible d'utiliser les threads pour écouter sur un port, et en meme temps traiter le messages arrivant sur ce port ??
Bonjour, le meilleur moyen de le savoir est justement de tester. Cela te donnera quelques réponses au passage sur l'usage que tu peux avoir des threads 👍
bonjour la chaîne de formation vidéo je veux vraiment vous félicite pour cette formidable formation en python je veux juste vous demander si vous pouvez faire un vidéo concernant l’utilisation des imprimante en python comment peut passer une texte à imprimer à une machine d'impression
Bonjour, au plus simple tu peux faire : pastebin.com/tPY4NwWF
Qui va utiliser l'imprimante par défaut spécifiée sur ton OS.
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
salut, je viens de decouvri ta video, et je ne comprends pas pourquoi, mais quand je lance mes deux threads, ils s'executent à la suite...
Oui, c'est l'ordonnanceur du système qui décide de passer la main ou non à un thread, donc le résultat peut être différent à l'exécution. Sur des projets plus conséquents, tu pourras les employer pour exécuter deux tâches en parallèles, et verras un peu mieux leur fonctionnement 😉
@@formation-video d'accord merci beaucoup pour ta réponse !
De rien ;)
Petit problème je met mon code pour te montrer en gros il s'agit de trouver tous les nombres premiers de 1 a n ou l'on choisi n. Je pensais calculer 2 nombres en même temps pour aller plus vite mais je voudrais que chaque thread utilise la même fonction avec des valeurs différentes hors j'ai l'erreur:
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Program Files (x86)\Python36-32\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\Program Files (x86)\Python36-32\lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
TypeError: 'int' object is not callable
quand je créer mon thread : th=Thread(target=is_not_prime(k,liste))
Voila le pastebin: pastebin.com/bWdxVL3r
Edit:
problème résolu mais normalement si je calcule 4 nombre a la fois c'est plus rapide que 1 et pourtant le programme est plus rapide sans ... 33 secondes pour aller a 100k sans et 37 avec celui çi...
Pastbin: pastebin.com/8L1Bkrxe
C'est plus rapide si les calculs peuvent être faits en parallèle, sinon au contraire, l'usage de threads peut ralentir le traitement. Donc, ton programme est plus rapide sans, et tu as bien fait d'effectuer des tests pour le vérifier.
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
@@formation-video donc il n'y a pas de manière artificielle d'augmenter momentanément la puissance de calcul de l'ordi .j'ai vu un truc avec opengl et directX sur ton cours pygame notamment même si je ne sais pas exactement ce qu c'est je crois avoir compris que ça permet d'utiliser les autres pièces que le cpu pour faire des calculs supplémentaires .
Oui, tu peux déléguer le travail de calcul à ta carte graphique par exemple, et utiliser l'accélération matérielle plutôt que de laisser la tâche au processeur qui s'occupe déjà de l'exécution du programme et la gestion des processus (y compris de l'OS).
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
J’ai un soucis. Je souhaite exécuter une fonction (avec arguments) de manière cyclique. Y’a des astuces avec les threads mais ça n’est pas claire… auriez vous des conseils de vidéo ou des solutions ?
Tu peux te servir d'un timer : docs.python.org/3/library/threading.html?highlight=thread#threading.Timer
@@formation-video yes, en creusant j’ai trouvé des trucs et en re-regardant votre vidéo sur les foncions Python, j’ai re compris des trucs et paf! Ça l’a fait. Merci !
Parfait ! 👍
par contre la méthode threading.Thread.__init__ je l'utilise absurdement j'ai pas l'abitude d'utiliser deux constructeur en une seul class ya t 'il une autre syntax? même si elle est plus longue ms pour éviter que je me plante
Si tu ne veux pas écrire explicitement le nom de la classe parente, tu utilises la fonction super(). Ce qui donnera dans ton constructeur de MyProcess la ligne -> super().__init__(self)
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
est ce possible qu'une class herite de plusieurs autres class ?
Non, en revanche, une classe "parent" peut avoir plusieurs classes "enfant"
Salut Jason, j'arrive toujours pas avec la notion super(). et je ne comprends pas la notion de surchage de méthodes. Merci d'avance.
Bonjour, la fonction super() va simplement faire appel au contenu de la classe parente, par exemple, sa méthode init(). La surcharge de méthodes permet de la redéfinir, pour qu'elle soit différente de la classe parente.
@@formation-video Merci infiniment.
De rien, bonne journée 👋
Bonjour, j'ai commencer a codé grace a tes vidéo merci pour sa, j'aimerais savoir s'il est possible de faire comme dans la vidéo c'est a dire de faire apparaitre l'un apres l'autre des caractere mais sur la meme ligne. J'ai beaucoup chercher et j'ai trouver end=' ', pour que print ne retourne pas a la ligne, mais dans le cas ou j'utilise for lt in , sa affiche rien puis quand la boucle est finis sa affiche tous dun coup, alors que j'aimerais faire l'inverse
Oui, mais il faudra passer par un timer. Il existe ce genre de classe (Timer) dans le module threading de Python 👍
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Bonjour,
merci pour cette super série ! :)
Petite question : quelle est la différence entre threading.Lock() et threading.RLock() ?
MERCIII
Bonjour, la différence est simple.
Lock : n'importe quel thread peut libérer un verrou
RLock : un verrou doit être libéré par le thread qui l'a bloqué
@@formation-video lorsqu'un verrou est bloqué (threading.acquire()), ce dernier ne peut être liberé (threading.release()) que par le thread qui la bloqué. Comment est-ce qu'avec un Lock un autre Thread peut libérer ce dernier, puisqu'on ne pourra pas acceder à threading.release() ?
Exemple :
threading.acquire()
Action1()
threading.release()
La méthode release() permet justement de libérer le verrou depuis un autre thread éventuellement, comme l'indique la documentation : docs.python.org/3/library/threading.html#threading.Lock.release
bonjour... super video mais j'ai un pb : quadj'import le moddule il me dit qu'il ne trouve pas "thread" dans "threading"
si tu pouvait m'aider :D
Bonjour, montre ton code
combien de boucle (threads on peux faire en même temp ? )
En soi, pas de limites, cela va dépendre de ton processeur, ça peut-être plusieurs dizaines de milliers
salut j'adore tais vidéo , je te cache pas que je fait pas mal d'aller retour dedans :'''') .
en revanche j'ai quelque question sur les thread. genre j'ai un prog remplie d'une multitude de fonction (j'ai pas de classe ), peut on le couper en 2 genre un thread qui prend ma fonction principale soit 99% du prog qui et kill par os._exit(0) et un thread 2, qui tournerais en boucle pour un système de sauvegarde automatique , qui serait kill par le thread 1 ? et poser des with lock a tous les endroit critique genre les diffèrent écriture de fichier , peut importe la fonction ou elle ce trouve ? de même je n'est pas vue sur les dock de façons de kill les diffèrent thread proprement en sachant que mon prog ce fini pas vraiment temps que je lui est pas demander :/
continue tais vidéo vraiment au top pour tous le monde intéresser par l'informatique, est bien expliquer :) merci a toi
Bonjour, tu peux effectivement faire des traitements parallèles, tant que les ressources éventuellement partagées sont bien synchronisées et que des verrous sont présents là où il le fait. Il ne te reste qu'à tester et expérimenter 👍
@@formation-video compte sur moi déjà testé hier dans mais 1000 ligne de fonction enchevêtrés les une dans les autre 😂 et ça a l'aire d'être un calvaire a m'être en place. Vue que, de ce que j'ai vue un tread ne fait que une fonction et ne déclanche pas les fonctions interne. 😌😂
Bonjour, je me suis mise à la programmation python3 sur raspberry 4 depuis 1 mois (orienté domotique) et je cherche à présent de réaliser 2 boucles: l'une stoppant l'autre. Je m'explique: une LED clignote tant qu'un système extérieur (station météo, ping,...) n'a pas répondu positivement. Cela est-il possible? Si oui, auriez vous un tuto, une vidéo auquel je peux me référer?
Bonjour, pour interrompre une boucle, on utilise l'instruction "break" tout simplement 👍
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Vas-tu nous présenter les modules pygame et pyglet ?
Sinon continue tes vidéos elles son superbes !
Après la partie web et réseaux, on fera de la 2D avec Pygame oui.
Bonjour,
Encore une fois une excellente vidéo! Merci! =)
J'ai une question: lorsque je lance les programmes d'exemple (en dehors du dernier avec le verrou) les 2 réponses des 2 threads s'affichent sur la même ligne.
Ex:
ooooooooooxxxxxxxxxx
ooooooooooxxxxxxxxxx
ooooooooooxxxxxxxxxx
ou
AA
BB
CC
AA
...
J'ai tapé exactement de même code que dans la vidéo, j'ai revérifié plusieurs fois.
D'où cela peut-il venir ? Un changement depuis la version de 2018?
Quel est ton code exactement ?
@@formation-video
# coding:utf-8
import time
import threading
def process_one():
i = 0
while i < 3:
print("0000000000")
time.sleep(0.3)
i += 1
def process_two():
i = 0
while i < 3:
print("xxxxxxxxxx")
time.sleep(0.3)
i += 1
th1 = threading.Thread(target=process_one, name="thread1")
th2 = threading.Thread(target=process_two)
th1.start()
th2.start()
th1.join()
th2.join()
print("Fin du programme")
Et ça me renvoie:
0000000000xxxxxxxxxx
0000000000xxxxxxxxxx
xxxxxxxxxx0000000000
Fin du programme
@@warhead3337 Je pense que c'est l'éditeur de texte que t'utilise, ça m'a fait la même chose sur Pysharm, mais sur VS CODE, ça met pas en ligne
Bonjour, je voulais poser une question, est-ce que il va y avoir une vidéo sur le module turtle ? Sinon j'adore tes vidéos, bon travail !
Peut-être un tutoriel en annexe, qui sera publiée dans la playlist appropriée ici : ruclips.net/p/PLrSOXFDHBtfFMB2Qeuej6efzZRvjRdXo8
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
Merci
De rien ;)
Si vous avez des tutoriels sur l'installation de moi et bras en python sous mac je serai reconnaissante
Bonjour, l'installation de quoi exactement sur MacOS ? Je n'ai pas compris
Bonjour Jason. S'il te plaît comment tuer un ou arrêter un Thread ?
Bonjour, tu as plusieurs manières pour cela, comme générer une Exception, en mettant un point d'arrêt (via un flag, une trace), ou même en envoyant un signal pour stopper ton programme.
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
salut !:) Jason j'ai un probleme
File "progAsynch.py", line 48
while i < 3:
^
IndentationError: unindent does not match any outer indentation level
class MyProcess(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
i = 0
while i < 3:
with my_look:
letter = "ABC"
for lt in letter:
print(lt)
time.sleep(0.5)
i += 1
Tu as un soucis au niveau de l'indentation de ton code, voire un mélange entre des tabulations et espaces.
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Possible que cette programmation asychrone résolve mes méditations sur les horloges d'un jeu d'échecs : pendant que les Blancs réfléchissent et jouent, les Noirs attendent, et aini de suite....
Oui, pour avoir des tâches en parallèle 👍
Avec en outre une contabilisation du temps de réflexion pour jouer, pendant que l'autre armée a son temps de réflexion mis en pause....
Merci pour la Vidéo!!!
serait-il possible de mettre un cours sur la programmation asynchrone utilisant le module ( Asyncio ) ?
surtout sur le theme de gestion clients serveur:
( multi threading ) est a l’échelle de quelques milliers
( asynchrone ) est a l’échelle 10k - 100k
Merci encore
Bonjour, je verrai ce qui peut être intéressant à aborder dans des tutoriels en annexe :)
Merci Beaucoup et Bonne journée :)
Bonne journée à toi o/
j'ai ce message d'erreur :
Traceback (most recent call last):
File "C:\Users\pillo\Desktop\py\prg_async.py", line 2, in ?
import threading
ImportError: Bad magic number in C:\Users\pillo\Desktop\py\threading.pyc
Le mot "threading" étant un module de Python, tu dois éviter d'appeler ton fichier avec le même nom d'abord ;)
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
J'ai vérifié et il me semble que mon fichier était nommé différemment je pense que mon probleme vien de mes deux version de python la 2.X et 3.X car je suis obliger de basculer entre les deux car tkinter ne marche que sur python 2.X
Voir mon commentaire sur la vidéo de PIP, désinstalle toutes tes versions de Python pour remettre uniquement la version 3.7 :
Windows 32 bits > www.python.org/ftp/python/3.7.4/python-3.7.4.exe
ou si tu as :
Windows 64 bits > www.python.org/ftp/python/3.7.4/python-3.7.4-amd64.exe
De faire une installation personnalisée, pour s'assurer que tout ce qui doit être coché l'est (notamment l'installation de tkinter/Tcl, PIP, et l'ajout de Python à la variable d'environnement Path)
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
super ! :)
😄
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
c est bizard pour moi il me disent que le "i" est une erreur dans:
def run(self):
i = 0
while i < 3:
letters = "ABC"
for lt in letters:
print(lt)
time.sleep(0.3)
i+=1
Oui, tu dois faire attention à ton indentation de code
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- Jason CHAMPAGNE - jasonchampagne.fr
+---------------------------------------------------------------------------------------------------------------------------------------------+
|- COUCOU, TU VEUX :
|--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
|--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
|--- T'abonner à mon autre chaîne RUclips ? ruclips.net/user/jasonchampagne
|--- Me follow sur Twitter ? twitter.com/jachampagne8
|--- Liker la page Facebook ? facebook.com/jachampagne8
|--- Me follow sur Insta ? instagram.com/jachampagne8
|--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
+---------------------------------------------------------------------------------------------------------------------------------------------+
bsr pardon mais j'arrive pas à installer python .j'ai windows 7 32bit
Bonjour. Avec Windows 7, tu vas être limité car les versions récentes ne sont pas compatibles avec ce dernier. En conséquence, la dernière version que tu peux installer ne sera que la 3.8 : www.python.org/ftp/python/3.8.10/python-3.8.10.exe
salut, s'il te plait je vais soutenir bientot je suis pas pret j'aimerai que tu m'aides, je programme avec python l'envoie d'une image vers un e-mail, mais le soucis est que j'aimerai que l'envoie soit totalement automatique c'est a dire que le logiciel s'actualise au bout de quelque seconde car presentement dans mon code faut toujours faire f5 pour actualiser pour que 'image soit envoyé merci d'avance
Bonjour, pour cela, tu dois mettre en place une tâche asynchrone, ou tu peux aussi regarder du côté de CRON, ça te donnera quelques renseignements sur l'automatisation de tâches
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
FormationVidéo vous avez Des tuto pour me guider?
Pas en particulier, mais il existe plein de solutions. Une simple est la suivante :
- Installer pyautogui (via PIP)
- simuler l'appui sur la touche F5 : pastebin.com/XaNxbCH5
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
FormationVidéo whouaouh très bien trouvé
Merci
Je vais l’essayer une fois chez moi
FormationVidéo et s’il te plaît pour l’envoie de plusieurs image car présentement je parviens qu’envoyer une seule image
Rlock me pose une AttributeError, J'ai essayé avec Lock et ça me donne le bon résultat (Sous python 3.7.2)
D'accord, et ça fonctionne comme prévu ?
Oui
Bien :)
Merci pour tes réponses toujours plus rapide tu es exceptionnel ! :)
De rien, à bientôt o/
mrci
De rien ;)
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Salut,, est ce que le mot-clé 'async' devant les fonctions (+ 'await' ) joue le même rôle que le RLock du module threading ?
Merci d'avance :)
La vidéo est toujours d'actualité? J'ai essayé ce code :
import threading
import time
############
class selftest(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def func(self):
print("Run!")
i = 0
while i < 9:
print(threading.current_thread())
time.sleep(0.2)
i += 1
thrA = selftest()
thrB = selftest()
thrA.start()
thrB.start()
thrA.join()
thrB.join()
print("end")
#################
Et rien ne marche '--' , à part end
Normal que cela ne fonctionne pas, ta méthode doit s'appeler "run()", et pas "func()" comme tu l'as fait
@@formation-video AAAAAYaa Okay d'accord merci! ça explique pourquoi ducoup, ça débloque ^^ Je vais pouvoir continuer la playlist sans excuse
👍
J'espérais en apprendre plus sur async et await
Pas ici, au moment où cette vidéo a été faite, cela n'existait pas encore
Ya rien à faire, j'arrive toujours pas à comprendre le fonctionnement des class en python meme apres avoir revue ta vidéo sur le sujet, c'est pas intuitif, faut vraiment chercher la logique de ces fichus class
Je t'invite à regarder cette vidéo qui aborde la théorie de manière globale sur la programmation objet : ruclips.net/video/5j5z9BJCAW8/видео.html
Et si cela ça ne suffit pas, n'hésite pas à poser des questions 😉
Salut Jason j'ai cette erreur qui me bloque :
C:\Users\Dell\Desktop\Script>py Script.py
Traceback (most recent call last):
File "Script.py", line 6, in
my_lock = threading.Rlock()
AttributeError: module 'threading' has no attribute 'Rlock'
Merci beaucoup pour toutes tes vidéos.
L'erreur t'indique que le module "threading" n'a aucun attribut qui porte le nom de "Rlock"
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ MERCI DE TON SOUTIEN ! 🔻
◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jasonchampagne
◾ Twitch : www.twitch.tv/jachampagne
◾ RUclips (personnel) : ruclips.net/user/jasonchampagne
◾ Twitter : twitter.com/jachampagne8
◾ Facebook : facebook.com/jachampagne8
◾ Instagram : instagram.com/jachampagne8
◾ Snapchat : www.snapchat.com/add/jachampagne8
◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
salut
(suite...)
my_lock =threading.RLock()
class MonThread(threading.Thread):
def __init__(self ,name, i):
threading.Thread.__init__(self)
self._name=name
self._num=i
def run(self):
j = 0
while j < 20:
with my_lock: # ainsi, l'ecriture de ABCD ci-dessus ne sera pas pertubee entre les deux threads!
letters = "ABCD"
for lett in letters:
print(lett)
time.sleep(0.23+int( self._num)/10)
print(threading.current_thread())
*time.sleep(0.2) # =====> si on enleve cette ligne tous les th1 sont executé, PUIS seulement tous les th2*
j+=1
Mth1= MonThread(" Thread 1",1)
Mth2= MonThread(" Thread 2",2)
Mth1.start()
Mth2.start()
Mth1.join()
Mth2.join()
Merci
De rien 👍
Merci
😉