Se connecter

Informatique

Programmation

Sujet : Se mettre au Python
1
Elmohe
Niveau 9
26 septembre 2016 à 00:10:16

Hello :D !
En ce moment j'hésite à me mettre au Python, je n'ai entendu que du bien de cette bestiole :)
Je sais programmer en C++ surtout mais j'ai pas peur du dépaysement.
Je suis venu vous demander des arguments qui pourraient me convaincre de m'y lancer parce que pour l'instant je sais juste que c'est pas mal pour les calculs, à ce qu'il paraît ^^
Je vous laisse la parole :D !

tbol
Niveau 20
26 septembre 2016 à 01:31:12

Oui mais dans quel but ? La seule chose que ça va t'apporter par rapport à C++ c'est la facilité et la possiblilité de faire facilement des scripts serveurs et des sites web.
Sinon si tu veux t'y mettre tu peux voir ces cours Python : http://python.developpez.com/cours/ en particulier ce très bon livre Python gratuit par Gérard Swinnen de 430 pages : http://python.developpez.z.com/cours/apprendre-python3/ et il y à aussi une FAQ Python : http://python.developpez.com/faq/

godrik
Niveau 22
26 septembre 2016 à 01:35:40

Je suis venu vous demander des arguments qui pourraient me convaincre de m'y lancer parce que pour l'instant je sais juste que c'est pas mal pour les calculs, à ce qu'il paraît ^^

Nan, c'est l'inverse, python c'est a chier pour les calculs. Mais c'est pas mal pour assembler les modeles et algo ecrit dans d'autres langages.

Source: le projet que je fais avec des geographes ou reecrire leur code python en C++, sans aucun changement algorithmique et sans augmentation de complexite du code a abouti a une amelioration de performance d'un facteur 60000.

Elmohe
Niveau 9
26 septembre 2016 à 06:34:23

Ouais en gros je laisse tomber ça vaut pas le coup xD

guyver2
Niveau 10
26 septembre 2016 à 10:04:15

le projet que je fais avec des geographes ou reecrire leur code python en C++, sans aucun changement algorithmique et sans augmentation de complexite du code a abouti a une amelioration de performance d'un facteur 60000.

C'est pas plutot les geographes le soucis :p) ? Python s'en sort bien en calcul numerique si on lui fait pas faire des millions de boucles for et qu'on utilise les bonnes lib (ecrites en C/C++/fortran) :)
Par exemple, un joli raytracer avec reflections en 150 lignes de python avec numpy qui tourne en 1/10eme de seconde.

Donc heu ouais au final c'est bien pour faire des algos rapidement quand le gros des calcul est fait dans un langage plus bas niveau. Pour le coup c'est vraiment facile de faire une lib en C/C++ qui sera appelee par ton prog en python. Je fais comme ca depuis plusieurs années, je dev en python et ensuite je replace de maniere transparente certaines fonctions ou classes en code C++ quand c'est necessaire.

Elmohe
Niveau 9
26 septembre 2016 à 19:27:42

D'accord merci :)

godrik
Niveau 22
26 septembre 2016 à 20:29:49

Le 26 septembre 2016 à 10:04:15 guyver2 a écrit :

le projet que je fais avec des geographes ou reecrire leur code python en C++, sans aucun changement algorithmique et sans augmentation de complexite du code a abouti a une amelioration de performance d'un facteur 60000.

C'est pas plutot les geographes le soucis :p) ? Python s'en sort bien en calcul numerique si on lui fait pas faire des millions de boucles for et qu'on utilise les bonnes lib (ecrites en C/C++/fortran) :)
Par exemple, un joli raytracer avec reflections en 150 lignes de python avec numpy qui tourne en 1/10eme de seconde.

Donc c'est bien ce que je dis, c'est pas python qui fait le calcul numerique :)

L'histoire du code des geographes etait vraiment un probleme de python. En l'occurence, c'etait une interaction bizarre entre numpy et l'interpreteur python qui faisait barrer le code en couille. Reecrire le code un petit peu differement contourne le probleme et faisait aller le code en gros 1000 fois plus vite. Compiler le code avec pypy apportait un autre facteur 8. Et reecrire le code en C++ et activer toutes les options d'optimization de gcc donnait un autre facteur 8.

Donc heu ouais au final c'est bien pour faire des algos rapidement quand le gros des calcul est fait dans un langage plus bas niveau. Pour le coup c'est vraiment facile de faire une lib en C/C++ qui sera appelee par ton prog en python. Je fais comme ca depuis plusieurs années, je dev en python et ensuite je replace de maniere transparente certaines fonctions ou classes en code C++ quand c'est necessaire.

En calcul numerique, python ca marche pour le petit code et le code de haut niveau. Mais des que tu essayes de faire du calcul brute, ca ne suit pas et il faut passer a autre chose.

