2010-04-01 9 views
25

Mon expérience de langage dynamique est uniquement PHP. Je veux apprendre Python maintenant pour élargir mes opportunités de carrière et juste parce que j'aime la programmation. :)Apprendre Python à partir de PHP

Lors de l'apprentissage de Java, j'ai utilisé un site (perdu l'URL/nom réel maintenant), quelque chose comme "Java pour les développeurs PHP" qui avaient d'un côté de la page le code PHP, et de l'autre le code Java pour faire la même chose. Y a-t-il un site comme ça pour Python?

D'autres recommandations/conseils?

Merci

+2

Pas moyen, je voulais poser la même question * exactement * aujourd'hui :) –

+7

@Pekka - Les grands esprits semblables (ou "les idiots ne diffèrent pas"). : D –

+0

@Coronatus True! Je pense que nous devrons laisser ouvert celui qui s'applique: D –

Répondre

15

La question de l'OP est assez simple, mais comme @Pekka mentionné (ou pris en otage), cela pourrait être beaucoup plus profonde question (ce qui nécessite une plus réponse substantielle). Oui, la syntaxe de Python est assez facile à apprendre sans un livre, mais comme n'importe quelle autre langue, il faut encore beaucoup de temps à maîtriser. La suggestion de Plongez dans Python est valide, bien que la version de Python 3 est seulement pour les débutants sans bagages (ce qui signifie pas de code Python existant, pas de bibliothèques/dépendances qui n'ont pas encore été portées sur Python 3, etc.) . Malheureusement, Mark a supprimé la plupart de son contenu en ligne. Voici une archive de son livre Python 3: http://www.diveintopython3.net ... c'est une très bonne introduction au langage de haut niveau en vous immergeant tout de suite dans les bits de codage. Si vous cherchez quelque chose de légèrement plus complet, j'ai écrit Core Python Programming spécifiquement ciblé vers les programmeurs déjà alphabétisés dans un autre langage de haut niveau comme Java, C/C++, PHP, Ruby, etc., qui ont besoin d'apprendre Python aussi rapidement et aussi en profondeur que possible ... c'est plus comme une "plongée profonde" qu'une "plongée rapide". Pour les livres de référence pure que vous pouvez retirer de l'étagère si nécessaire, je suggère soit Python Essential Reference de Beazley ou Python in a Nutshell de Martelli ... les deux sont excellents, bien que le livre d'Alex ne soit pas revu aux dernières versions de Python pour le moment. Je suis sûr qu'il y travaille. ;-)

[MISE À JOUR juin 2015] De retour sur le sujet piraté, il existe plusieurs options pour développer des applications web sur Python, la plus populaire actuellement est Django. C'est un framework web full-stack qui est ce que Python a de plus proche de Ruby on Rails. Il a un modèle, un ORM, peut fonctionner sur divers composants de base (SGBDR, serveurs Web, bibliothèques JavaScript, etc.), est livré avec une interface d'administration incroyable, et beaucoup plus. Pour encore plus de fonctionnalités, jetez un oeil à Pinax. Une alternative à Django est Pyramid. Au lieu d'un seul cadre monolithique, Pyramid/Pylons agissent plutôt comme de la colle, liant ensemble les meilleurs composants, à savoir Jinja2 pour la modélisation, SQLAlchemy pour l'ORM, MochiKit comme bibliothèque JS, etc. La 3ème option, principalement pour les hautes -trafficked, à faible latence, les applications évolutives est Google App Engine. Vous écrivez vos applications en Python (ou Java, PHP ou Go) et téléchargez sur Google pour exécuter votre application sur leur infrastructure. La plupart du développement sera similaire au développement d'applications Web sur une pile LAMP standard, sauf pour le magasin de données. Basé sur le BigTable de Google, il s'agit d'une base de données d'objets distribués non relationnelle, de sorte que le plus gros obstacle est de surmonter la réflexion dans une base de données relationnelle; également publié indépendamment sous le numéro Google Cloud Datastore. Il y a aussi une alternative relationnelle compatible avec MySQL appelée Google Cloud SQL si vous préférez cela à la place d'une solution NoSQL. BigTable est également disponible en tant que technologie autonome d'App Engine et disponible en tant que Google Cloud Bigtable. Que suffisamment d'options pour vous?!? :-)

Espérons que cela aide!

ps. Si vous cherchez un comprehensive 3-day course in Python à venir, parlez-moi. :-)

+1

Encore un autre bon exemple de pythoniste sympa. –

+0

Le lien "Core Python Programming" est mort, existe-t-il une version à jour? – Lode

+0

Essayez plutôt corepython.com; voir les commentaires sur amzn.com/0132269937 – wescpy

6

Je ne suis pas sûr qu'une telle chose existe, mais Python est généralement une langue facile à apprendre. La documentation Python est généralement très claire et facile à suivre. À partir de l'interpréteur Python, vous pouvez également utiliser les méthodes dir() et help() pour afficher les méthodes, les attributs et la documentation, ce qui facilite l'exploration des options qui s'offrent à vous en Python.

Quelques exemples de différences entre PHP et Python:

Python:

x = [1, 2, 3, 4, 5] 
for a in x: 
    print a 
print "Loop is over" 

PHP:

$x = array(1, 2, 3, 4, 5); 
foreach($x as $a) { 
    echo $a.PHP_EOL 
} 
echo 'Loop is over'.PHP_EOL; 

Comme vous pouvez le voir, Python supprime en utilisant '{' et '}' et utilise à la place l'indentation pour voir quand la boucle for est terminée.

Python:

x = {'spam':'hello', 'eggs':'world'} 
if x.get('spam'): 
    print x['spam'] 

PHP:

$x = array('hello'=>'spam', 'world'=>'eggs'); 
if array_key_exists('hello', $x) { 
    echo $x['hello'].PHP_EOL; 
} 
+1

Ne pas détourner la question de @ Coronatus, mais ce qui serait aussi intéressant, ce sont des tutoriels sur des choses de plus haut niveau comme comment organiser une application web évolutive, comment construire un framework de classe de base etc ... essentiellement, comment faire "xyz" dans Python quand vous savez déjà ce que c'est, et comment cela se fait en PHP? La syntaxe de base, j'en suis sûr, est facile à apprendre quand vous venez d'une autre langue. –

+0

Beaucoup de concepts sont transférés entre PHP et Python. Beaucoup de confusion initiale vient du fait que l'indentation est importante en Python. En outre, les instructions looping et if sont un peu différentes. Je vais modifier ma réponse ci-dessus pour inclure quelques exemples. – thetaiko