Très claire! Merci🎉 bientot une video sur comment coder un module? Ou peut etre comment utiliser le oddoo.sh?
@kaderbuxnaq323622 сағат бұрын
Bonjour à tous. Excellent Tuto pour les débutants. Je vous en remercie infiniment. Toutefois, je me suis dis qu'une calculatrice qui ne fonctionne avec les touches du clavier n'est pas vraiment utile. Donc j'ai fais quelques recherches et j'ai pu intégrer cette fonction (utilisation des touches du clavier). Je me suis quand même fais aidé par Copilot qui m'a permis de gérer les problème que j'ai rencontré. J'aimerais bien avoir vos avis. Et voici le résultat : " from math import floor import customtkinter customtkinter.set_appearance_mode("dark") MAX_CHIFFRES = 9 MAX_RESULT = 999999999 pile_ecran = [] nombre_courant = False operation_courante = False erreur = False def touche_appuyee (touche) : if touche in ['0', '1', '2', '3','4','5', '6', '7', '8', '9','.']: traite_touche_chiffre(touche) elif touche in ['PLUS', 'MOINS', 'MULTIPLIER', 'DIVISER'] : traite_touche_operation(touche) elif touche == 'EGAL' : traite_touche_egal() elif touche =='RESET' : traite_touche_reset() def on_key_press(event): if event.keysym in ['0', '1', '2', '3','4','5', '6', '7', '8', '9','.']: traite_touche_chiffre(event.keysym) elif event.keysym in ['plus', 'minus', 'asterisk', 'slash'] : if event.keysym in ['plus'] : traite_touche_operation('PLUS') elif event.keysym in ['minus'] : traite_touche_operation('MOINS') elif event.keysym in ['asterisk'] : traite_touche_operation('MULTIPLIER') elif event.keysym in ['slash'] : traite_touche_operation('DIVISER') elif event.keysym == 'Return' : traite_touche_egal() elif event.keysym =='Escape' : traite_touche_reset() button.invoke() def _get_nombre_as_text_from_pile () : text = '' for num in pile_ecran: text += str(num) return text def _get_nombre_from_pile() : text = _get_nombre_as_text_from_pile() if '.' in pile_ecran : return float(text) else : return int(text) def update_screen(value=False): if value : screen.configure(text=value[0:9]) else : screen.configure(text='0') def traite_touche_chiffre(num): if len(pile_ecran)<MAX_CHIFFRES : if num =='.' and '.' in pile_ecran : return pile_ecran.append(num) update_screen(_get_nombre_as_text_from_pile()) def traite_touche_operation(operation): global nombre_courant, operation_courante traite_operation_courante() execute_operation (operation_courante) if not nombre_courant : nombre_courant = _get_nombre_from_pile() operation_courante = operation pile_ecran.clear() def traite_operation_courante(): global operation_courante if nombre_courant and operation_courante: execute_operation(operation_courante) operation_courante = False def affiche_resultat(): flottant = nombre_courant - floor(nombre_courant) if erreur : update_screen('Erreur') else : if flottant > 0: update_screen(str(nombre_courant)) else: update_screen(str(floor(nombre_courant))) def traite_touche_egal(): traite_operation_courante() def traite_touche_reset() : pile_ecran.clear() global nombre_courant, operation_courante, erreur nombre_courant = False operation_courante=False erreur=False update_screen() def execute_operation (operation): global nombre_courant, erreur if operation : nombre2 = _get_nombre_from_pile() result = 0 if operation == 'PLUS' : result = nombre_courant + nombre2 elif operation == 'MOINS' : result = nombre_courant - nombre2 elif operation == 'MULTIPLIER' : result = nombre_courant * nombre2 elif operation == 'DIVISER' : if nombre2==0: erreur = True else : result = nombre_courant / nombre2 if result > MAX_RESULT or result < -MAX_RESULT : erreur = True if not erreur : nombre_courant = result pile_ecran.clear() affiche_resultat() app = customtkinter.CTk() app.title('Calculatrice 1.0') app.geometry('380x600') app.bind('<KeyPress>', on_key_press) screen_font = ("Courrier", 55, "bold") screen = customtkinter.CTkLabel(app, text="0", font=screen_font) screen.grid(row=0, column=0, sticky="E", padx=(10, 10), pady=(20,30), columnspan=4) font_bouton = ("Arial", 30, "bold") btn_0 = customtkinter.CTkButton(app, text='0', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('0')) btn_1 = customtkinter.CTkButton(app, text='1', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('1')) btn_2 = customtkinter.CTkButton(app, text='2', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('2')) btn_3 = customtkinter.CTkButton(app, text='3', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('3')) btn_4 = customtkinter.CTkButton(app, text='4', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('4')) btn_5 = customtkinter.CTkButton(app, text='5', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('5')) btn_6 = customtkinter.CTkButton(app, text='6', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('6')) btn_7 = customtkinter.CTkButton(app, text='7', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('7')) btn_8 = customtkinter.CTkButton(app, text='8', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('8')) btn_9 = customtkinter.CTkButton(app, text='9', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('9')) btn_plus = customtkinter.CTkButton(app, text='+', width=75, height=170, font=font_bouton, command=lambda : touche_appuyee('PLUS')) btn_moins = customtkinter.CTkButton(app, text='-', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('MOINS')) btn_multiplier = customtkinter.CTkButton(app, text='x', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('MULTIPLIER')) btn_diviser = customtkinter.CTkButton(app, text='/', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('DIVISER')) btn_egal = customtkinter.CTkButton(app, text='=', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('EGAL')) btn_point = customtkinter.CTkButton(app, text='.', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('.')) btn_reset = customtkinter.CTkButton(app, text='CE', width=75, height=75, font=font_bouton, command=lambda : touche_appuyee('RESET')) btn_0.grid(row=5, column=0, padx=(10, 10), pady=(10,10)) btn_1.grid(row=4, column=0, padx=(10, 10), pady=(10,10)) btn_2.grid(row=4, column=1, padx=(10, 10), pady=(10,10)) btn_3.grid(row=4, column=2, padx=(10, 10), pady=(10,10)) btn_4.grid(row=3, column=0, padx=(10, 10), pady=(10,10)) btn_5.grid(row=3, column=1, padx=(10, 10), pady=(10,10)) btn_6.grid(row=3, column=2, padx=(10, 10), pady=(10,10)) btn_7.grid(row=2, column=0, padx=(10, 10), pady=(10,10)) btn_8.grid(row=2, column=1, padx=(10, 10), pady=(10,10)) btn_9.grid(row=2, column=2, padx=(10, 10), pady=(10,10)) btn_plus.grid(row=4, column=3, padx=(10, 10), pady=(10,10), rowspan = 2) btn_moins.grid(row=3, column=3, padx=(10, 10), pady=(10,10)) btn_multiplier.grid(row=2, column=3, padx=(10, 10), pady=(10,10)) btn_diviser.grid(row=1, column=3, padx=(10, 10), pady=(10,10)) btn_egal.grid(row=5, column=1, padx=(10, 10), pady=(10,10)) btn_point.grid(row=5, column=2, padx=(10, 10), pady=(10,10)) btn_reset.grid(row=1, column=0, padx=(10, 10), pady=(10,10)) app.mainloop() "
@chrisder18142 күн бұрын
Bonjour j'ai eu une idée d'application mais je ne suis pas sûr que je puisse le faire avec sélénium Première étape il faudrait que je scrap des mots clés Deuxième étape chacun de ces mots clés soit analyser, taper dans la barre de recherche d'un logiciel SEO (donc avec sélénium ?) 3e étape, je récupère dans un Google sheet le résultat de mon logiciel SEO (correspondant à ses mots clés) Mais je ne suis pas sûr de la façon de faire
@InformatiqueSansComplexe2 күн бұрын
Bonjour, je pense que cela risque d'être complexe avec Sélénium. A mon avis, c'est plutôt le genre d'opération à faire avec Python ou un service comme Make.
@chrisder18142 күн бұрын
@@InformatiqueSansComplexe pas avec sélénium mais avec Python? Je ne comprends pas ce que tu veux dire, je ne connais rien au code mais j'ai cru comprendre que sélénium c'est une des librairies de Python, apparemment j'ai mal compris? Ce que je voudrais c'est récupérer des mots clés provenant soit d'un catalogue CSV d'un fournisseur ou alors provenant d'un site web.... Récupérer ses mots clés dans un fichier Google sheet puis demander à sélénium de me passer chacun de ces mots clés dans un logiciel SEO puis de récupérer les données de ce logiciel toujours dans un autre Google sheet, afin que je n'ai pas à faire les recherches une par une
@rithim93703 күн бұрын
merci
@InformatiqueSansComplexe2 күн бұрын
Merci à vous 🙂
@SafiIslam-x1c8 күн бұрын
Hello Sir, Do you need a professional youtube thumbnail designer, and youtube video SEO expert?
@InformatiqueSansComplexe5 күн бұрын
Hello Safi, thanks for your offer but I can't afford this kind of service right now.
@LauraLIENOU9 күн бұрын
Salut s'il vous plait je souhaite vraiment créer la mienne
@InformatiqueSansComplexe9 күн бұрын
Bonjour et merci pour votre commentaire. Bravo, c'est une excellente idée :)
@ibrahimabayo658111 күн бұрын
Bonjour, merci pour ces explications très claires. Avez-vous une formation complète pour Odoo Développeur ?
@InformatiqueSansComplexe11 күн бұрын
Bonjour et merci beaucoup pour votre commentaire. La formation complète pour devenir développeur Odoo est en cours de réalisation. Je vais la présenter lors d'un webinaire au mois de Mars.
@ibrahimabayo658111 күн бұрын
@InformatiqueSansComplexe Merci, j'espère que le prix sera abordable pour moi 😀.
@InformatiqueSansComplexe11 күн бұрын
C'est un investissement pour l'avenir surtout :)
@ggousier12 күн бұрын
Les 2 points et l'indentation, deux grands classiques. Cette indentation au début me rendait chèvre ! Oui avec un bon IDE, l'indentation n'est plus un problème.
@InformatiqueSansComplexe12 күн бұрын
Merci pour votre commentaire. En effet, un bon IDE est vraiment salutaire pour ça ! Mais cela m'arrive encore parfois, en particulier quand on développe sur Odoo et que l'on passe du Python au Javascript et vice-versa ! :)
@ggousier12 күн бұрын
@@InformatiqueSansComplexe Odoo l'ERP ? Vous êtes dev Odoo ? Quand on passe du JS au Python ce qui peut arriver, c'est au niveau des f-strings. Par exemple au lieu d'écrire f"Bonjour {x} ..." il m'arrive de faire un mix des 2 langages et j'écris f"Bonjour ${x}..." 😉
@InformatiqueSansComplexe11 күн бұрын
Bonjour, j'ai en effet de plus en plus de projets de personnalisation Odoo. Je trouve que c'est un produit qui permet de répondre à vraiment de très nombreux besoins des entreprises. D'ailleurs je suis en train de monter une formation complète sur le sujet :)
@ggousier11 күн бұрын
@@InformatiqueSansComplexe Intéressant votre prochaine formation. Odoo pour moi c'est l'ERP parfait pour des petites structures. C'est une solution au design moderne, convivial, intuitif et dont la courbe d'apprentissage, pour les utilisateurs finaux est bien moins ardue qu'avec SAP par exemple.
@NAPHTALIMALKA12 күн бұрын
Comment je peux apprendre python. Est ce que il y a une formation gratuite en francai
@InformatiqueSansComplexe12 күн бұрын
Bonjour, merci pour votre commentaire. Il y a pas mal de formation gratuite sur YT. Sinon j'ai fait une playlist sur le sujet : kzbin.info/www/bejne/hp7TmZh5ibFpr80
@asmahassam97514 күн бұрын
On peut utiliser quel application
@InformatiqueSansComplexe13 күн бұрын
Bonjour, pour coder vous voulez dire ? Le plus simple est d’utiliser PyCharm, c’est celui que je préfère. Sinon il y a aussi VDCode.
@katsuuki181817 күн бұрын
merci chef
@InformatiqueSansComplexe16 күн бұрын
Merci à vous :)
@simonbataille433617 күн бұрын
Merci ! Super video comme d'habitude
@InformatiqueSansComplexe16 күн бұрын
Merci beaucoup Simon :)
@benoitd9419 күн бұрын
Top merci Encore de videos ... MERCI
@InformatiqueSansComplexe18 күн бұрын
Merci à vous :)
@AdamaAdouayom19 күн бұрын
Enfin j'ai trouvé quelque chose de simple montrant une interaction claire sur les différentes échanges. Merci beaucoup pour cette vidéo.
@InformatiqueSansComplexe18 күн бұрын
Merci à vous pour votre commenaitre :)
@tozeste2citrouillethegodfa29419 күн бұрын
Merci ! Je n’ai pas encore assez de compétences pour l’utiliser mais c’est intéressant et ça a l’air utile !!
@InformatiqueSansComplexe18 күн бұрын
Merci à vous, c'est très utile en effet. Lancez-vous et essayer. Au pire, cela ne fonctionne pas et vous apprendrez beaucoup en cherchant pourquoi :)
@benoitd9419 күн бұрын
Génial vivement la prochaine vidéo
@InformatiqueSansComplexe18 күн бұрын
Merci beaucoup Benoit :)
@matiasdu6920 күн бұрын
Merci pour cette vidéo, c'est top ! Est-ce que tu pourrais nous faire une vidéo où tu nous expliques concrètement, dans quel cas typique Docker peut être utile, comment et pourquoi ? J'ai déjà regardé une petite partie de tes vidéos sur Docker, mais je ne trouve pas d'exemple précis sur pourquoi utiliser Docker pour telle ou telle chose. Merci d'avance :) Et continue, tu es vraiment au top !
@InformatiqueSansComplexe20 күн бұрын
Bonjour Matias et merci pour ton commentaire. Tout d'abord, excellente année 2025 :) Je pensais faire une vidéo pour montrer comment développer sur Odoo en utilisant Docker pour pouvoir travailler sur plusieurs projets en parallèle. Si tu as d'autres idées, n'hésites pas.
@WXChiara22 күн бұрын
Bjr Quel est l'intérêt de la virtualisation svp ? Merci beaucoup pour votre retour 🙏
@InformatiqueSansComplexe22 күн бұрын
Bonjour, la virtualisation est très utile sur un serveur par exemple pour optimiser l’utilisation des ressources. Cela permet aussi sur une machine personnelle de faire fonctionner un autre OS (par exemple un Linux dans un Window)
@WXChiara22 күн бұрын
@@InformatiqueSansComplexe Merciii pour votre retour 🙂 Bon we
@daoudadiarrassouba824226 күн бұрын
Super interressant
@InformatiqueSansComplexe25 күн бұрын
Merci beaucoup ☺️
@empereur14527 күн бұрын
J'ai pas compris c'est pas déjà une chose que odoo fait de base? Ou c'est juste pour nous montrer comment ça marche.
@InformatiqueSansComplexe25 күн бұрын
Bonjour, merci pour votre commentaire. La sécurité est de base dans Odoo. Dans cette vidéo, je montre comment l’utiliser dans son propre module.
@ludovicbriand982627 күн бұрын
Bonjour, Merci pour cette vidéo très instructive. Selon vous, pour avoir des résultats de plus en plus fiables, est-il préférable de faire beaucoup de cycles d'apprentissage sur un petit nombre de données ou de faire moins de cycles mais avec beaucoup de données à l'entrée ? Je pense notamment à des systèmes complexes (gestions de procédés industriels avec au moins 10 paramètres à suivre). Quelle serait la meilleure stratégie selon vous ? Notre objectif est de prédire la qualité du produit à la sortie : quel est mon niveau de confiance qu'il sera conforme ou non à l'attente ?
@InformatiqueSansComplexe25 күн бұрын
Bonjour et merci pour votre commentaire. Il vaut mieux faire l’apprentissage sur un grand nombre de données plutôt que de nombreuses itérations sinon vous risquez de tomber dans le sur-apprentissage : votre modèle connaîtra parfaitement vos données mais ne sera sans doute pas capable de généraliser.
@ludovicbriand982618 күн бұрын
@@InformatiqueSansComplexe merci beaucoup pour votre réponse. Je profite de ce message pour vous souhaiter une bonne année 2025. Je complète ma question si vous le voulez bien. Si on a créé un modèle avec un grand nombre de données (disons 3 à 4 ans de retour d'expérience) et qu'on continue d'en collecter chaque jour. Quelle serait la meilleure stratégie ? Injecter les nouvelles données mensuellement par exemple et refaire un apprentissage "de 0" ou est-il préférable de faire une évaluation des écarts obtenus entre la réalité et le calcul et de les injecter dans le modèle ? Comment est-ce que cela fonctionne s'il s'agit du cas n°2 ? Merci d'avance pour vos éclaircissements.
@InformatiqueSansComplexe18 күн бұрын
Bonjour Ludovic, excellente année également :) Tout dépend de ce que vous voulez faire du modèle. Si je comprends bien, vous souhaitez prédire la qualité du produit en sortie de procédé industriel. J'imagine que les données donne la qualité du produit en fonction des paramètres du procédé. Pour moi, vous n'avez pas besoin de refaire un apprentissage de "0" mais seulement de continuer l'apprentissage avec des nouvelles données. Pour valider votre modèle, je garderais un certains pourcentage de données pour la validation et non pour l'apprentissage. Quel est votre but exactement ? Trouver les bons paramètres pour obtenir la meilleure qualité ?
@ludovicbriand982617 күн бұрын
@InformatiqueSansComplexe merci pour votre retour. Notre procédé est un procédé biologique donc au-delà du produit, on cherche à surveiller le comportement de notre microorganisme. On connaît son comportement en fonction de la T°, du pH, de la quantité de nourriture, ... et j'aimerais pouvoir anticiper ce comportement en fonction d'une variation de paramètre (par exemple, dans le cas où la régulation du pH est compliquée). Il pourrait aussi s'agir de savoir à quel moment il est le plus opportun d'envoyer des micronutriments....
@InformatiqueSansComplexe17 күн бұрын
En continuant l'apprentissage mensuellement, vous devriez effectivement améliorer petit à petit le modèle 👍
@gouedanyapo912327 күн бұрын
salut.je n'arrive pas à installer alexa à partir de playstore parce que ce n'est pas disponible dans ma region. existe t-il un autre moyen?
@InformatiqueSansComplexe27 күн бұрын
Bonjour, Avez-vous essayer en utilisant un VPN ?
@azertyioq28 күн бұрын
Je n’arrive pas à installer pygame
@InformatiqueSansComplexe27 күн бұрын
Bonjour, avez vous un message d’erreur ?
@azertyioq28 күн бұрын
😔
@InformatiqueSansComplexe18 күн бұрын
Ca va aller :)
@azertyioq12 күн бұрын
@@InformatiqueSansComplexe merci c'est bon ca marche 😁
@dragon3602010Ай бұрын
Super merci et c'est quoi les prochaines différences avec portainer ou dokploy?
@InformatiqueSansComplexeАй бұрын
Merci ☺️. Les prochaines vidéos sont plus sur le stockage objet (aws S3) et comment le gérer avec Python. Mais pourquoi des vidéos sur ces outils 👍🏻
@avenuedefi8583Ай бұрын
Merci pour ton travail et bonne fête 🎉
@InformatiqueSansComplexeАй бұрын
Merci beaucoup ☺️ Bonnes fêtes également 🎄
@chrisder1814Ай бұрын
Trop fort, et pourtant je voudrais te poser une question différente, à propos de python, en ce qui concerne du scraping
@InformatiqueSansComplexeАй бұрын
Bonjour, merci pour votre commentaire. J'ai fait une vidéo sur le web scraping ici : kzbin.info/www/bejne/d2mmnIeEns-brNU
@chrisder1814Ай бұрын
@InformatiqueSansComplexe oui je l'ai vu, mais sauf que dans celle-ci tu n'explique pas quelle est la différence entre une appli genre parshub et un script python, est-ce qu'il y a des avantages et inconvénients à utiliser l'une par rapport à l'autre ?
@chrisder1814Ай бұрын
@@InformatiqueSansComplexe Ensuite est-ce que je pourrais t'écrire sur différents RS ou par email ? J'ai plusieurs idées d'applications non pas pour les revendre mais pour moi, pour mon business de vente en ligne, pour de la recherche de produits pour croiser les données dans un Google sheet par exemple et comme je suis une quiche en développement, je ne connais que dalle, je me demande quelle est la façon correcte de faire et je demande à différentes IA de me donner la bonne façon de faire et de me dire si les manières de faire auxquelles j'ai pensé sont erronés et pourquoi, j'aimerais bien que tu me dises ce que tu penses de leurs explications et que tu me dis ce que tu penses de mes idées et de mes réflexions
@chrisder18144 күн бұрын
@@InformatiqueSansComplexe bonjour je vous ai envoyé un email la semaine dernière je suis Chrisder
@MalakMiawАй бұрын
Sharh zwin 🫡
@InformatiqueSansComplexeАй бұрын
shukran :)
@NgMob243Ай бұрын
Bonjour, j'ai deux questions. la première est de savoir quel exécuteur de code utilisez vous ? Et la seconde, comment faire pour avoir Briefcase sur VSCode ?
@InformatiqueSansComplexeАй бұрын
Bonjour, merci pour votre commentaire. J'utilise PyCharm. Pour utiliser briefcase sur VSCode, vous devez sans doute l'installer via pip. Mais j'avoue que je n'utilise plus trop VSCode.
@kandedesire2700Ай бұрын
merci beaucoup cher ingénieur pour cette information, ma question est de savoir comment utiliser ces logiciels de monitoring
@InformatiqueSansComplexeАй бұрын
Bonjour, merci pour votre commentaire. Tout dépend du logiciel de supervision en fait :)
@marccaillault5080Ай бұрын
Bonjour, connaissez vous une librairie qui retourne le numéro d'une plaque d'immatriculation sur une structure JSON avec une capture de flux vidéo de caméra IP ?
@InformatiqueSansComplexeАй бұрын
Bonjour, merci pour votre commentaire. Je ne sais pas si il existe une librairie unique pour faire cela, mais en combinant une librairie qui capture le flux IP et une autre qui fait de la reconnaissance de texte sur l'image capturée, on doit pouvoir y arriver :)
@marccaillault5080Ай бұрын
Merci pour votre réponse et pour vos explications toujours très claires dans les vidéos, elles permettent de découvrir voir vulgariser des fonctions insoupçonnées qui deviennent incontournables après vos explications.
@InformatiqueSansComplexeАй бұрын
Merci beaucoup pour votre commentaire 🙂
@sth481818Ай бұрын
Simple et efficace comme toujours, merci pour ce partage très intéressant.
@InformatiqueSansComplexeАй бұрын
Merci beaucoup :)
@GariceАй бұрын
merci pour cette vidéo je l’ai adoré
@InformatiqueSansComplexeАй бұрын
Merci beaucoup ☺️
@BrunoTran-q6qАй бұрын
bonjour quand vous dites génial, avez vous une extension IA dans PyCharm qui prédit le code qui va être tapé ?
@InformatiqueSansComplexeАй бұрын
Bonjour, pour le moment je n’ai pas l’IA mais seulement la complétion intelligente de PyCharm qui est déjà souvent bluffante je trouve. J’ai prévu de tester l’IA, j’en ferai sans doute une vidéo.
@elsazooАй бұрын
Merci beaucoup !
@InformatiqueSansComplexeАй бұрын
Merci beaucoup Elsa :)
@pitchcesarАй бұрын
Je suis en pleine formation de Python et votre chaîne est une bénédiction pour moi. Un énorme MERCI. 🙏🏽
@InformatiqueSansComplexeАй бұрын
Merci à vous pour votre soutien :)
@yassineogga3218Ай бұрын
j'ai rien compris. trop vite
@InformatiqueSansComplexeАй бұрын
Bonjour Yassine et merci pour votre commentaire. Si vous avez des questions, n'hésitez pas à les poser ici pour les partager avec la communauté :)
@BrunoTran-q6qАй бұрын
malheureusement j'ai copié la meme chose, et google colab retourne une erreur : pred must not be a Python bool Arguments received by CLIPAttention.call(): • inputs=tf.Tensor(shape=(None, 77, 768), dtype=float32) • attention_mask=None'' c'est la ligne qu'il n'aime pas : images = model.text_to_image(prompt="A painting of Ferrari sport car by Vincent Van Gogh, highly detailed, impressionism, oil painting", batch_size=1)
@renardgamesАй бұрын
bonjour j'espère que vous pourrez m'aider ,j'ai un problème avec le "import pygame" ca me met ca comme erreur et je n'arrive pas a la résoudre "import "pygame" could not be resolved"
@renardgamesАй бұрын
désoler si c'est une erreur basique mais je suis débutant
@InformatiqueSansComplexeАй бұрын
Bonjour, on a tous commencé un jour donc pas de souci. Si il vous met cette erreur, c’est sans doute que le package pygame n’est pas installé. Un pip install pygame devrait résoudre le souci ou alors si vous êtes sur pycharm, passez par le gestionnaire de package.
@TsaphnathKahutaАй бұрын
J'ai essayé encore et encore , mais moi aussi j'ai le même problème @@InformatiqueSansComplexe
@thierrydauger1502Ай бұрын
@@TsaphnathKahuta Avez-vous bien installer le package correspondant : pip install pygame. ?
@Fatixe-ew8yb17 күн бұрын
@@InformatiqueSansComplexe bonjour c'est juste mon deuxième compte, je suis renardgames, et je voulais vous dire que ca fait un long moment que j'essaye de résoudre se problème a l'aide de vos conseille j'ai même désinstaller python et réinstaller mais rien y fait je sais pas si vous avez une dernière solution mais je n'aimerais pas prendre trop de votre de temp non plus mais merci d'avance.
@BrunoTran-q6qАй бұрын
bonjour, tout d'abord, merci pour ces tutos python. j'ai l'impression que votre site wordpress ne fonctionne pas, les ressources renvoient une 404, est-ce normal ?
@InformatiqueSansComplexeАй бұрын
Bonjour Bruno et merci pour votre commentaire. J'ai eu un problème de serveur et j'ai perdu le site en effet (Comme quoi les cordonniers sont souvent les plus mal chaussés!). Je recherche les sources et tentent de remettre cela en place.
@InformatiqueSansComplexeАй бұрын
J'ai pu retrouver les sources de ce petit projet. Les voici ici : informatiquesanscomplexe.com/wp-content/uploads/2024/12/NoelPython.zip. Joyeuses fêtes :)
@BrunoTran-q6qАй бұрын
Merci à vous. pas obligé tout de suite, mais les assets des autres vidéos comme les jeux du vaisseau, ce serait cool aussi. je suis dev front, je me met à python avec vos vidéos. Manque peut-être un peu de vidéos à finalité web comme django ou alors j'ai pas vu, mais c'est très bien, on va à l'essentiel. Merci
@InformatiqueSansComplexeАй бұрын
J'en ai profité pour ajouter aussi les assets du jeu de vaisseau. Il se trouve sur la vidéo 4/4 :) J'ai fait une vidéo sur flask (kzbin.info/www/bejne/nX3deqGIjchppq8), mais pas encore sur django (je crois pas...).
@french2gatherАй бұрын
Bonjour, je voulais juste finir ces vidéos et vous remercier pour ces belles leçons et idées ; je vais continuer avec le casse-briques... Voici le code présenté dans la vidéo, j'ai juste adapté un peu pour que les étoiles apparaissent en fond d'écran et non devant le vaisseau... Les images et sons doivent être également trouvées et leurs chemins adaptés dans le code, mais ce n'est pas bien difficile. import random import pygame LARGEUR_ECRAN = 800 HAUTEUR_ECRAN = 600 def redimensionner_image(chemin_image, largeur_cible, couleur_transparente=(255, 255, 255)): """ Charge une image, applique une transparence à une couleur donnée, et redimensionne proportionnellement. """ image = pygame.image.load(chemin_image).convert() # Charger l'image image.set_colorkey(couleur_transparente, pygame.RLEACCEL) # Appliquer la transparence largeur_originale, hauteur_originale = image.get_size() # Dimensions originales nouvelle_hauteur = int((largeur_cible / largeur_originale) * hauteur_originale) # Calcul de la nouvelle hauteur image_redimensionnee = pygame.transform.scale(image, (largeur_cible, nouvelle_hauteur)) # Redimensionner return image_redimensionnee class Vaisseau(pygame.sprite.Sprite): def __init__(self): super(Vaisseau, self).__init__() self.surf = redimensionner_image("vaisseau.png", 50) # Redimensionne l'image à une largeur de 50 px self.rect = self.surf.get_rect() def update(self, pressed_keys): # Pour guider le vaisseau if pressed_keys[pygame.K_UP]: self.rect.move_ip(0, -5) if pressed_keys[pygame.K_DOWN]: self.rect.move_ip(0, 5) if pressed_keys[pygame.K_LEFT]: self.rect.move_ip(-5, 0) if pressed_keys[pygame.K_RIGHT]: self.rect.move_ip(5, 0) if pressed_keys[pygame.K_SPACE]: if len(le_missile.sprites()) < 1: missile = Missile(self.rect.center) tous_sprites.add(missile) le_missile.add(missile) # Pour que le vaisseau reste dans l'écran if self.rect.left < 0: self.rect.left = 0 if self.rect.right > LARGEUR_ECRAN: self.rect.right = LARGEUR_ECRAN if self.rect.top <= 0: self.rect.top = 0 if self.rect.bottom >= HAUTEUR_ECRAN: self.rect.bottom = HAUTEUR_ECRAN class Missile(pygame.sprite.Sprite): def __init__(self, center_missile): super(Missile, self).__init__() self.surf = redimensionner_image("missile.png", 35) # Redimensionne l'image à une largeur de 35 px self.rect = self.surf.get_rect(center=center_missile) son_missile.play() def update(self): self.rect.move_ip(15, 0) if self.rect.left > LARGEUR_ECRAN: self.kill() class Ennemi(pygame.sprite.Sprite): def __init__(self): super(Ennemi, self).__init__() self.surf = redimensionner_image("ennemi.png", 50) # Redimensionne l'image à une largeur de 50 px self.rect = self.surf.get_rect(center=(LARGEUR_ECRAN + 50, random.randint(0, HAUTEUR_ECRAN))) # Les ennemis apparaissent à droite de l'écran, à une hauteur au hasard self.speed = random.randint(5, 20) # Vitesse de l'ennemi définie au hasard def update(self): self.rect.move_ip(-self.speed, 0) # Déplacement de l'ennemi vers la gauche if self.rect.right < 0: self.kill() class Explosion(pygame.sprite.Sprite): def __init__(self, center_vaisseau): super(Explosion, self).__init__() self.compteur = 10 # On affiche l'explosion pendant 10 cycles self.surf = redimensionner_image("explosion.png", 50) # Redimensionne l'image à une largeur de 50 px self.rect = self.surf.get_rect(center=center_vaisseau) son_explosion.play() def update(self): self.compteur = self.compteur - 1 # On décrémente le compteur if self.compteur == 0: self.kill() class Etoile(pygame.sprite.Sprite): def __init__(self): super(Etoile, self).__init__() self.image = redimensionner_image("etoile.png", 20) # Redimensionne l'image à une largeur de 20 px self.rect = self.image.get_rect(center=(LARGEUR_ECRAN + 20, random.randint(0, HAUTEUR_ECRAN))) # Position de départ aléatoire à droite de l'écran def update(self): self.rect.move_ip(-5, 0) # Chaque étoile se déplace vers la gauche if self.rect.right < 0: self.kill() class Score(pygame.sprite.Sprite): def __init__(self): super(Score, self).__init__() self._scoreCourant = 0 self._setText() def _setText(self): self.surf = police_score.render('Score : ' + str(self._scoreCourant), False, (255, 255, 255)) self.rect = self.surf.get_rect(center=(LARGEUR_ECRAN / 2, 15)) def update(self): self._setText() def incremente(self, valeur): # pour incrémenter le score quand on touche un ennemi self._scoreCourant = self._scoreCourant + valeur # Initialisation de Pygame pygame.init() clock = pygame.time.Clock() pygame.display.set_caption("The shoot'em up 1.0") # Chargement de la police de caractères pygame.font.init() police_score = pygame.font.SysFont('Comic Sans MS', 30) # Chargement du mixer et des sons pygame.mixer.init() son_missile = pygame.mixer.Sound("missile.ogg") son_explosion = pygame.mixer.Sound("explosion.ogg") AJOUTE_ENEMY = pygame.USEREVENT + 1 AJOUTE_ETOILE = pygame.USEREVENT + 2 pygame.time.set_timer(AJOUTE_ENEMY, 500) pygame.time.set_timer(AJOUTE_ETOILE, 100) # Création de la surface principale ecran = pygame.display.set_mode([LARGEUR_ECRAN, HAUTEUR_ECRAN]) # Groupes de sprites # Tous les sprites (pour faire le blit) tous_sprites = pygame.sprite.Group() le_missile = pygame.sprite.Group() # Le missile les_ennemis = pygame.sprite.Group() # Les ennemis les_explosions = pygame.sprite.Group() # Les explosions les_etoiles = pygame.sprite.Group() # Les étoiles # Création du vaisseau vaisseau = Vaisseau() tous_sprites.add(vaisseau) # Création de l'objet 'score' score = Score() tous_sprites.add(score) continuer = True while continuer: for event in pygame.event.get(): if event.type == pygame.QUIT: continuer = False elif event.type == AJOUTE_ENEMY: nouvel_ennemi = Ennemi() les_ennemis.add(nouvel_ennemi) # ajout au groupe des ennemis tous_sprites.add(nouvel_ennemi) # ajout au 'super-groupe' elif event.type == AJOUTE_ETOILE: nouvelle_etoile = Etoile() les_etoiles.add(nouvelle_etoile) ecran.fill((0, 0, 0)) les_etoiles.draw(ecran) # Dessiner les étoiles seules en arrière-plan # Détection des collisions héro / ennemi if pygame.sprite.spritecollideany(vaisseau, les_ennemis): vaisseau.kill() explosion = Explosion(vaisseau.rect.center) les_explosions.add(explosion) tous_sprites.add(explosion) son_explosion = pygame.mixer.Sound("explosion.ogg") continuer = False # Le jeu s'arrête son_explosion.play() # Détection des collisions missile / ennemi for un_missile in le_missile: liste_ennemis_touches = pygame.sprite.spritecollide(un_missile, les_ennemis, True) # Enlever l'ennemi if len(liste_ennemis_touches) > 0: un_missile.kill() score.incremente(len(liste_ennemis_touches)) for ennemi in liste_ennemis_touches: explosion = Explosion(ennemi.rect.center) les_explosions.add(explosion) tous_sprites.add(explosion) # Pile des touches appuyées touche_appuyee = pygame.key.get_pressed() # Mise à jour des éléments à chaque frame vaisseau.update(touche_appuyee) le_missile.update() les_ennemis.update() les_explosions.update() les_etoiles.update() score.update() for mon_sprite in tous_sprites: ecran.blit(mon_sprite.surf, mon_sprite.rect) pygame.display.flip() clock.tick(30) # Initialisation de la boucle maximum 30 fois par seconde pygame.time.delay(3000) # Attente de 3 secondes lorsqu'on perd pour la dernière animation pygame.quit()
@InformatiqueSansComplexeАй бұрын
Merci beaucoup pour ce partage qui représente bien l'esprit de la chaîne :)
@french2gatherАй бұрын
@@InformatiqueSansComplexej'ai fait évoluer le jeu ces derniers jours, avec l'aide de chatGPT car je ne suis pas si doué... Pourrais-je vous envoyer un zip à une adresse mail de la version du jeu obtenue ?
@Benoit-SEO_Ай бұрын
Bonjour et merci pour cette explication très claire (comme d'habitude) d'une librairie ! Une suggestion... Pour faire avancer encore plus le chimiblic .Ne serait il pas intéressant d'intégrer cette démonstration dans une ia générative de code comme Windsurf ou autre ? Le même déroulé: 1- L'explication très claire de la librairie 2- et après un prompt démonstratif et sa sortie en page web ou mobile ? ( il n'y a personne qui le fait jusqu’à présent) Et comme l'ia est là Merci à vous
@InformatiqueSansComplexeАй бұрын
Bonjour et merci pour votre commentaire :) L'idée de montrer l'IA dans le développement me paraît intéressante en effet. Je ne sais pas si il faut tout lui faire générer cependant, car l'idée est aussi d'apprendre petit pas par petit pas. A méditer donc, mais je pensais en effet montrer l'avantage d'un assistant IA dans le codage en effet.
@Ethan-yy5njАй бұрын
Bonjour et merci pour les videos ! Je suis sur un projet de NAS avec True Nas Scale et Nextcloud, il n’y a pas beaucoup de videos a jour dessus alors que le sujet est passionnant que ce soit pour une utilisation perso pu en entreprise, une serie de video dessus peut etre ?
@InformatiqueSansComplexeАй бұрын
Bonjour Ethan et merci pour votre commentaire. C'est une bonne idée en effet, je la note dans la liste des idées et j'essaye d'en faire une série pour la nouvelle année :) Merci
@french2gatherАй бұрын
Super vidéo, merci bien ! Voici si vous le permettez le code, car votre site est en reconstruction et les fichiers ne sont plus accessibles (et c'est bien compréhensible deux ans après) : import pygame pygame.init() ecran = pygame.display.set_mode([800, 600]) continuer = True while continuer: for event in pygame.event.get(): if event.type == pygame.QUIT: continuer = False ecran.fill((255, 255, 255)) pygame.draw.circle(ecran, (255, 0, 0), (200, 200), 100) pygame.draw.rect(ecran, (0, 0, 255), (400, 300, 100, 100)) pygame.display.flip()
@BossBoss-m9qАй бұрын
ca me mes Nameerror
@InformatiqueSansComplexeАй бұрын
Bonjour, c’est sans doute parce que vous utilisez une variable ou une fonction non définie ou hors du scope. N’hésitez pas à poster votre code ici.
@retrogames3675Ай бұрын
C'est les barettes de ram ?
@InformatiqueSansComplexeАй бұрын
Tout à fait 🙂
@retrogames3675Ай бұрын
@InformatiqueSansComplexe merci étant donné que je suis pas trop pc mais je mis mets petit à petit, bonne soirée à vous
@ChrisHalden007Ай бұрын
Ça fait beaucoup de hop !!! 😂 Cool video. Merci 👍
@InformatiqueSansComplexeАй бұрын
Merci beaucoup. Hop ! 😊
@davidl3383Ай бұрын
Si tout pouvait être aussi simple que vos explications :) Merci
@InformatiqueSansComplexeАй бұрын
Merci beaucoup pour ce compliment 😊
@abdellahb1398Ай бұрын
Moi j'utilise Dockge. C'est le top pour lancer des fichiers docker compose
@InformatiqueSansComplexeАй бұрын
En effet c’est un outil super pratique ! Ça me donne une idée de vidéo, merci 🙂
@InformatiqueSansComplexeАй бұрын
En effet c’est un super outil. Ça me donne une idée de vidéo, merci 🙂
@TheNarstonerzАй бұрын
Ca pouvait pas être mieux expliqué que ca :). Merci !