Deja si le code est pas compile, tu n'as aucune chance de tirer une perf quelconque d'un code numerique. Et les compilateurs python que j'ai essaye avaient plein de soucis de compatibilite avec differente lib, ce qui tuent completement l'interet de python qui est justement de reutiliser des blocs deja ecrit.

Elmohe
Niveau 9
26 septembre 2016 à 21:04:13

Au final je vais oublier le python, je trouverai un autre langage de ce style, en fait je cherche juste un langage interprété assez rapide à coder du style Python / Ruby quoi.

tbol
Niveau 20
26 septembre 2016 à 23:41:59

Juste par curiosité, pourquoi tu continue pas sur C++ ? :doute:

Elmohe
Niveau 9
27 septembre 2016 à 07:05:00

Je continue, je voudrais juste m'essayer à un langage plus rapide et plus léger (je veux dire sans Ide ou compilation), je ne laisse pas le C++.

godrik
Niveau 22
27 septembre 2016 à 07:10:42

Elmohe, je suis dubitatif sur python pour le calcul numerique.

Mais en vrai, python n'est pas mal pour faire du RAD. Ou pour faire du code plus complique qu'un script bash, ou l'agilite est important, et les perfs pas trop critique.

Elmohe
Niveau 9
27 septembre 2016 à 14:22:51

Ah ok en fait c'est juste que j'aime bien avoir la liberté de pouvoir coder assez rapidement un petit script pour mes actions de tous les jours par exemple si j'ai des exos de maths un peu complexes ou que rien ne peut vraiment m'aider sur internet que je puisse faire un petit script avec les formules, rien de compliqué, à la TI Basic un peu mais sur un ordinateur.
Du coup si quelqu'un a un langage de ce genre, rapide, interprété si possible ce serait cool parce que je sais plus où chercher.

boydfowlerjr
Niveau 10
27 septembre 2016 à 15:03:16

Si c'est juste pour tes maths ruby et python suffiront ou alors matlab

Elmohe
Niveau 9
27 septembre 2016 à 15:06:40

Okey merci je vais voir tout ça mais c'est pas seulement pour les maths, ça pourrait être pour d'autres choses aussi des petits scripts qui me servent quand j'en ai besoin.

Blaff2
Niveau 10
27 septembre 2016 à 15:58:59

Le 27 septembre 2016 à 14:22:51 Elmohe a écrit :
Ah ok en fait c'est juste que j'aime bien avoir la liberté de pouvoir coder assez rapidement un petit script pour mes actions de tous les jours par exemple si j'ai des exos de maths un peu complexes ou que rien ne peut vraiment m'aider sur internet que je puisse faire un petit script avec les formules, rien de compliqué, à la TI Basic un peu mais sur un ordinateur.
Du coup si quelqu'un a un langage de ce genre, rapide, interprété si possible ce serait cool parce que je sais plus où chercher.

.

Le 27 septembre 2016 à 15:06:40 Elmohe a écrit :
Okey merci je vais voir tout ça mais c'est pas seulement pour les maths, ça pourrait être pour d'autres choses aussi des petits scripts qui me servent quand j'en ai besoin.

Non mais Python c'est juste LE langage exactement fait pour ça.

J'ai du mal à comprendre pourquoi tu sembles réticent. :(

C'est facile à apprendre, et tu peux coder des solutions, faire des tests ou développer des scripts extrêmement rapidement. Il y a un très grand nombre de modules que tu peux installé pour répondre à presque n'importe quel problème. Parmi eux, je pense à Scipy / Numpy pour ce qui est du calcul numérique. Où est le problème ? :doute:

Elmohe
Niveau 9
27 septembre 2016 à 16:02:53

Justement, je vais m'y mettre, je suis réticent seulement parce que j'en ai parfois entendu de mauvais retour, parfois de bons, du coup j'hésitais un peu à "perdre du temps" à ça mais je vais m'y mettre :)

Elmohe
Niveau 9
27 septembre 2016 à 17:04:55

Bon bah up, j'ai un problème à l'installation de Python :
J'ai un petit ordinateur portable de 32 bits (il date) et je voulais l'utiliser pour ça, je viens de le réinitialiser à l'état d'usine. En voulant installer Python (le 3.5.2 en version exécutable 32 bits) il me manque le api-ms-win-crt-runtime-l1-1-0.dll, je pense que cette erreur doit arriver souvent, j'ai cherché un peu et partout sur Internet on me propose un lien de vcredist, problème y a l'erreur 404 et je peux pas installer vcredist du coup. Si quelqu'un a une solution ce serait pas de refus merci :hap:

1
Sujet : Se mettre au Python
   Retour haut de page
Consulter la version web de cette page