1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS Rheingans-YOO: Salut, je suis Ross. 3 00:00:06,800 --> 00:00:08,570 Et cela est un séminaire de CS50. 4 00:00:08,570 --> 00:00:12,100 Il vous faudra de la programmation en C pour la programmation en Python. 5 00:00:12,100 --> 00:00:15,120 >> Python est un langage de script. 6 00:00:15,120 --> 00:00:17,870 Il est en grande partie comme C dans la syntaxe, bien que certains 7 00:00:17,870 --> 00:00:20,390 des détails techniques de comment cette syntaxe est exécuté 8 00:00:20,390 --> 00:00:22,240 sont légèrement différentes. 9 00:00:22,240 --> 00:00:24,780 Il est moins puissant que C à certains égards. 10 00:00:24,780 --> 00:00:28,130 Il est moins expressif pour où exactement dans votre ordinateur 11 00:00:28,130 --> 00:00:30,030 mémoire est aménagé, comment il se aménagé, 12 00:00:30,030 --> 00:00:32,030 quand il obtient la liberté, et ces sortes de choses. 13 00:00:32,030 --> 00:00:36,150 >> Il est plus utile que C, à certains égards, parce qu'il est plus facile de programmer. 14 00:00:36,150 --> 00:00:39,920 La langue est, dans une certaine les gens, plus intuitive. 15 00:00:39,920 --> 00:00:44,820 Et vraiment, l'objectif est de qu'il soit plus rapide à programmer 16 00:00:44,820 --> 00:00:46,490 et potentiellement plus lente à exécuter. 17 00:00:46,490 --> 00:00:48,198 >> Maintenant, si vous pensez la quantité de temps 18 00:00:48,198 --> 00:00:50,514 vous avez passé sur votre dernier problème posé par écrit 19 00:00:50,514 --> 00:00:52,430 votre code contre le quantité de temps que vous passez 20 00:00:52,430 --> 00:00:55,310 sur votre dernier problème définir l'exécution de votre code, 21 00:00:55,310 --> 00:00:58,300 vous ne l'imaginez que la langue qui était deux fois plus rapide à écrire, 22 00:00:58,300 --> 00:01:02,170 et deux fois plus lente à exécuter, peut- une amélioration par rapport C à certains égards. 23 00:01:02,170 --> 00:01:05,730 Certes, quand vous essayez d'écrire petits programmes pour faire de petites choses, 24 00:01:05,730 --> 00:01:08,520 Python est un langage utile de choix. 25 00:01:08,520 --> 00:01:10,620 >> A la fin de cette séminaire, je espérons que vous 26 00:01:10,620 --> 00:01:12,950 être capable de faire la choix dans les projets futurs 27 00:01:12,950 --> 00:01:17,710 sur laquelle la langue est correct à utiliser, pas l'idée 28 00:01:17,710 --> 00:01:21,405 qui plus est une langue corriger tout le temps. 29 00:01:21,405 --> 00:01:23,030 A peu de choses sur ce que le séminaire est. 30 00:01:23,030 --> 00:01:25,910 Ce séminaire ne vise pas à vous apprendre Python à partir de zéro. 31 00:01:25,910 --> 00:01:28,310 Python est très similaire à C, et je suppose 32 00:01:28,310 --> 00:01:34,056 que vous êtes un étudiant de CS50, ou quelqu'un avec une familiarité similaire avec C. 33 00:01:34,056 --> 00:01:36,700 >> Si vous êtes étudiant CS50 autour problème réglé 6, 34 00:01:36,700 --> 00:01:38,866 Donc, vous avez voir beaucoup de choses en C, je vais vous donner 35 00:01:38,866 --> 00:01:40,740 les principales différences, et certaines des choses 36 00:01:40,740 --> 00:01:42,840 qui font Python différente et spéciale et utile, 37 00:01:42,840 --> 00:01:45,256 mais je ne vais pas aller pour quel langage de programmation est 38 00:01:45,256 --> 00:01:46,920 et comment écrire des programmes. 39 00:01:46,920 --> 00:01:49,820 Cependant, ce séminaire va enseigner vous pour écrire un programmes Python 40 00:01:49,820 --> 00:01:52,310 si vous êtes l'un de ces rares groupes. 41 00:01:52,310 --> 00:01:54,820 Encore une fois, nous allons voir comment vous souhaitez mettre en œuvre psets-- 42 00:01:54,820 --> 00:01:57,550 qui devrait être dans 1-6 Python-- et fournir des pointeurs 43 00:01:57,550 --> 00:02:00,322 à la documentation officielle pour référence future. 44 00:02:00,322 --> 00:02:03,030 L'autre chose qui est important sur la façon dont ce discours est affecté, 45 00:02:03,030 --> 00:02:05,360 Cette vidéo sera en ligne, gracieuseté de CS50, 46 00:02:05,360 --> 00:02:07,550 de sorte que vous ne devriez pas sentir comme vous avez besoin de prendre des notes. 47 00:02:07,550 --> 00:02:11,180 Vous pouvez toujours revenir en arrière et regarder au plus tard en tant que référence. 48 00:02:11,180 --> 00:02:13,340 En outre, les glissières sont disponibles dès maintenant 49 00:02:13,340 --> 00:02:16,480 sur ce site, qui devrait prenez vous faites un Google doc. 50 00:02:16,480 --> 00:02:21,010 Il est une version légèrement abrégée de ce que je montre sur l'écran. 51 00:02:21,010 --> 00:02:24,850 >> Une mise en garde prudent avant nous sautons dans, Python 3 52 00:02:24,850 --> 00:02:26,700 est une langue différente de Python 2. 53 00:02:26,700 --> 00:02:30,020 Ils ressemblent beaucoup même; il y a de très légères différences techniques 54 00:02:30,020 --> 00:02:32,530 qui va provoquer des programmes écrit en Python 2 55 00:02:32,530 --> 00:02:37,140 ne pas être en mesure d'être exécuté dans l'environnement Python 3. 56 00:02:37,140 --> 00:02:41,969 >> L'appareil est livré avec CS50 Python, par défaut il utilise Python 2. 57 00:02:41,969 --> 00:02:44,010 Vous pouvez le vérifier en taper dans votre ligne de commande 58 00:02:44,010 --> 00:02:51,310 python --version, qui devrait afficher 2.7.6 sur l'appareil actuel. 59 00:02:51,310 --> 00:02:53,580 Essayez Python 3, qui fait travailler dans l'appareil, 60 00:02:53,580 --> 00:02:58,500 si par défaut Python à 2.X.Y, soit sur l'appareil ou sur vos propres machines. 61 00:02:58,500 --> 00:03:03,730 Vous devez remplacer Python 3 à tout moment Dans cet exposé, que je vous écris Python. 62 00:03:03,730 --> 00:03:05,760 Si votre machine est course 2 par défaut, le type 63 00:03:05,760 --> 00:03:09,770 Python 3 afin de pouvoir effectivement suivre et exécuter ces choses. 64 00:03:09,770 --> 00:03:12,280 >> En outre, je vous signale à des ressources officielles maintenant. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V attention que ce est un 3 et non pas un 2-- 66 00:03:16,082 --> 00:03:17,030 a des références utiles. 67 00:03:17,030 --> 00:03:19,280 Tutorial vous mènera à travers beaucoup des mêmes choses 68 00:03:19,280 --> 00:03:21,460 que je fais maintenant, sauf sous forme de texte. 69 00:03:21,460 --> 00:03:23,725 Référence est utile en tant que pour faire référence à la langue, 70 00:03:23,725 --> 00:03:26,100 et la bibliothèque standard donne vous quelques-unes des extensions 71 00:03:26,100 --> 00:03:27,770 avec des fonctionnalités supplémentaires. 72 00:03:27,770 --> 00:03:31,300 >> Ainsi, un premier programme Python. 73 00:03:31,300 --> 00:03:34,410 Sur la gauche, nous avons C standard, sur la droite, nous avons Python. 74 00:03:34,410 --> 00:03:36,780 Vous avez peut-être reconnu ce problème, il est 75 00:03:36,780 --> 00:03:40,760 l'un des premier problème ensembles dans CS50, et ceux-ci 76 00:03:40,760 --> 00:03:42,677 résoudre à l'aide de la même solution. 77 00:03:42,677 --> 00:03:45,010 Maintenant, la raison pour laquelle nous sommes En regardant ces côte à côte 78 00:03:45,010 --> 00:03:46,830 est si nous pouvons regarder les différences syntaxiques. 79 00:03:46,830 --> 00:03:49,580 Un des éléphants dans la pièce que vous avez sans doute remarqué droit 80 00:03:49,580 --> 00:03:56,350 la chauve-souris, est que Python n'a pas fonction principale emballage autour du code. 81 00:03:56,350 --> 00:03:59,170 Donc en C, vous écrivez un tas de fichiers, vous les relier entre eux, 82 00:03:59,170 --> 00:04:02,590 et le programme commence à exécuter à cette chose appelée int main. 83 00:04:02,590 --> 00:04:04,930 >> En Python, vous écrivez un vous déposer, exécuter le fichier, 84 00:04:04,930 --> 00:04:07,882 le programme commence à exécuter au début du fichier. 85 00:04:07,882 --> 00:04:09,590 Donc, il va commencer au sommet de fichier 86 00:04:09,590 --> 00:04:11,280 descendre jusqu'à trouver quelque chose d'autre. 87 00:04:11,280 --> 00:04:14,440 Si elle trouve une définition de fonction, il ne sera pas fait exécuter ce code, 88 00:04:14,440 --> 00:04:15,940 il sera tout simplement définir la fonction. 89 00:04:15,940 --> 00:04:18,459 Mais ici, lorsque le premier programme est n est égal à 10, 90 00:04:18,459 --> 00:04:21,273 la première chose que ce programme va faire est de prendre cette valeur de 10 91 00:04:21,273 --> 00:04:24,120 et mettre dans une variable appelée n. 92 00:04:24,120 --> 00:04:27,690 >> Parlant de cette ligne, l'une des autre things-- sorry-- cette 93 00:04:27,690 --> 00:04:31,040 signifie que les programmes C, vous les écrivez, 94 00:04:31,040 --> 00:04:34,899 vous les faire, qui sera invoquer certaines commandes clang, 95 00:04:34,899 --> 00:04:36,690 puis vous exécutez une exécutable qui en résulte. 96 00:04:36,690 --> 00:04:41,030 Programmes Python, vous courez le texte file-- cette mario.py pourrait 97 00:04:41,030 --> 00:04:44,900 être ce fichier que je viens montré vous-- vous exécutez ce fichier 98 00:04:44,900 --> 00:04:47,450 et vous exécutez, et le contenu de celui-ci 99 00:04:47,450 --> 00:04:50,390 sera exécuté par l'interpréteur Python. 100 00:04:50,390 --> 00:04:52,470 Vous pouvez le faire dans votre IDE. 101 00:04:52,470 --> 00:05:02,260 >> Donc, si je dois un fichier Bonjour, qui a tout simplement ce contenu. 102 00:05:02,260 --> 00:05:04,840 Ceci est en fait python 2, pas Python 3, il ne faut pas 103 00:05:04,840 --> 00:05:06,600 soucier de la syntaxe pour le moment. 104 00:05:06,600 --> 00:05:14,230 Mais je vais courir Python, sur hello.py, et il fonctionne. 105 00:05:14,230 --> 00:05:18,890 >> Une autre façon que je peux utiliser Python Je ne traiterai pas tellement dans ce discours, 106 00:05:18,890 --> 00:05:21,840 est si je viens de taper Python, il me tombe dans un environnement où 107 00:05:21,840 --> 00:05:24,370 Je peux nourrir ligne Python par ligne. 108 00:05:24,370 --> 00:05:31,260 Donc, ici, si je tape Imprimer l'espace «bonjour, monde». 109 00:05:31,260 --> 00:05:32,360 Tapez entrer. 110 00:05:32,360 --> 00:05:37,430 Il me cracher que sauvegarder les résultats cette ligne individuelle immédiatement. 111 00:05:37,430 --> 00:05:38,470 >> Ceci est peut-être utile. 112 00:05:38,470 --> 00:05:40,700 Dans cet exposé, je vais faire des choses sur diapositives. 113 00:05:40,700 --> 00:05:43,940 Et ainsi vous serez en mesure de suivre long soit ici, ou en écrivant 114 00:05:43,940 --> 00:05:45,725 fichiers réels et les exécuter ensuite. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Mais, pour en revenir à cette code, une autre chose 117 00:05:50,995 --> 00:05:53,230 que vous pourriez avoir noticed-- bien, il ya 118 00:05:53,230 --> 00:05:55,980 deux choses que vous pourriez remarquerez à propos de ces blocs. 119 00:05:55,980 --> 00:05:59,280 Le premier, un peu plus terre à terre, est que Python n'a pas de fuite point-virgule. 120 00:05:59,280 --> 00:06:02,630 >> Les points-virgules sont facultatifs partout et inoffensif partout. 121 00:06:02,630 --> 00:06:03,722 Vous pouvez les ajouter. 122 00:06:03,722 --> 00:06:06,430 Il pourrait rendre les gens qui écrivent Python pour un ricanement de vie à vous 123 00:06:06,430 --> 00:06:08,860 derrière votre dos, parce ils ne sont pas nécessaires. 124 00:06:08,860 --> 00:06:13,497 Ils sont souvent le signe d'être tenue au cours de C. Les concepteurs de la langue 125 00:06:13,497 --> 00:06:16,580 estiment qu'il est plus clair de cette façon et qu'il est pas nécessaire de déclarer 126 00:06:16,580 --> 00:06:18,700 chaque fois que vous finissez une ligne. 127 00:06:18,700 --> 00:06:21,799 >> Une autre chose étrange à ce sujet n est qu'il ne possède pas un type joint. 128 00:06:21,799 --> 00:06:24,590 Une des pièces magiques de Python-- et je vais appeler ça de la magie, 129 00:06:24,590 --> 00:06:26,381 mais il ya très raisons techniques pourquoi il 130 00:06:26,381 --> 00:06:28,560 une works-- du pièces magiques de Python 131 00:06:28,560 --> 00:06:32,700 est que les variables peuvent développer ou rétrécir pour contenir toutes les données 132 00:06:32,700 --> 00:06:34,530 types que vous voulez qu'ils. 133 00:06:34,530 --> 00:06:35,580 >> Alors ceci est un 10. 134 00:06:35,580 --> 00:06:40,060 Si plus tard sur je affectés à cette n 0,5, il faudrait que 0,5. 135 00:06:40,060 --> 00:06:43,770 Peu importe que ce est un int ici et flotter là, tout ce qui utilise ce n 136 00:06:43,770 --> 00:06:47,057 va, plus ou moins, être en mesure de souffler long si elle obtient l'un de ces. 137 00:06:47,057 --> 00:06:49,640 Sauf qu'il ya quelques très réel raison pour laquelle il ne peut pas utiliser les données 138 00:06:49,640 --> 00:06:52,170 de type n qui présente actuellement, à quel point ça va devenir 139 00:06:52,170 --> 00:06:54,490 coincée et renvoyer une erreur, et ces sortes de choses. 140 00:06:54,490 --> 00:06:57,050 >> Mais ici, Python ne se soucie pas vraiment ce que 141 00:06:57,050 --> 00:06:59,140 il est que je vais rester dans ce phrase, comme, vous voulez cette chose? 142 00:06:59,140 --> 00:06:59,840 Cette chose dans tout cela? 143 00:06:59,840 --> 00:07:00,640 Ouais, il est une sorte de chose. 144 00:07:00,640 --> 00:07:01,810 Je vais rester dans la fin. 145 00:07:01,810 --> 00:07:04,740 Ça va être un problème plus tard, si quelqu'un qui veut utiliser cette fin 146 00:07:04,740 --> 00:07:05,710 ne peut pas gérer. 147 00:07:05,710 --> 00:07:08,500 Ceci est l'un des principaux différences entre Python et C 148 00:07:08,500 --> 00:07:10,790 qui le rend facile à écrire des programmes très grand C 149 00:07:10,790 --> 00:07:15,120 et le rend plus facile à écrire très petit programme Python. 150 00:07:15,120 --> 00:07:19,564 >> La syntaxe est pas très différent dans ce qu'il fait. 151 00:07:19,564 --> 00:07:21,480 Il est un peu différent dans la façon dont il est exprimé. 152 00:07:21,480 --> 00:07:25,370 Donc, cela est une très, ce qui est appelé Pythonic, façon de l'écrire. 153 00:07:25,370 --> 00:07:28,969 la ligne de la gamme (n), tel est le plage de numéros de 0 à n, 154 00:07:28,969 --> 00:07:31,010 inclusif sur le fond et exclusif sur le dessus. 155 00:07:31,010 --> 00:07:34,790 Il est donc compris entre 0 et n-1, qui est exactement ce que le code C est en train de faire, 156 00:07:34,790 --> 00:07:38,690 sauf qu'il est beaucoup plus facile à regarder peut-être. 157 00:07:38,690 --> 00:07:42,710 >> Le bloc est pertinente pas mis en valeur par des accolades, 158 00:07:42,710 --> 00:07:44,540 à la place il est mis hors par cette indentation. 159 00:07:44,540 --> 00:07:47,580 Donc, toutes ces lignes sont quatre espaces plus vers la droite, 160 00:07:47,580 --> 00:07:50,410 ou comme sujet d'une largeur d'éléphant. 161 00:07:50,410 --> 00:07:54,570 Et ce sont ceux qui sont va être exécuté dans ce pour. 162 00:07:54,570 --> 00:07:57,020 Si je gâcher le indentation sur cela et je 163 00:07:57,020 --> 00:08:01,420 pousser ce imprimé retour au l'empreinte originale, 164 00:08:01,420 --> 00:08:04,320 que l'imprimé va quitter la boucle. 165 00:08:04,320 --> 00:08:08,560 Contrairement à C, où ici, je fait besoin de se déplacer que accolade fermée autour. 166 00:08:08,560 --> 00:08:11,820 >> Cela signifie que vous ne recevez pas les erreurs que sauter à vous parce que vous 167 00:08:11,820 --> 00:08:13,580 mettre une attelle au mauvais endroit. 168 00:08:13,580 --> 00:08:16,460 Cela signifie que vous obtenez des erreurs que sauter à vous parce que vous 169 00:08:16,460 --> 00:08:17,620 indenté une mauvaise ligne. 170 00:08:17,620 --> 00:08:19,290 Il est donc empreintes de super prudent. 171 00:08:19,290 --> 00:08:22,123 Espérons que vous étiez super- prudent avec votre empreinte de toute façon, 172 00:08:22,123 --> 00:08:25,300 et de sorte que ce ne sont pas beaucoup plus d'un fardeau. 173 00:08:25,300 --> 00:08:28,762 >> Mais une règle de base pour Python, et nous aurons un couple de ces 174 00:08:28,762 --> 00:08:30,970 que nous allons passer en revue à travers Au cours de la conversation, 175 00:08:30,970 --> 00:08:33,840 est d'essayer syntaxe naturelle avant de regarder quoi que ce soit vers le haut. 176 00:08:33,840 --> 00:08:37,610 Donc, cette syntaxe, pour ce nombre dans la gamme, 177 00:08:37,610 --> 00:08:41,460 est très caractéristique en termes de style. 178 00:08:41,460 --> 00:08:45,260 Beaucoup de choses en Python nous verrons prendre cette forme. 179 00:08:45,260 --> 00:08:47,420 >> Et si vous venez avec un nouvel objet que vous 180 00:08:47,420 --> 00:08:50,870 pensez que vous devriez être en mesure de itérer sur cela, dans ce format, 181 00:08:50,870 --> 00:08:53,720 il se révèle sans doute soutient ce format. 182 00:08:53,720 --> 00:08:56,990 On ne va pas aller au fond de super- les raisons techniques qui est vrai. 183 00:08:56,990 --> 00:09:00,167 >> Mais il est une intuition utile d'avoir lorsque vous vous approchez de programmes Python, 184 00:09:00,167 --> 00:09:01,750 que cette chose va juste travailler. 185 00:09:01,750 --> 00:09:03,020 Essayez-le. 186 00:09:03,020 --> 00:09:06,480 Démarrez la ligne de commande Interprète, voir si cela fonctionne, 187 00:09:06,480 --> 00:09:09,827 passer des choses, avant de vous même pas besoin d'ouvrir Google et dire, 188 00:09:09,827 --> 00:09:11,660 ce qui est la syntaxe pour cette chose en particulier? 189 00:09:11,660 --> 00:09:14,740 Beaucoup de Python, vous pourriez découvrir juste en essayant. 190 00:09:14,740 --> 00:09:19,005 >> Ce cas est encore plus proche à C, puis les fors sont. 191 00:09:19,005 --> 00:09:20,380 Notez qu'il n'y a pas de parenthèses. 192 00:09:20,380 --> 00:09:23,490 Les parenthèses sont, de nouveau, inoffensif, mais inutile. 193 00:09:23,490 --> 00:09:25,750 Il ya une virgule à la fin tout comme les boucles for, 194 00:09:25,750 --> 00:09:30,800 et encore, les blocs sont relatifs en retrait plutôt que mis en valeur par des accolades. 195 00:09:30,800 --> 00:09:33,080 Ce reste est à l'origine niveau d'indentation, 196 00:09:33,080 --> 00:09:35,930 et son bloc concerné en retrait à nouveau. 197 00:09:35,930 --> 00:09:41,720 Ceux fonctionnent exactement comme ils le font en C. 198 00:09:41,720 --> 00:09:44,520 >> Ceci est en fait très bien même. 199 00:09:44,520 --> 00:09:49,430 Encore une fois, l'impression perd un caractère hors de printf Vous passez quelques ficelles. 200 00:09:49,430 --> 00:09:51,520 Il se trouve cordes peut être soit délimitée 201 00:09:51,520 --> 00:09:53,562 par des guillemets simples ou doubles. 202 00:09:53,562 --> 00:09:55,270 Il n'y a pas de différence, sauf que l'intérieur de 203 00:09:55,270 --> 00:09:57,722 des guillemets simples, vous pouvez utiliser guillemets avec abandon, 204 00:09:57,722 --> 00:09:59,430 plutôt que de devoir échapper à chacun d'eux. 205 00:09:59,430 --> 00:10:01,480 Et à l'intérieur des guillemets, vous peuvent utiliser des guillemets simples avec abandonner 206 00:10:01,480 --> 00:10:02,420 sans avoir à leur échapper. 207 00:10:02,420 --> 00:10:04,253 Si vous voulez mélanger eux, vous pouvez certainement 208 00:10:04,253 --> 00:10:06,100 regarder en ligne comment faire cela. 209 00:10:06,100 --> 00:10:09,581 >> Vous remarquerez que plus ici, Je suis passé à la fin = cette chose. 210 00:10:09,581 --> 00:10:12,580 Ceci est un exemple d'une option argument, qui est une de ces choses 211 00:10:12,580 --> 00:10:14,990 que Python supporte que le rend très utile. 212 00:10:14,990 --> 00:10:18,240 Donc impression a effectivement beaucoup de arguments, qui sont habituellement 213 00:10:18,240 --> 00:10:20,140 mis à leur valeur par défaut valeur, mais ici, je l'ai 214 00:10:20,140 --> 00:10:21,924 décidé de remplacer celui qui est appelé fin. 215 00:10:21,924 --> 00:10:24,340 La raison pour laquelle je dois la remplacer par une chaîne vide 216 00:10:24,340 --> 00:10:26,756 est que l'impression en Python, par défaut, imprime une nouvelle ligne 217 00:10:26,756 --> 00:10:28,630 après la chose que vous avez dit trop. 218 00:10:28,630 --> 00:10:31,462 >> Donc ce hachage va réellement imprimer un hachage dans une nouvelle ligne. 219 00:10:31,462 --> 00:10:34,670 Et si je ne veux pas hachage pour imprimer une nouvelle ligne après, alors je dois dire 220 00:10:34,670 --> 00:10:35,340 ne pas imprimer un. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Mais, pourtant si, une dernière chose que ce programme est manquant que l'on a est 223 00:10:43,690 --> 00:10:44,960 un comprend au sommet. 224 00:10:44,960 --> 00:10:48,120 Imprimer est cuit dans Python donc en gros qu'il n'y a pas en-tête ou le module 225 00:10:48,120 --> 00:10:49,869 que vous devez notamment, mais carrement 226 00:10:49,869 --> 00:10:52,029 pour inclure d'autres choses dans un script Python, 227 00:10:52,029 --> 00:10:55,320 Je le ferais dans un format-- très similaire les mots ne sont que légèrement différente. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Je l'ai mentionné que nous ne pas avoir besoin d'une principale ici, 230 00:11:01,360 --> 00:11:03,372 parce que le Python commence exécuter au sommet. 231 00:11:03,372 --> 00:11:05,080 Si je voulais envelopper dans cette fonction, je 232 00:11:05,080 --> 00:11:07,667 serait faire comme je this-- dirait def nom de la fonction, 233 00:11:07,667 --> 00:11:10,500 arguments pourraient aller ici et nous allons voir certains de ceux plus tard, du côlon, 234 00:11:10,500 --> 00:11:13,040 puis de nouveau, cette tout le bloc déclenché 235 00:11:13,040 --> 00:11:16,810 est ce qui est opérationnel bloquer pour cette fonction. 236 00:11:16,810 --> 00:11:18,560 Donc ceci est la définition de la fonction. 237 00:11:18,560 --> 00:11:21,587 Et il ya une déclaration, puis vers le bas ici, je peux juste appeler la fonction. 238 00:11:21,587 --> 00:11:23,920 Et encore une fois, le programme interprète, commençant par le haut, 239 00:11:23,920 --> 00:11:25,280 verrez ceci est la définition. 240 00:11:25,280 --> 00:11:27,960 Il ne sera pas exécuter cette jusqu'à ce qu'il arriver ici, et puis il est comme, oh 241 00:11:27,960 --> 00:11:30,860 maintenant vous avez appelé, je suppose que je devrais exécuter. 242 00:11:30,860 --> 00:11:33,850 >> Une chose qui est très commun pour voir dans les fichiers Python, 243 00:11:33,850 --> 00:11:36,700 en particulier les fichiers Python qui sont libérés au public 244 00:11:36,700 --> 00:11:41,650 et développé et mis au point et by-- entretenu, est quelque chose de ce formulaire. 245 00:11:41,650 --> 00:11:44,540 Cela est ainsi parce que basically-- Python, vous commencez au sommet 246 00:11:44,540 --> 00:11:50,310 puis vous exécutez vers le bas, Je si je viens d'avoir Mario appelé ici, 247 00:11:50,310 --> 00:11:54,190 puis chaque fois que je inclus dans ce fichier un autre fichier, parce que je voulais utiliser 248 00:11:54,190 --> 00:11:58,580 est fonction Mario, cet autre fichier serait ont aussi cet appel à Mario en elle. 249 00:11:58,580 --> 00:12:01,000 Et quand je courais ce fichier, il serait appeler Mario. 250 00:12:01,000 --> 00:12:04,520 >> Donc il est possible que je ne vouloir exécuter ce si je l'ai fait 251 00:12:04,520 --> 00:12:07,290 exécuté ce fichier particulier. 252 00:12:07,290 --> 00:12:11,520 Et donc je ne peux conclure ce dans un idiome comme ça, où je dis, 253 00:12:11,520 --> 00:12:14,820 si le nom de cette exécution l'environnement est le principal, 254 00:12:14,820 --> 00:12:16,200 alors je veux faire ces choses. 255 00:12:16,200 --> 00:12:18,710 Sinon quelqu'un d'autre peut use-- inclure mon function-- 256 00:12:18,710 --> 00:12:22,510 mon dossier, et juste pour obtenir l'accès à ces fonctions 257 00:12:22,510 --> 00:12:25,552 sans avoir à courir les choses que je veux exécuter dans ce fichier. 258 00:12:25,552 --> 00:12:27,260 Ceci est, de plus, en option mais très commune. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Ces choses sont entirely-- sont exactement le même entre C et Python, 261 00:12:33,840 --> 00:12:35,100 certainement dans 3. 262 00:12:35,100 --> 00:12:38,610 Je pense que dans 2, l'opérateur de division vous donne parfois de flotteurs quand 263 00:12:38,610 --> 00:12:41,450 que vous exploitiez sur ints, et soit vous vouliez que vous avez fait ou pas. 264 00:12:41,450 --> 00:12:44,777 Mais plus, moins, et les temps travailler exactement comme on pouvait s'y attendre, 265 00:12:44,777 --> 00:12:46,110 sauf sur un peu plus de types. 266 00:12:46,110 --> 00:12:49,740 Donc, vous pouvez multiplier par flotteurs ints, et ces sortes de choses. 267 00:12:49,740 --> 00:12:52,480 >> jeu fonctionne exactement de la même chose. 268 00:12:52,480 --> 00:12:54,310 Vous pouvez utiliser deux signes égal. 269 00:12:54,310 --> 00:12:59,000 inequals-- supérieur à, inférieur que, ces sortes de things-- 270 00:12:59,000 --> 00:13:02,580 ont les significations qui vous êtes familier avec eux. 271 00:13:02,580 --> 00:13:05,770 >> Où C utilise ces opérateurs, Python utilise un peu plus anglais 272 00:13:05,770 --> 00:13:06,390 ceux lisible. 273 00:13:06,390 --> 00:13:09,348 Ainsi, au lieu de deux, l'esperluette, vous littéralement taper le mot «et», «ou», 274 00:13:09,348 --> 00:13:10,740 ou pas." 275 00:13:10,740 --> 00:13:13,420 Comme dans votre si-- dans votre instructions conditionnelles, 276 00:13:13,420 --> 00:13:17,670 Nous avons vu que cette syntaxe dans C correspond à cette syntaxe en Python. 277 00:13:17,670 --> 00:13:21,010 Et il n'y a pas beaucoup différente là, sauf pour un peu 278 00:13:21,010 --> 00:13:24,780 de ponctuation sur les côtés. 279 00:13:24,780 --> 00:13:28,890 Encore une fois, où C serait autre si, Python utilise Elif, 280 00:13:28,890 --> 00:13:33,960 mais ceux-ci sont pour la plupart les variations du niveau de surface. 281 00:13:33,960 --> 00:13:38,450 >> Itération de ce genre est souvent écrit dans cet idiome en Python. 282 00:13:38,450 --> 00:13:42,350 Vous pouvez fabriquer ce genre de chose avec une boucle while à l'extérieur 283 00:13:42,350 --> 00:13:46,387 si vous voulez, mais vous certainement ne pas avoir à. 284 00:13:46,387 --> 00:13:48,970 Et encore une fois, si vous vouliez la imprimer éléments d'un tableau 285 00:13:48,970 --> 00:13:50,560 vous pourriez faire de cette façon. 286 00:13:50,560 --> 00:13:52,927 Une des choses amusantes à propos de Python si, 287 00:13:52,927 --> 00:13:54,760 est que vous ne devez pas à utiliser ce paradigme, 288 00:13:54,760 --> 00:13:57,290 et vous pouvez utiliser un un peu plus élégante un. 289 00:13:57,290 --> 00:13:59,370 Vous dites dans une aire. 290 00:13:59,370 --> 00:14:02,980 >> Ainsi, plutôt que d'aller ici et qui déborde les indices, 291 00:14:02,980 --> 00:14:05,630 et puis en tirant des éléments individuels, 292 00:14:05,630 --> 00:14:08,644 vous dites la pour réellement juste courir sur les éléments eux-mêmes. 293 00:14:08,644 --> 00:14:11,060 Et puis ce que vous faites à l'intérieur peut fonctionner directement 294 00:14:11,060 --> 00:14:13,260 sur les éléments, ce qui est assez amusant. 295 00:14:13,260 --> 00:14:16,710 Et nous allons see-- nous utiliserons cet idiome encore et encore 296 00:14:16,710 --> 00:14:18,050 que nous marchons à travers le code. 297 00:14:18,050 --> 00:14:20,091 >> Ceci est, de nouveau, par exemple, de quelque chose que je vais 298 00:14:20,091 --> 00:14:23,300 Python appeler la magie, mais il ya raisons très techniques pourquoi cela fonctionne. 299 00:14:23,300 --> 00:14:26,340 Et il ya des choses techniques qui besoin pour être vrai à propos de tableau en ordre 300 00:14:26,340 --> 00:14:28,340 pour que cela fonctionne dans les coulisses. 301 00:14:28,340 --> 00:14:31,390 Le fait est que la plupart des types que vous vous attendez que cela fonctionne 302 00:14:31,390 --> 00:14:36,610 avoir eu cette mise en oeuvre pour vous dans le langage intégré. 303 00:14:36,610 --> 00:14:40,030 >> Une autre chose que ce serait bien si cela a fonctionné dans toutes les langues, 304 00:14:40,030 --> 00:14:45,460 mais il ya quelques raisons pour lesquelles il ne peut pas, Imprimer cette chaîne fois ce nombre. 305 00:14:45,460 --> 00:14:48,860 Met en Python, ce fait exactement ce que vous voulez, ce qui est juste amusant, 306 00:14:48,860 --> 00:14:52,840 et des moyens que nous pouvons réellement réduire ce programme, nouveau mario.c. 307 00:14:52,840 --> 00:14:57,150 Plutôt que d'itération beaucoup, nous pouvons juste dire, je veux certains nombre de places, 308 00:14:57,150 --> 00:15:01,120 Je veux le nombre de tables de hachage, et quelques tables de hachage à la fin. 309 00:15:01,120 --> 00:15:02,640 Et encore une fois, nous utilisons ce format. 310 00:15:02,640 --> 00:15:05,340 >> Ici, nous passons en une variable de cette façon. 311 00:15:05,340 --> 00:15:08,050 Encore une fois, on n'a pas besoin de dire quel type de variable, il est, 312 00:15:08,050 --> 00:15:11,322 et la seule fois, nous allons obtenir des erreurs est au moment de l'exécution. 313 00:15:11,322 --> 00:15:13,030 Quand quelqu'un essaie passer quelque chose dans, 314 00:15:13,030 --> 00:15:14,860 ça va venir dans la fonction très bien. 315 00:15:14,860 --> 00:15:18,240 Si nous Wedge ici parce que ce ne sont pas la chose que vous pouvez créer des gammes plus, 316 00:15:18,240 --> 00:15:22,100 Je vais chercher une erreur d'exécution là, et je vais devoir déboguer cette façon. 317 00:15:22,100 --> 00:15:25,050 Mais en attendant, je ne ai pas être très prudent sur ce que 318 00:15:25,050 --> 00:15:32,800 est transmis en, tant dans le réel exécution tout cela fonctionne très proprement. 319 00:15:32,800 --> 00:15:35,080 >> Je ne pouvais même faire de cette un peu plus propre 320 00:15:35,080 --> 00:15:41,770 en utilisant une fonction intégrée en particulier sur les chaînes, qui est Justifier à droite. 321 00:15:41,770 --> 00:15:45,250 Ceci est juste une fonction utile située autour de la bibliothèque. 322 00:15:45,250 --> 00:15:47,660 Il est dans la documentation si vous allez chercher. 323 00:15:47,660 --> 00:15:51,650 Et je dis, eh bien je vais devoir cette chaîne, un certain nombre de tables de hachage, 324 00:15:51,650 --> 00:15:56,390 et je tiens à justifier pad droit it-- il avec espaces à cette longueur. 325 00:15:56,390 --> 00:16:00,584 >> Encore une fois, ceci est dans le la documentation, ce qui apporte us-- 326 00:16:00,584 --> 00:16:03,500 Je vais effectivement clic grâce these-- ce qui nous amène à notre deuxième règle 327 00:16:03,500 --> 00:16:06,990 pour Python-- bibliothèque standard méthodes de fonction sont vos amis. 328 00:16:06,990 --> 00:16:09,880 Et il est souvent utile de votre temps d'aller chercher je me demande 329 00:16:09,880 --> 00:16:12,310 si il ya une chose qui fait juste cela. 330 00:16:12,310 --> 00:16:13,830 Il est probablement. 331 00:16:13,830 --> 00:16:15,990 Si vous souhaitez pad sur une chaîne, si vous aviez 332 00:16:15,990 --> 00:16:17,470 profite de l'arrière la moitié d'une chaîne, si vous aviez 333 00:16:17,470 --> 00:16:20,370 tiens à chercher dans une chaîne, si vous souhaitez écraser un couple de choses 334 00:16:20,370 --> 00:16:22,420 ensemble avec une chaîne avec des virgules entre eux, 335 00:16:22,420 --> 00:16:24,640 il ya bibliothèque standard fonctions pour ce faire. 336 00:16:24,640 --> 00:16:27,190 >> Et il rend votre vie plus facile si vous les utilisez 337 00:16:27,190 --> 00:16:29,240 au lieu de rouler sur tout sur votre propre 338 00:16:29,240 --> 00:16:31,650 dans cinq lignes de code ici, cinq lignes de code ici. 339 00:16:31,650 --> 00:16:34,430 Cela commence vraiment à ajouter jusqu'à temps réel. 340 00:16:34,430 --> 00:16:37,430 >> Une des choses intéressantes sur comment cela est appelé. 341 00:16:37,430 --> 00:16:39,980 Vous remarquerez qu'il ya une chose dot. 342 00:16:39,980 --> 00:16:43,490 Je dois un objet sur la gauche, et puis je appelé une fonction un point. 343 00:16:43,490 --> 00:16:49,780 Ceci est l'un des paradigmes qui python utilise des procédés de fixation à des objets. 344 00:16:49,780 --> 00:16:54,410 Nous allons parler de ce que cela est très brièvement à la fin, 345 00:16:54,410 --> 00:16:58,510 mais nous savons que nous pouvons à la fois fonctionner sur les choses en prenant cette dot chose en disant 346 00:16:58,510 --> 00:17:01,690 que ce soit, ou par téléphone au une fonction qui prend 347 00:17:01,690 --> 00:17:04,339 cet objet et d'autres arguments. 348 00:17:04,339 --> 00:17:07,450 >> Donc, ce sont deux façons les choses se font en Python. 349 00:17:07,450 --> 00:17:09,780 Et si un particulier fonctionnalité est mise en oeuvre 350 00:17:09,780 --> 00:17:14,230 dans ce style ou ce style est quelque chose que vous 351 00:17:14,230 --> 00:17:19,990 devrait chercher jusqu'à ce que vous obtenez un coup pour lesquels on il est susceptible de tomber. 352 00:17:19,990 --> 00:17:22,660 Il ya une plus ou moins cohésive philosophie Python 353 00:17:22,660 --> 00:17:24,930 que vous absorbez la plupart du temps en écrivant beaucoup en elle. 354 00:17:24,930 --> 00:17:28,190 À un certain point, lequel de ces quelque chose va être mis en œuvre 355 00:17:28,190 --> 00:17:29,470 devient naturel. 356 00:17:29,470 --> 00:17:32,420 Pour l'instant, il est juste quelque chose vous apprenez que vous comprenez 357 00:17:32,420 --> 00:17:34,140 chaque chose individuelle. 358 00:17:34,140 --> 00:17:36,420 >> Bibliothèque tellement standard fonctions sont vos amis, 359 00:17:36,420 --> 00:17:41,320 et ils permettent d'écrire des choses qui relever ce beaucoup d'espace vraiment peu de temps, 360 00:17:41,320 --> 00:17:42,040 vraiment élégante. 361 00:17:42,040 --> 00:17:45,670 Et cela est en fait probablement plus lisibles, je dirais, que le programme C 362 00:17:45,670 --> 00:17:46,780 là bas. 363 00:17:46,780 --> 00:17:49,730 Sans parler du fait que est si bref, vous pouvez adapter à tout un éléphant 364 00:17:49,730 --> 00:17:52,250 dans l'espace que nous avons sauvés. 365 00:17:52,250 --> 00:17:56,270 >> Une autre chose, cette mise en œuvre est un de Mario qui est point C, qui, je pense 366 00:17:56,270 --> 00:17:57,890 est la plus courte, vous pouvez l'obtenir. 367 00:17:57,890 --> 00:18:00,757 Il n'a pas l'int get, mais il codes disques de la valeur 10 368 00:18:00,757 --> 00:18:02,090 de la même manière que celui-ci ne. 369 00:18:02,090 --> 00:18:06,080 Avère que celui-ci horloges au 84 caractères, alors que Python est 64. 370 00:18:06,080 --> 00:18:11,490 Et cela est infiniment plus lisible que ces ordures ici. 371 00:18:11,490 --> 00:18:14,610 Donc python est plus efficace dans l'espace. 372 00:18:14,610 --> 00:18:17,260 Il est légèrement moins efficace dans le temps, mais pas de beaucoup. 373 00:18:17,260 --> 00:18:18,890 >> Les listes sont une chose importante en Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Nous ne les avons pas vu, mais ils fonctionner un peu comme le font les tableaux en C. 376 00:18:24,587 --> 00:18:27,170 Donc, ici, vous pouvez les déclarer, vous pouvez les passer dans une chose. 377 00:18:27,170 --> 00:18:29,810 Maintenant carrés détient une tableau de ces choses. 378 00:18:29,810 --> 00:18:33,480 Encore une fois, nous ne sommes pas déclarés Type, mais si jamais nous essayons de l'utiliser, 379 00:18:33,480 --> 00:18:36,260 tout ce que vous vous attendez à travailler sur un tableau d'entiers 380 00:18:36,260 --> 00:18:40,130 va travailler sur un tableau d'entiers. 381 00:18:40,130 --> 00:18:42,030 >> Ceci est une chose qui vous ne pouvez pas absolument 382 00:18:42,030 --> 00:18:47,390 faire en C, parce que la mémoire, il est tellement mains sur, 383 00:18:47,390 --> 00:18:48,950 mais il est très facile de le faire en Python. 384 00:18:48,950 --> 00:18:55,310 Si je veux que mon tableau pour être plus grand, je peux ajouter un élément à lui et il est très bien. 385 00:18:55,310 --> 00:18:57,150 >> Que se passe dans les coulisses? 386 00:18:57,150 --> 00:18:59,150 L'interprète ira sortir et obtenir un peu de mémoire, 387 00:18:59,150 --> 00:19:00,860 et peut-être que ça ira un peu de mémoire supplémentaire, 388 00:19:00,860 --> 00:19:03,090 donc je ne pas si je ne ai pas à réallouer à chaque fois. 389 00:19:03,090 --> 00:19:04,897 Mais combien ont plus mémoire at-elle besoin? 390 00:19:04,897 --> 00:19:06,730 Ce ne sont pas des décisions que vous avez à faire, 391 00:19:06,730 --> 00:19:10,540 ce sont des décisions que les interprète va faire. 392 00:19:10,540 --> 00:19:12,270 >> Ici, nous pouvons voir la gamme prendre deux arguments, 393 00:19:12,270 --> 00:19:16,430 mais il va toujours être inclusif du haut de sorte que nous ajoutons 1 il. 394 00:19:16,430 --> 00:19:21,970 Ceci est une expression qui est une encore plus façon intelligente pour écrire ce genre de choses. 395 00:19:21,970 --> 00:19:25,980 Il a appelé compréhension de liste, et voici ce que nous disons 396 00:19:25,980 --> 00:19:32,560 est que je voudrais mettre en i au carré pour chaque valeur de i dans cette gamme. 397 00:19:32,560 --> 00:19:35,770 Cette chose sur la droite pourrait être un autre tableau, et cette chose sur la gauche 398 00:19:35,770 --> 00:19:40,740 être une fonction particulière qui prendrait en i comme une variable 399 00:19:40,740 --> 00:19:42,250 et donnez-moi sur un certain résultat. 400 00:19:42,250 --> 00:19:43,480 >> Ce que je vais faire est, Je vais construire 401 00:19:43,480 --> 00:19:46,200 un tableau qui est toutes ces choses pour chaque valeur dans cette gamme. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 Et cela est super élégant, super court, et il est très clair ce que cela signifie. 404 00:19:55,670 --> 00:19:59,190 Ceci est l'un des things-- cela est nouveau, 405 00:19:59,190 --> 00:20:03,860 un de-- très emblématique de la raisons que les gens comme Python. 406 00:20:03,860 --> 00:20:05,900 Si vous aimez la programmation comme cela, alors Python 407 00:20:05,900 --> 00:20:07,830 est une langue que vous aimeriez apprendre. 408 00:20:07,830 --> 00:20:10,950 >> Et encore, il ya technique raisons pour lesquelles cela fonctionne. 409 00:20:10,950 --> 00:20:14,730 Mais en ce qui nous concerne, nous avons plus ou moins ne nous soucions pas. 410 00:20:14,730 --> 00:20:18,500 >> Donc, si vous souhaitez imprimer des listes, certains des mêmes expressions idiomatiques sont utiles. 411 00:20:18,500 --> 00:20:20,940 Pour i dans cette gamme, nous avons pu indice par le biais de toutes les choses 412 00:20:20,940 --> 00:20:23,140 puis imprimez-les tous. 413 00:20:23,140 --> 00:20:24,650 Et vous verrez Len ici. 414 00:20:24,650 --> 00:20:27,150 Si vous avez toujours voulu obtenir la longueur du tableau, qui est 415 00:20:27,150 --> 00:20:31,150 très facile en Python, il est très difficile en C. 416 00:20:31,150 --> 00:20:33,720 Ce serait imprimer exactement ce que vous attendez de lui. 417 00:20:33,720 --> 00:20:36,986 Nous pourrions aussi, comme nous l'avons vu auparavant, itérer sur les éléments dans le tableau 418 00:20:36,986 --> 00:20:39,860 directement, puis seulement parler eux, plutôt que d'avoir l'indice 419 00:20:39,860 --> 00:20:43,190 Retour dans le tableau à chaque fois. 420 00:20:43,190 --> 00:20:45,990 >> Et cela est une chose que vous pouvez faire. 421 00:20:45,990 --> 00:20:49,984 Donc, dans C, si vous demandez quelque chose comme ça, impression dirait, 422 00:20:49,984 --> 00:20:51,150 qui est un tableau d'entiers. 423 00:20:51,150 --> 00:20:53,456 Voilà certainement pas un chaîne, je ne peux pas imprimer. 424 00:20:53,456 --> 00:20:54,830 Python plus ou moins ne se soucie pas. 425 00:20:54,830 --> 00:20:57,496 Il est comme, est-il un moyen que je pourrait transformer ce pour une chaîne? 426 00:20:57,496 --> 00:20:58,500 Ouais, je vais le faire. 427 00:20:58,500 --> 00:21:01,600 Et donc je vais juste imprimer cela. 428 00:21:01,600 --> 00:21:03,640 Cela signifie que vous pouvez faire des choses like-- ces 429 00:21:03,640 --> 00:21:06,530 sont la plupart des parties dures de jeu de quinze ans, écrit 430 00:21:06,530 --> 00:21:08,930 très brièvement en Python. 431 00:21:08,930 --> 00:21:11,320 >> Vous verrez qu'il ya un peu de-- ici 432 00:21:11,320 --> 00:21:14,441 Je l'ai jeté un nombre entier d'une chaîne, et je dois le faire manuellement. 433 00:21:14,441 --> 00:21:16,190 Et je vais ajouter à une autre chaîne, 434 00:21:16,190 --> 00:21:17,590 ou autrement Python se confond. 435 00:21:17,590 --> 00:21:19,840 Mais si quand vous êtes l'ajout d'une chaîne en entier, 436 00:21:19,840 --> 00:21:22,630 suis-je suppose que pour obtenir une integer dos ou une chaîne de retour? 437 00:21:22,630 --> 00:21:24,480 Mais encore une fois, si vous venez de appeler str sur une chose, 438 00:21:24,480 --> 00:21:27,240 et il ne pourrait en tout possible monde soit converti en une chaîne, 439 00:21:27,240 --> 00:21:30,390 il sera probablement converti en une chaîne. 440 00:21:30,390 --> 00:21:33,120 >> Ici, nous voyons l'utilisation de liste imbriquée compréhension 441 00:21:33,120 --> 00:21:38,690 sur la gauche, une partie d'indexation, qui est exactement comme vous seriez habitué, 442 00:21:38,690 --> 00:21:40,060 et certains l'impression de choses. 443 00:21:40,060 --> 00:21:42,560 Encore une fois, nous avons défini un certain fonctions et nous les appelons bas 444 00:21:42,560 --> 00:21:45,820 dans le principal lorsque nous aurons fait le fichier. 445 00:21:45,820 --> 00:21:52,004 retour fonctionne exactement comme vous le feriez attendre de travailler avec C Trouver, 446 00:21:52,004 --> 00:21:54,420 nous pouvons mettre en place des choses comme this-- voici compréhension de liste 447 00:21:54,420 --> 00:21:59,245 il ya une affectation à une variable, et nous pouvons réellement faire encore plus facile. 448 00:21:59,245 --> 00:22:01,870 On n'a pas besoin d'écrire la recherche, parce intégré à la langue 449 00:22:01,870 --> 00:22:04,230 est si cette chose est dans ce tableau. 450 00:22:04,230 --> 00:22:05,680 Return true, sinon retourne faux. 451 00:22:05,680 --> 00:22:08,830 Voilà donc l'intégralité de trouvaille. 452 00:22:08,830 --> 00:22:12,230 >> L'intégralité de tri implique appelant sorte, 453 00:22:12,230 --> 00:22:15,462 qui est-- il ya implémentations de ce construit dans certaines bibliothèques C. 454 00:22:15,462 --> 00:22:17,170 Si vous souhaitez que cette sorte d'arrière, vous 455 00:22:17,170 --> 00:22:20,450 peut remplacer cette option argument en sens inverse avec un vrai. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 Et si vous souhaitez trier plus cordes, qui est intégré ainsi. 458 00:22:27,860 --> 00:22:31,950 >> Donc, cela ne veut pas dire que ce sont choses que vous devez faire tous les jours, 459 00:22:31,950 --> 00:22:34,280 mais l'idée est que cette est la philosophie de Python, 460 00:22:34,280 --> 00:22:37,530 que toutes ces choses que vous feriez sorte de vouloir faire sont intégrés. 461 00:22:37,530 --> 00:22:42,410 Et la plupart des fonctions standard, de sorte sorte, la longueur, que ce soit, 462 00:22:42,410 --> 00:22:44,380 soutenir entrée plus logiquement sensible. 463 00:22:44,380 --> 00:22:49,020 Vous appelez len sur un tableau de la même façon dont vous appelez len sur une chaîne. 464 00:22:49,020 --> 00:22:55,785 Vous multiply-- vous triez les chaînes de la même manière vous triez des tableaux. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> La plupart des fonctions standard que les gens construisent, 467 00:23:00,740 --> 00:23:03,000 et la plupart des tiers bibliothèques personnes 468 00:23:03,000 --> 00:23:06,980 construire, parce qu'ils sont émulant la conception de la bibliothèque standard, 469 00:23:06,980 --> 00:23:10,190 peut être appelée sur tout ce que vous êtes comme, pourquoi cela fonctionne pas seulement, 470 00:23:10,190 --> 00:23:12,800 en C. Plus ou moins, il travaillera en Python 471 00:23:12,800 --> 00:23:15,930 parce que les gens travaillent derrière la figure ce qui est une chose et ensuite fonctionner 472 00:23:15,930 --> 00:23:17,510 de manière appropriée sur elle. 473 00:23:17,510 --> 00:23:22,760 Encore une fois, formation technique, mais il rend nos vies plus faciles que les programmeurs. 474 00:23:22,760 --> 00:23:26,820 >> Alors, voici le fichier I / O. File I / O a beaucoup de petites choses qui font qu'il est compliqué, 475 00:23:26,820 --> 00:23:29,890 et ainsi il existe des ressources en ligne, mais en un mot, 476 00:23:29,890 --> 00:23:33,010 vous appelez ouvert sur un fichier nom avec un type particulier. 477 00:23:33,010 --> 00:23:37,640 Voilà donc lire, lire et écrire, écrire ou ajouter. 478 00:23:37,640 --> 00:23:41,790 Vous avez lu un certain nombre de personnages et vous impression que ceux qui, 479 00:23:41,790 --> 00:23:42,595 vous aurez Bonjour! 480 00:23:42,595 --> 00:23:43,970 Je veux dire, comme ce fichier avait Bonjour! 481 00:23:43,970 --> 00:23:46,480 Dans ce document, appeler à lire, et ce que vous obtenez en retour 482 00:23:46,480 --> 00:23:49,520 est une chaîne qui a tout du reste de la matrice, 483 00:23:49,520 --> 00:23:50,860 ou la totalité du reste du fichier. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Si vous appelez de relire, vous êtes à la fin du fichier, 486 00:23:56,055 --> 00:23:58,138 et ainsi vous ne recevez pas rien et vous aurez donc fermer. 487 00:23:58,138 --> 00:24:02,510 Encore une fois, cela est plutôt que .close fermer le fichier, car il serait en C. 488 00:24:02,510 --> 00:24:07,190 Ceci est plus ou moins parce que f est un chose, et que vous souhaitez pour f pour fermer. 489 00:24:07,190 --> 00:24:12,092 Mais le fichier de base I / O est pas particulièrement compliquée. 490 00:24:12,092 --> 00:24:15,300 Encore une fois, si vous souhaitez ouvrir un fichier, si vous souhaitez lire une ligne particulière, 491 00:24:15,300 --> 00:24:17,870 vous pouvez sortir de particulier line-- il ya built-ins pour cela. 492 00:24:17,870 --> 00:24:19,995 Si vous souhaitez écrire un chose, vous pouvez écrire cela. 493 00:24:19,995 --> 00:24:23,412 Si vous souhaitez écrire individuelle morsures, vous pouvez écrire les. 494 00:24:23,412 --> 00:24:25,620 Et si vous souhaitez parcourir sur les lignes d'un fichier 495 00:24:25,620 --> 00:24:29,557 individuellement, comme nous l'avons fait dans un morceau de il ya quelques semaines, vous pouvez faire ça. 496 00:24:29,557 --> 00:24:32,140 Encore une fois, la plupart des objets que vous auriez tiens à être en mesure de parcourir 497 00:24:32,140 --> 00:24:33,780 soutien itération sur eux. 498 00:24:33,780 --> 00:24:37,430 Dans Pythons, un fichier est peut-être une chose qui Je voudrais parcourir ligne par ligne. 499 00:24:37,430 --> 00:24:39,138 Si elle était un dictionnaire de mots et je étais 500 00:24:39,138 --> 00:24:42,181 essayer d'obtenir les particuliers mots de sortie, puis, au sein de cette boucle, 501 00:24:42,181 --> 00:24:44,180 ligne, il va être chaque mot à son tour et ce 502 00:24:44,180 --> 00:24:47,880 va être exécuté pour chaque ligne dans le fichier jusqu'à la fin du fichier. 503 00:24:47,880 --> 00:24:52,280 Et encore, si je imprimé sur chaque ligne, les lignes viennent avec de nouvelles lignes, 504 00:24:52,280 --> 00:24:54,740 donc je suis la mise la fin revenir à une chose pareille. 505 00:24:54,740 --> 00:24:56,580 Ensuite, je reçois le contenu de mon dossier. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> La deuxième chose qui fonctionne dans certains égards, comme les listes, et à certains égards 508 00:25:07,480 --> 00:25:11,870 comme quelque chose de sensiblement plus de puissance, 509 00:25:11,870 --> 00:25:16,170 sont des dictionnaires, qui sont vraiment cool d'utiliser, mais sont essentiellement hachage 510 00:25:16,170 --> 00:25:17,670 tables dans le déguisement. 511 00:25:17,670 --> 00:25:23,330 Vous créez un en utilisant exactement deux caractères, ce qui est génial 512 00:25:23,330 --> 00:25:25,959 si vous avez essayé de mettre en œuvre la Table hachage pour votre jeu de problème, 513 00:25:25,959 --> 00:25:27,250 vous savez beaucoup de douleur qui peut être. 514 00:25:27,250 --> 00:25:29,390 Mais les gens ont fait , et fait si bien, 515 00:25:29,390 --> 00:25:32,260 que vous ne devez pas vous en inquiéter plus. 516 00:25:32,260 --> 00:25:35,180 >> Ensuite, vous pouvez insérer des choses individuelles. 517 00:25:35,180 --> 00:25:38,110 Tables-- ou dictionnaires Hash ne sont pas particulièrement 518 00:25:38,110 --> 00:25:40,240 attention à ce que vous stockez en eux. 519 00:25:40,240 --> 00:25:44,210 Donc, si certaines entrées sont des nombres, et certaines entrées sont des listes, 520 00:25:44,210 --> 00:25:47,360 si certaines entrées sont d'autres dictionnaires, et certaines entrées sont des chaînes, 521 00:25:47,360 --> 00:25:49,930 Python fait pas beaucoup de soins. 522 00:25:49,930 --> 00:25:53,460 >> Encore une fois, si vous allez en elle attend une chaîne et ce que vous obtenez en retour 523 00:25:53,460 --> 00:25:56,269 est un tableau, qui est votre problème. 524 00:25:56,269 --> 00:25:58,810 Et peut-être il est faute de celui qui pensé qu'il était de mettre les choses 525 00:25:58,810 --> 00:26:00,476 dans le dictionnaire, peut-être était-vous. 526 00:26:00,476 --> 00:26:02,350 Si tel était quelqu'un d'autre, nous espérons qu'ils étaient 527 00:26:02,350 --> 00:26:04,520 bien comportés sur ce qui se passait dans le dictionnaire 528 00:26:04,520 --> 00:26:07,420 et ne pas laisser de pièges pour vous de tomber. 529 00:26:07,420 --> 00:26:10,890 >> Mais les fonctions standard sera vous redonner les choses bien élevés. 530 00:26:10,890 --> 00:26:13,500 Alors ils disent ceci retourne sauvegarder un dictionnaire de chaînes, 531 00:26:13,500 --> 00:26:15,860 alors tout ce que vous allez de sortir de est une chaîne. 532 00:26:15,860 --> 00:26:20,710 Si vous faites partie de cette et voyages vous, eh bien, que peut-être sur vous. 533 00:26:20,710 --> 00:26:25,542 Python vous donne certainement assez de corde pour vous pendre, si vous le souhaitez. 534 00:26:25,542 --> 00:26:28,250 Maintenant, nous pouvons imprimer individuelle éléments de ceci et cela retours 535 00:26:28,250 --> 00:26:29,935 exactement ce que vous attendez. 536 00:26:29,935 --> 00:26:32,810 Exactement ce que vous attendez, je suppose, est une phrase que je suis en utilisant un lot, 537 00:26:32,810 --> 00:26:35,070 mais cela est plus ou moins comment fonctionne Python. 538 00:26:35,070 --> 00:26:39,880 Si vous demandez une chose qui est pas il, Python jettera une erreur 539 00:26:39,880 --> 00:26:43,194 et il vous quitter sur quel que soit le programme que vous étiez dans. 540 00:26:43,194 --> 00:26:45,360 Il va effectivement imprimer plus d'informations que cela, 541 00:26:45,360 --> 00:26:49,110 il va pointer vous-- ça va ajouter une ligne, et ainsi. 542 00:26:49,110 --> 00:26:52,190 >> Et, encore une fois, peut-être que nous voulons pour itérer sur dictionnaires 543 00:26:52,190 --> 00:26:54,410 et de trouver toutes les choses en elle. 544 00:26:54,410 --> 00:26:57,440 Ici, nous sommes itération sur deux choses en même temps. 545 00:26:57,440 --> 00:27:03,040 Et nous allons le faire avec une clé, la valeur, mais ensuite imprimer tous ces aspects. 546 00:27:03,040 --> 00:27:06,300 >> Et si nous voulions cast-- si nous avons effectivement couru ce, 547 00:27:06,300 --> 00:27:10,840 nous aurions des ennuis parce on-- quand nous sommes allés avec David, 548 00:27:10,840 --> 00:27:13,920 il ne pouvait pas add-- si nous ne jeter à une première chaîne, 549 00:27:13,920 --> 00:27:17,802 nous ne pouvions pas ajouter ce tableau de chaînes sur une chaîne. 550 00:27:17,802 --> 00:27:19,760 Mais si nous jetons à un chaîne, nous obtenons quelque chose 551 00:27:19,760 --> 00:27:22,590 comme ça, qui est peut-être ce que nous aimerions lire. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> Et cela est Speller. 554 00:27:30,500 --> 00:27:32,460 Nous venons de lire dans les choses. 555 00:27:32,460 --> 00:27:35,770 Donc, nous pouvons lire dans mots individuels en tant que lignes. 556 00:27:35,770 --> 00:27:38,240 Nous couper la dernière chose, donc côlon moins 1 557 00:27:38,240 --> 00:27:41,651 CHOMPS hors la dernière chose que nous-- le dernier caractère d'une chaîne. 558 00:27:41,651 --> 00:27:42,150 Nous dirons. 559 00:27:42,150 --> 00:27:44,730 OK, chacun de ceux obtient inséré dans ce dictionnaire, 560 00:27:44,730 --> 00:27:45,810 la cartographie à une valeur de 1. 561 00:27:45,810 --> 00:27:48,006 Nous ne faisons pas particulièrement soucier de celui-là, 562 00:27:48,006 --> 00:27:51,130 mais il est juste là pour dire, eh bien, cette chose que je vais mettre dans le dictionnaire. 563 00:27:51,130 --> 00:27:53,182 Parce que plus tard, ce que nous sommes va faire est que nous sommes 564 00:27:53,182 --> 00:27:55,390 allez dire, eh bien, si elle est dans le dictionnaire du tout. 565 00:27:55,390 --> 00:27:57,650 >> Encore une fois, ce chèque de l'adhésion est en exploitation 566 00:27:57,650 --> 00:28:00,940 l'aide d'un tout autre algorithme que ce sera dans une liste, 567 00:28:00,940 --> 00:28:05,709 mais nous appelons cela de la même manière, ce qui est une partie de cette couche de sucre de Python 568 00:28:05,709 --> 00:28:07,250 les choses de sorte qu'ils sont plus faciles à utiliser. 569 00:28:07,250 --> 00:28:10,230 Et encore une fois, nous avons vu des choses comme ça avant. 570 00:28:10,230 --> 00:28:12,940 Ceci est essentiellement trouver, ou il est exactement la même syntaxe 571 00:28:12,940 --> 00:28:16,480 que de trouver, mais est en fonctionnement sur une structure totalement différente. 572 00:28:16,480 --> 00:28:20,170 Et nous ne nous soucions pas particulièrement. 573 00:28:20,170 --> 00:28:25,540 Donc, ce sont les choses que vous ont été invités à mettre en œuvre pour Speller. 574 00:28:25,540 --> 00:28:29,278 À ce rythme, nous allons obtenir plus ou moins tous les psets fait. 575 00:28:29,278 --> 00:28:31,474 >> Auditoire: Alors que essentiellement vient tout juste de retour 576 00:28:31,474 --> 00:28:34,852 comme mal orthographié dans le cas contraire correspondre à quelque chose dans le dictionnaire? 577 00:28:34,852 --> 00:28:36,060 ROSS Rheingans-YOO: Oui, oui. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 Et oui, ceci est un l'adaptation d'un problème réglé 580 00:28:40,880 --> 00:28:43,150 qui vous demande de faire exactement cela. 581 00:28:43,150 --> 00:28:46,357 >> Public: Pourquoi la ligne moins 1 là-bas? 582 00:28:46,357 --> 00:28:48,190 ROSS Rheingans-YOO: Donc, lorsque vous itération 583 00:28:48,190 --> 00:28:50,300 sur un fichier demandant par des lignes, les lignes 584 00:28:50,300 --> 00:28:53,900 venir avec un caractère de nouvelle ligne à la fin de la it-- moins 1 585 00:28:53,900 --> 00:28:55,260 est juste pour acheter ceux off. 586 00:28:55,260 --> 00:28:59,549 Et cela est particulièrement souple moyen de l'indexation dans les choses. 587 00:28:59,549 --> 00:29:01,590 Donc, si vous avez une chaîne, et vous souhaitez, eh bien je suis 588 00:29:01,590 --> 00:29:05,340 va commencer à trois caractères et je vais aller à la fin. 589 00:29:05,340 --> 00:29:07,140 3 colon va le faire pour vous. 590 00:29:07,140 --> 00:29:10,570 Si vous êtes comme, je veux commencer à la début et aller à la dernière moins 1 591 00:29:10,570 --> 00:29:12,400 caractère, du côlon moins 1. 592 00:29:12,400 --> 00:29:14,940 Et si vous vouliez aller à partir de la troisième au moins première, 593 00:29:14,940 --> 00:29:16,570 alors vous diriez 3 moins 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> En outre, si vous souhaitez indexer dans les choses de comptage de l'arrière, 596 00:29:22,400 --> 00:29:24,470 vous venez de l'indice avec les numéros de moins. 597 00:29:24,470 --> 00:29:26,980 Et parce que, où C exploserait ou peut-être 598 00:29:26,980 --> 00:29:31,090 vous nourrir autre mémoire que vous ne disposez pas accès à entendre que vous pouvez dire moins 1 599 00:29:31,090 --> 00:29:34,104 signifie le dernier mais 1 caractère dans une chaîne. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Les modules sont version-- sont des analogues aux bibliothèques C 602 00:29:43,590 --> 00:29:45,119 et sont utiles pour beaucoup de choses. 603 00:29:45,119 --> 00:29:46,910 A beaucoup de choses que vous feriez envie de faire en Python, 604 00:29:46,910 --> 00:29:50,040 en plus simples manipulation de variables, 605 00:29:50,040 --> 00:29:52,290 vous voulez accrocher dans le grandes bibliothèques avec plus grande 606 00:29:52,290 --> 00:29:55,910 interfaces et plus capacités d'interaction 607 00:29:55,910 --> 00:29:57,195 avec d'autres parties du monde. 608 00:29:57,195 --> 00:29:58,910 sys est un de ceux avec un tas d'outils 609 00:29:58,910 --> 00:30:01,159 qui sont utiles pour interagir avec le système lui-même 610 00:30:01,159 --> 00:30:05,050 et va importer comme import sys. 611 00:30:05,050 --> 00:30:07,820 >> Il ya plus de documentation que, que vous pouvez aller ici, 612 00:30:07,820 --> 00:30:11,490 ou vous pourriez trouver sur Google par googler sys Python. 613 00:30:11,490 --> 00:30:12,640 Vous tapez entrez. 614 00:30:12,640 --> 00:30:15,140 Le premier lien va être la documentation en Python 2, 615 00:30:15,140 --> 00:30:19,260 la deuxième liaison va être la documentation Python 3. 616 00:30:19,260 --> 00:30:24,830 >> Et si nous avons écrit sur un fichier qui avait l'air Si comme this-- en particulier, nous sommes 617 00:30:24,830 --> 00:30:27,910 regardant fonctionnant sur arguments de ligne de commande, 618 00:30:27,910 --> 00:30:30,040 comme nous avons appris à faire très dès le début de cette classe. 619 00:30:30,040 --> 00:30:32,190 Cela ne veut pas difficile. Vous pouvez sortir argv, 620 00:30:32,190 --> 00:30:34,565 qui est une de ces choses qui est mis en oeuvre par sys. 621 00:30:34,565 --> 00:30:37,210 Il est pas intégré à la forfait de base, mais encore une fois, vous 622 00:30:37,210 --> 00:30:40,080 peut étendre par l'importation cette fonctionnalité de sys. 623 00:30:40,080 --> 00:30:41,090 Vous l'appelez sys. 624 00:30:41,090 --> 00:30:42,611 peu importe. 625 00:30:42,611 --> 00:30:43,360 Ici il ya argv. 626 00:30:43,360 --> 00:30:45,193 Il ya en fait pas argc dans sys, parce que vous 627 00:30:45,193 --> 00:30:47,880 peut obtenir si facilement en appelant len. 628 00:30:47,880 --> 00:30:55,390 Nous avons ensuite imprimés sur, puis nous couru sur notre echo-args.py terminal. 629 00:30:55,390 --> 00:30:58,360 Nous revenons un tableau, qui est ce premier argument. 630 00:30:58,360 --> 00:31:02,240 Encore une fois, ceci est argv 0, qui est la nom de la chose qui a obtenu appelé. 631 00:31:02,240 --> 00:31:04,870 Si nous l'avons appelé avec supplémentaire arguments, nous obtiendrions ceux qui reviennent. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Ceci est une façon de faire arguments de ligne de commande. 634 00:31:09,770 --> 00:31:13,440 Si vous voulez drapeaux où vous tournez choses particulières sur ou override 635 00:31:13,440 --> 00:31:16,050 un défaut particulier, argparse est votre ami. 636 00:31:16,050 --> 00:31:21,550 Et encore, vous trouverez que en ligne au python argparse chez Google. 637 00:31:21,550 --> 00:31:24,300 >> Il ya un couple d'utilité modules que vous vous trouvez à l'aide 638 00:31:24,300 --> 00:31:27,630 et encore, si vous passez du temps de cette langue importation jsons 639 00:31:27,630 --> 00:31:33,300 pour lire et sortir de json fichiers, pas si compliqué. 640 00:31:33,300 --> 00:31:37,139 Vous ouvrez un fichier, vous avez appelé json.load sur ce fichier et vous obtenez une chose. 641 00:31:37,139 --> 00:31:37,930 Quelle est cette chose? 642 00:31:37,930 --> 00:31:40,329 Il est un objet JSON. 643 00:31:40,329 --> 00:31:42,370 Où que JSON a tableau, Python a tableaux. 644 00:31:42,370 --> 00:31:44,420 Où que JSON a tableaux associatifs, Python 645 00:31:44,420 --> 00:31:48,810 dictionnaires, cordes, et des numéros, et ainsi de suite. 646 00:31:48,810 --> 00:31:53,560 Vous voulez vider que, vous ouvrir un nouveau fichier, vous appelez décharge, 647 00:31:53,560 --> 00:31:57,590 et les charges et décharges à entrer et sortir des chaînes. 648 00:31:57,590 --> 00:32:02,120 >> De même, cornichon est appelée fondamentalement de la même interface. 649 00:32:02,120 --> 00:32:04,740 Il est légèrement plus utile si vous êtes le dumping des objets Python. 650 00:32:04,740 --> 00:32:08,370 Donc, si vous avez toujours voulu sauver une version de l'état actuel 651 00:32:08,370 --> 00:32:11,930 d'une variable d'un avenir terme de votre programme, 652 00:32:11,930 --> 00:32:14,740 cornichon est Python bibliothèque pour le faire. 653 00:32:14,740 --> 00:32:19,140 >> Si vous avez toute sorte de variable qui peut être exprimé soit 654 00:32:19,140 --> 00:32:21,990 dans les mots et les caractères et comme bytes-- comme ce dictionnaire, 655 00:32:21,990 --> 00:32:24,230 nous pourrions écrire, nous pourrait écrire que 656 00:32:24,230 --> 00:32:26,670 comme un objet JSON, qui était littéralement ces caractères. 657 00:32:26,670 --> 00:32:29,420 Et puis, il serait très facile pour un être humain pour l'ouvrir up-- ouvrir 658 00:32:29,420 --> 00:32:30,889 et le lire. 659 00:32:30,889 --> 00:32:33,180 Si nous le faisions pas particulièrement soucier humains lecture, 660 00:32:33,180 --> 00:32:38,490 nous pourrions emballer encore plus efficacement dans des formes qui pourraient plus tard être déballés 661 00:32:38,490 --> 00:32:42,860 ou qui pourrait plus tard être gonflé. 662 00:32:42,860 --> 00:32:46,740 Et cela permet d'économiser 80% de la l'espace que vos objets pourraient 663 00:32:46,740 --> 00:32:49,390 prendre si vous avez écrit sur manuscrite. 664 00:32:49,390 --> 00:32:52,384 >> Vous appelez cornichon bavards même way-- décharge, charge, 665 00:32:52,384 --> 00:32:53,800 et puis vous obtenez vos choses en arrière. 666 00:32:53,800 --> 00:32:56,880 Donc, si vous écrivez très programmes Python courts 667 00:32:56,880 --> 00:32:59,952 vouloir sauver l'Etat, et ensuite lire les reprendre plus tard, des choses comme ça 668 00:32:59,952 --> 00:33:00,660 sont vos amis. 669 00:33:00,660 --> 00:33:02,640 Que vous pourriez très facilement les jeter comme JSON. 670 00:33:02,640 --> 00:33:04,550 La plupart des objets Python peut vider le JSON 671 00:33:04,550 --> 00:33:11,310 si il n'y a aucun espoir que structurellement qu'ils puissent être représentés de cette façon. 672 00:33:11,310 --> 00:33:14,410 >> Ce ne sont que la pointe de la iceberg sur des modules qui sont utiles. 673 00:33:14,410 --> 00:33:19,510 Donc sys, os, multitraitement, sont sorte de bêtes de somme de base pour des choses 674 00:33:19,510 --> 00:33:23,120 nous avons besoin d'interagir avec le système d'exploitation du système de fichiers., 675 00:33:23,120 --> 00:33:28,764 comme os.isfile, os.isdirectory, os.makefile, ce sont vos amis. 676 00:33:28,764 --> 00:33:30,930 Si vous souhaitez interagir avec un type de fichier particulier, 677 00:33:30,930 --> 00:33:32,190 JSON, cornichon, csv. 678 00:33:32,190 --> 00:33:37,160 Si vous voulez interagir avec Web pages, l'urllib pour obtenir http 679 00:33:37,160 --> 00:33:41,370 pages. bs4-- BeautifulSoup-- il est un merveilleux analyseur pour html. 680 00:33:41,370 --> 00:33:47,047 Vous exécutez sur un html et vous obtenir cet objet de tableau imbriqué maintenant, 681 00:33:47,047 --> 00:33:49,630 que vous pouvez parcourir plus Lookin, avec comme à la recherche d' 682 00:33:49,630 --> 00:33:52,380 si, est, dans, ce qui est fantastique. 683 00:33:52,380 --> 00:33:55,920 >> Il ya un tas de forfaits pour running-- 684 00:33:55,920 --> 00:33:57,960 pour faire des choses particulièrement Mathy. 685 00:33:57,960 --> 00:34:01,790 Donc, si vous voulez multiplier, inverser, transformer matrices, 686 00:34:01,790 --> 00:34:05,690 numpy est utilisé par des personnes tous partout dans le monde pour cela. 687 00:34:05,690 --> 00:34:09,620 scipy est encore plus utile des outils dans ce sens. 688 00:34:09,620 --> 00:34:13,980 sklearn-- apprentissage machine, traitement du langage naturel, 689 00:34:13,980 --> 00:34:17,880 super-trucs utiles, obtient mis en place tout le temps en Python. 690 00:34:17,880 --> 00:34:21,469 >> Et encore une fois, prend légèrement plus d'write-- désolé, 691 00:34:21,469 --> 00:34:26,199 prend un peu plus de temps à courir, mais la raison que les ingénieurs ont tendance réels 692 00:34:26,199 --> 00:34:29,900 l'utilisation de Python est parce que vous avez tendance à être bloqué sur vous l'écriture du code, plutôt 693 00:34:29,900 --> 00:34:32,699 que votre ordinateur exécutant le code. 694 00:34:32,699 --> 00:34:35,860 Donc, si vous allez écrire un programme, qui beaucoup d'autres personnes 695 00:34:35,860 --> 00:34:37,699 allez utiliser toujours, comme Linux, vous 696 00:34:37,699 --> 00:34:41,900 pourrait écrire en C. Si vous étiez va écrire un moteur de calcul, 697 00:34:41,900 --> 00:34:46,124 vous pourriez écrire en Python si vous avez besoin de le changer tous les deux mois. 698 00:34:46,124 --> 00:34:48,540 Certaines personnes pourraient écrire dans C parce qu'ils sont comme ça. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Donc, nous avons vu import sys comme un moyen de faire avancer les choses 701 00:34:54,050 --> 00:34:57,070 d'obtenir module dans votre programme. 702 00:34:57,070 --> 00:35:00,370 Vous pouvez également importer comme un surnom, si vous le souhaitez. 703 00:35:00,370 --> 00:35:03,660 Encore une fois multitraitement est une douleur à taper à chaque fois, donc importer que mp 704 00:35:03,660 --> 00:35:05,900 puis quand vous utiliser dans le programme, 705 00:35:05,900 --> 00:35:09,732 vous allez dire mp.process, ou ce que vous avez. 706 00:35:09,732 --> 00:35:12,670 Si vous souhaitez l'importation une seule chose, 707 00:35:12,670 --> 00:35:19,450 afin urllib a une chose appelée demande, de sorte que vous pouvez simplement importer ce. 708 00:35:19,450 --> 00:35:22,610 Plus tard, vous ne serez pas invoquer comme urllib.request, mais juste comme demande 709 00:35:22,610 --> 00:35:24,590 par lui-même. 710 00:35:24,590 --> 00:35:30,110 >> Et vous pouvez tout importer à partir d'un module si vous souhaitez. 711 00:35:30,110 --> 00:35:34,820 Ceci est parfois pas une bonne idea-- ce généralement pas une bonne idée, en fait. 712 00:35:34,820 --> 00:35:39,080 Parce que vous very-- parce que si quoi que ce soit dans ce module a un nom que vous 713 00:35:39,080 --> 00:35:41,640 voulu utiliser ailleurs dans votre programme, vous ne pouvez pas. 714 00:35:41,640 --> 00:35:44,127 >> Et il est pas toujours évident que tel est le cas. 715 00:35:44,127 --> 00:35:46,460 Afin de faire en sorte que ce que vous faisiez était sûr, 716 00:35:46,460 --> 00:35:47,920 vous avez besoin d'ouvrir le module et voir tous 717 00:35:47,920 --> 00:35:50,295 des noms qui finissent dans there-- toutes les fonctions, 718 00:35:50,295 --> 00:35:53,010 toutes les variables qui vivent dans ce module, 719 00:35:53,010 --> 00:35:57,040 parce que vous êtes apportant tous les dans votre espace de noms local. 720 00:35:57,040 --> 00:35:58,680 >> Alors, les gens le font. 721 00:35:58,680 --> 00:36:01,322 Il est généralement recommandé que vous ne le faites pas. 722 00:36:01,322 --> 00:36:03,280 Mais les gens font ça tout le temps parce qu'ils sont 723 00:36:03,280 --> 00:36:05,180 paresseux et ne veulent pas taper mp. 724 00:36:05,180 --> 00:36:06,310 rien, jamais. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Tout ce discours sur les modules apportez-moi autour d'un court exposé 727 00:36:13,310 --> 00:36:15,930 sur la façon dont vous concevez des programmes en Python. 728 00:36:15,930 --> 00:36:19,860 La première étape est de vérifier pour voir si quelqu'un d'autre a déjà fait la chose, 729 00:36:19,860 --> 00:36:22,160 ou fait 90% de la chose. 730 00:36:22,160 --> 00:36:26,010 Il ya des chances qu'ils ont probablement, et vous doivent aller chercher leur chose et géré cela. 731 00:36:26,010 --> 00:36:28,900 Ou écrire un wrapper autour d'elle pour l'adapter à vos besoins. 732 00:36:28,900 --> 00:36:31,250 Il est seulement après que a échoué que vous feriez alors 733 00:36:31,250 --> 00:36:35,529 continuer et commencer à penser à write-- comment vous mettriez cette chose ensemble. 734 00:36:35,529 --> 00:36:37,320 Il ya beaucoup de choses là-bas, et que ce 735 00:36:37,320 --> 00:36:39,180 l'un des plus utile choses à propos de Python. 736 00:36:39,180 --> 00:36:40,930 Comme la langue est élégant, la langue 737 00:36:40,930 --> 00:36:43,800 est facile à utiliser, mais aussi parce que il est si élégant et facile à utiliser, 738 00:36:43,800 --> 00:36:47,420 les gens ont utilisé pour un temps long et il ya beaucoup de choses 739 00:36:47,420 --> 00:36:52,520 là-bas que vous pouvez exploiter pour votre propre usage. 740 00:36:52,520 --> 00:36:58,457 >> Donc dernière règle de Python est, quelqu'un d'autre a déjà probablement écrit 741 00:36:58,457 --> 00:37:00,290 un module pour que, quelqu'un d'autre a déjà 742 00:37:00,290 --> 00:37:02,980 probablement écrit une bibliothèque pour cela. 743 00:37:02,980 --> 00:37:06,579 Avant d'essayer de faire une chose, regardez pour voir si elle a été mise en œuvre. 744 00:37:06,579 --> 00:37:07,370 Il est pas si difficile. 745 00:37:07,370 --> 00:37:11,960 Tous les modules que je mets en place avant, avec peut-être une exception, 746 00:37:11,960 --> 00:37:15,220 sont pré-installés dans tous les l'installation standard de Python. 747 00:37:15,220 --> 00:37:17,769 Et ainsi, avec un appel à importer que ce soit, vous 748 00:37:17,769 --> 00:37:19,852 avoir tout de cette fonctionnalité sur le bout de vos doigts. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Prend conclure cette parler, il ya quelques choses 751 00:37:28,920 --> 00:37:32,770 que je l'ai laissé comme des boîtes noires et une sorte de passé sous silence, 752 00:37:32,770 --> 00:37:37,217 et il ya un peu blanche se trouve que je l'ai dit que, par souci d'honnêteté, 753 00:37:37,217 --> 00:37:39,050 Je vais au moins point ici, même si je ne veux pas 754 00:37:39,050 --> 00:37:43,980 aller profondes super dans tous les et leurs explications techniques. 755 00:37:43,980 --> 00:37:46,010 >> A beaucoup de choses que je l'ai appelé Magic 756 00:37:46,010 --> 00:37:48,980 est ce que les gens appelleraient programmation orientée objet. 757 00:37:48,980 --> 00:37:52,470 Donc, il ya beaucoup de things-- si les variables sont très souvent pas 758 00:37:52,470 --> 00:37:56,540 octets simples assis dans, mémoire, mais sont très compliquée 759 00:37:56,540 --> 00:38:01,910 les objets qui ont interne Etat sur les fonctions et beaucoup 760 00:38:01,910 --> 00:38:05,570 les variables d'cachés, beaucoup de fonctionnalité cachée, 761 00:38:05,570 --> 00:38:09,480 vous permet de les transformer en chaînes, qui vous permet d'itérer sur eux. 762 00:38:09,480 --> 00:38:12,260 Et si vous êtes writing-- et la raison pour laquelle ils 763 00:38:12,260 --> 00:38:15,710 avoir tout de cette riche fonctionnalité est parce que les personnes-- 764 00:38:15,710 --> 00:38:17,740 les architectes de la language-- ont disparu 765 00:38:17,740 --> 00:38:22,420 par et pour toutes les normes objet, mettre à la fonctionnalité 766 00:38:22,420 --> 00:38:26,970 de dire ceci est comment cela est comment cela se passe pour fonctionner 767 00:38:26,970 --> 00:38:28,470 si quelqu'un veut pour itérer sur elle. 768 00:38:28,470 --> 00:38:31,240 >> Donc, tout ce que quelqu'un pourrait éventuellement vouloir parcourir, 769 00:38:31,240 --> 00:38:34,529 a écrit dans logique manuellement sur la façon dont vous êtes 770 00:38:34,529 --> 00:38:36,070 censé itérer sur cet objet. 771 00:38:36,070 --> 00:38:40,274 Tout ce que vous pourriez peut-être voulez déversés dans une chaîne logique a écrite. 772 00:38:40,274 --> 00:38:43,440 Ceci est la fonction que vous appelez si vous voulez vider ceci à une chaîne. 773 00:38:43,440 --> 00:38:45,273 C'est pourquoi vous ne pouvez appelez len sur les choses, ce 774 00:38:45,273 --> 00:38:49,900 est pourquoi vous pouvez appeler dans, cela est pourquoi vous pouvez appeler en cas de sur tout 775 00:38:49,900 --> 00:38:53,490 que vous voudriez, parce ceux qui sont tout emportant avec eux, 776 00:38:53,490 --> 00:38:55,380 le savoir-faire technique pour faire cela. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Ceci est quelque chose que je suis super-ne vais pas aller dans. 779 00:39:00,432 --> 00:39:03,140 Mais pour chose en liste est subtilement différente de style C pour les boucles, 780 00:39:03,140 --> 00:39:06,160 et vous pouvez lire tout sur ce que le Internet si vous êtes intéressé. 781 00:39:06,160 --> 00:39:08,930 Il ya un côté sombre à tous de ce que je l'ai mentionné, 782 00:39:08,930 --> 00:39:10,359 donc il ya deux choses. 783 00:39:10,359 --> 00:39:13,400 La première est que cette orienté objet programmation ajoute beaucoup de frais généraux 784 00:39:13,400 --> 00:39:16,080 au hasard des choses, si vous vous retrouvez en utilisant une mémoire beaucoup plus; 785 00:39:16,080 --> 00:39:18,640 vous vous retrouvez avec un peu plus de temps que vous ne le feraient autrement. 786 00:39:18,640 --> 00:39:21,300 Le other-- mais plus côté sombre à cette insidieuse 787 00:39:21,300 --> 00:39:24,047 est, si les choses se comportent exactement comme vous voulez qu'ils 788 00:39:24,047 --> 00:39:27,130 sans que vous ayez à penser super dur quant à savoir si cela devrait être un int 789 00:39:27,130 --> 00:39:29,713 ou si devrait y avoir une flotteur, il se pourrait que par ici 790 00:39:29,713 --> 00:39:34,240 vous produisez un int, mais ici vous pensent, mais ils vont always-- désolé, 791 00:39:34,240 --> 00:39:36,555 il se peut que ici vous produisez un flotteur, 792 00:39:36,555 --> 00:39:39,430 mais quand vous arrivez à la deuxième partie de votre programme, vous pensez, 793 00:39:39,430 --> 00:39:41,150 eh bien, mais ils vont toujours passer moi un int. 794 00:39:41,150 --> 00:39:43,608 Et si elles ne le font pas, il est possible que vous coincé quelque part, 795 00:39:43,608 --> 00:39:47,600 si vous essayez de l'utiliser à l'index dans un tableau, ou ce que vous avez. 796 00:39:47,600 --> 00:39:51,050 >> Donc, l'un des réels choses utiles à propos de C est 797 00:39:51,050 --> 00:39:54,219 il vous oblige à vraiment réfléchir dur avant de faire any-- 798 00:39:54,219 --> 00:39:56,510 avant de vous mettre toute variable à l'existence, comme ce 799 00:39:56,510 --> 00:39:58,764 est le type de cette variable. 800 00:39:58,764 --> 00:40:00,680 Et il va avoir ce type pour tous les temps. 801 00:40:00,680 --> 00:40:02,410 >> Ce n'est pas vrai Python, et en fait, vous 802 00:40:02,410 --> 00:40:04,740 can-- si vous êtes juste sorte d'aller à l'oreille, 803 00:40:04,740 --> 00:40:07,690 et vous faites certaines décisions une façon en un seul endroit, 804 00:40:07,690 --> 00:40:09,870 et certaines décisions d'un manière à l'autre endroit 805 00:40:09,870 --> 00:40:12,960 sans mettre suffisamment de choses derrière les scènes de l'autre endroit 806 00:40:12,960 --> 00:40:16,170 pour attraper les choses correctement, vous peut obtenir quelques erreurs étranges. 807 00:40:16,170 --> 00:40:19,200 Et le programme peut continuer à courir pour un temps très long, car il est 808 00:40:19,200 --> 00:40:23,200 faire beaucoup de travail pour dire, bien cette chose pourrait fonctionner de cette façon, 809 00:40:23,200 --> 00:40:25,070 donc je vais courir de cette façon. 810 00:40:25,070 --> 00:40:30,300 >> Et de fait, le fait qu'il pousse transmettre à travers un grand nombre de petites erreurs 811 00:40:30,300 --> 00:40:33,260 des moyens qui, lorsque souvent une erreur est réellement mauvais 812 00:40:33,260 --> 00:40:38,720 et que vous ne voulez vraiment régler le problème, il finit miles away-- le programme 813 00:40:38,720 --> 00:40:41,780 finit par arrêter miles loin à partir de quand vous avez eu votre erreur. 814 00:40:41,780 --> 00:40:46,590 Et si une chose que nous aimerions programmes à faire, une chose sometimes-- 815 00:40:46,590 --> 00:40:48,910 que nous aimerions programmes à faire quand nous le débogage 816 00:40:48,910 --> 00:40:54,160 est sûr très fort et très sûr rapidement lorsque quelque chose va mal. 817 00:40:54,160 --> 00:40:55,510 >> Python est très mauvais à cela. 818 00:40:55,510 --> 00:40:58,820 Python est très bon à pas défaillant et rouler vers l'avant 819 00:40:58,820 --> 00:41:00,320 à travers des choses inattendues. 820 00:41:00,320 --> 00:41:02,820 Donc, ce qui est utile pour quand vous écrivez de petits programmes. 821 00:41:02,820 --> 00:41:07,110 Lorsque vous obtenez compliquée bogues parfois 822 00:41:07,110 --> 00:41:09,300 prend beaucoup de temps à les démêler. 823 00:41:09,300 --> 00:41:12,210 >> Donc, il ya un côté sombre à tous De ce fait, comme il fonctionne. 824 00:41:12,210 --> 00:41:13,860 Il fonctionne exactement comme vous attendez de lui. 825 00:41:13,860 --> 00:41:18,320 Sauf que quand il ne le fait pas, vous finissez dans un endroit complètement différent 826 00:41:18,320 --> 00:41:21,530 et en essayant de comprendre où il était ce que vous êtes allé mal. 827 00:41:21,530 --> 00:41:25,180 >> Collecte des ordures ménagères afin est-- une chose que vous remarquerez 828 00:41:25,180 --> 00:41:28,110 est que l'une de ces choses qui Je l'ai amené dans existence-- 829 00:41:28,110 --> 00:41:34,114 ces tableaux, ces dictionnaires, ces objets, ceux-ci ne sont jamais libérés files--. 830 00:41:34,114 --> 00:41:36,030 Il n'y avait pas d'appel gratuit dans toute de cet exposé. 831 00:41:36,030 --> 00:41:40,340 Et ce fut sur le C-côté, parce nous ne sommes entrés dans ces choses. 832 00:41:40,340 --> 00:41:42,220 >> Mais en Python côté, il n'y a pas de droits. 833 00:41:42,220 --> 00:41:43,970 Les choses deviennent automatiquement libéré quand Python 834 00:41:43,970 --> 00:41:45,386 pense que vous n'êtes pas regardant. 835 00:41:45,386 --> 00:41:49,640 Il est vraiment bon de ne pas libérer des choses qui vous pourriez encore éventuellement être regardant, 836 00:41:49,640 --> 00:41:54,262 mais cela signifie que si vous étiez va affecter cette grande chose, 837 00:41:54,262 --> 00:41:55,970 et vous êtes comme, oh Je suis fait avec elle maintenant, 838 00:41:55,970 --> 00:42:00,360 il est difficile de dire à Python que vous avez fini avec lui maintenant. 839 00:42:00,360 --> 00:42:02,986 >> Vous pouvez parfois régler cette variable soit aucun, 840 00:42:02,986 --> 00:42:05,110 et espérer que finalement le garbage collector 841 00:42:05,110 --> 00:42:06,720 vient à travers et nettoie it out. 842 00:42:06,720 --> 00:42:10,177 Mais encore une fois, vous ne faites pas avoir le contrôle sur cela. 843 00:42:10,177 --> 00:42:13,510 Et l'une des raisons que les gens utilisent C pour vraiment performances choses essentielles, 844 00:42:13,510 --> 00:42:16,570 est cette capacité à vraiment savoir quand la mémoire est allouée 845 00:42:16,570 --> 00:42:19,369 et quand il est libéré, et ont beaucoup de contrôle sur disant, 846 00:42:19,369 --> 00:42:20,910 Je suis en utilisant pas plus de mémoire que je dois. 847 00:42:20,910 --> 00:42:23,632 Qui est quelque chose que Python est pas terrible au. 848 00:42:23,632 --> 00:42:25,090 AUDIENCE: Puis-je vous poser une question? 849 00:42:25,090 --> 00:42:29,800 Qu'est-ce que vous voulez dire par échouer fort? 850 00:42:29,800 --> 00:42:32,070 >> ROSS Rheingans-YOO: Donc, si quelque chose va mal 851 00:42:32,070 --> 00:42:34,950 et vous êtes dans le débogage mode, vous feriez bien souvent 852 00:42:34,950 --> 00:42:38,510 veulent votre programme pour vous dire exactement où il est allé mal, 853 00:42:38,510 --> 00:42:42,360 et non pas juste arrêter de courir tranquillement. 854 00:42:42,360 --> 00:42:45,085 Mais vous auriez fait à imprimer toutes sortes d'informations sur 855 00:42:45,085 --> 00:42:46,972 comme, ici était présent. 856 00:42:46,972 --> 00:42:53,957 Cette chose est arrivé Si vous imprimez un wen-- si vous utilisez un Server-- web 857 00:42:53,957 --> 00:42:55,390 >> AUDIENCE: [inaudible] 858 00:42:55,390 --> 00:42:59,800 >> ROSS Rheingans-YOO: Ouais, si vous utilisez un serveur Web, 859 00:42:59,800 --> 00:43:02,680 il est parfois mal si vous êtes toujours des erreurs de jeter, 860 00:43:02,680 --> 00:43:04,530 et vous dites, ainsi cela ne fonctionne pas. 861 00:43:04,530 --> 00:43:05,300 Je vais arrêter. 862 00:43:05,300 --> 00:43:07,680 Je vais juste d'ignorer et continuer sur. 863 00:43:07,680 --> 00:43:11,260 Parce que vous pouvez obtenir dans des centaines de ces erreurs et ne pas les voir. 864 00:43:11,260 --> 00:43:13,910 >> Il serait certainement utile à des fins de débogage 865 00:43:13,910 --> 00:43:20,327 si chaque fois que votre serveur web a fait une erreur, vous aviez enregistrements durables de cela. 866 00:43:20,327 --> 00:43:22,910 Peut-être que vous voulez, même le programme d'arrêter, de sorte que ces enregistrements 867 00:43:22,910 --> 00:43:25,471 ne pas se faire enterrer sous les choses. 868 00:43:25,471 --> 00:43:26,970 Mais encore une fois, qui est dans le mode de débogage. 869 00:43:26,970 --> 00:43:31,280 >> Souvent, dans le mode de production, le monde est un peu différent. 870 00:43:31,280 --> 00:43:36,380 Et dans de minuscules scripts que je suis en cours d'exécution, où la chose que je dis à faire 871 00:43:36,380 --> 00:43:40,680 pourrait être seulement un peu au large de ce que je voudrais qu'il fasse, 872 00:43:40,680 --> 00:43:44,010 puis sorte de pousser à travers erreurs est quelque chose que vous pourriez vouloir. 873 00:43:44,010 --> 00:43:49,410 Et dans ces cas, certainement Python gagne vraiment ses départs. 874 00:43:49,410 --> 00:43:54,617 >> La dernière chose que je ne parlais pas dans this-- que je ne parlais pas 875 00:43:54,617 --> 00:43:57,700 mais peut être vraiment rageant le premier fois que vous avez une de ces erreurs, 876 00:43:57,700 --> 00:44:00,491 et les deuxième et troisième et quatrième fois que vous avez un de ces erreurs. 877 00:44:00,491 --> 00:44:03,490 Python, je l'ai mentionné qu'il utilise l'espace blanc 878 00:44:03,490 --> 00:44:06,700 pour vous dire à quel niveau d'indentation et ce bloc fonctionnel que vous êtes, 879 00:44:06,700 --> 00:44:08,840 il traite des onglets et des espaces différemment. 880 00:44:08,840 --> 00:44:12,780 Donc, si vous onglet plus de quatre, puis la ligne suivante a quatre espaces, 881 00:44:12,780 --> 00:44:16,910 même si elles apparaissent comme le même montant dans votre éditeur, 882 00:44:16,910 --> 00:44:20,160 Python ne traite pas la même chose. 883 00:44:20,160 --> 00:44:23,610 >> En fait, Python traite onglets et des espaces comme l'huile et l'eau. 884 00:44:23,610 --> 00:44:25,050 Ils sont juste des choses différentes. 885 00:44:25,050 --> 00:44:27,264 Il n'y a pas particulier longueur qui est un onglet, 886 00:44:27,264 --> 00:44:30,180 il est donc pas comme un onglet égale 8 espaces, et ainsi vous obtiendraient autour d'elle 887 00:44:30,180 --> 00:44:30,860 de cette façon. 888 00:44:30,860 --> 00:44:34,110 Comme, quand il dit, ce qui niveau de l'espace blanc que je suis à, 889 00:44:34,110 --> 00:44:37,240 il est actuellement à la recherche d'un motif d'espaces et les onglets. 890 00:44:37,240 --> 00:44:43,050 Et donc, la meilleure façon de faire face à cette est de toujours utiliser des espaces tout le temps. 891 00:44:43,050 --> 00:44:47,510 >> Et en fait, dans le Cloud9 IDE et le CS50 IDE, 892 00:44:47,510 --> 00:44:50,610 vos inserts de touche TAB quatre espaces en place 893 00:44:50,610 --> 00:44:53,800 d'un onglet, ce qui est super utile. 894 00:44:53,800 --> 00:44:57,074 Bien plus, si vous avez écrit un Python programme avec des onglets qui serait bien, 895 00:44:57,074 --> 00:44:58,990 il est juste si quelqu'un entra et essayé d'ajouter 896 00:44:58,990 --> 00:45:02,655 une seule ligne à votre programme eu quatre espaces pour chaque onglet, 897 00:45:02,655 --> 00:45:03,280 elle allait se briser. 898 00:45:03,280 --> 00:45:07,800 Et elle allait se briser de manière qui est vraiment pas visible. 899 00:45:07,800 --> 00:45:12,390 Bien que l'erreur réelle message qu'il jette 900 00:45:12,390 --> 00:45:15,610 a à voir avec nouvelle retrait ne devrait pas ici, 901 00:45:15,610 --> 00:45:18,700 ou-- si elle parle tirets et il semble que ça ne va pas, 902 00:45:18,700 --> 00:45:22,090 il est probablement parce que il ya un problème onglet espace. 903 00:45:22,090 --> 00:45:24,154 Ils sont toujours rageant de débogage. 904 00:45:24,154 --> 00:45:26,070 Le plus grand ensemble en cet exposé, que je ne 905 00:45:26,070 --> 00:45:29,740 accès car il est vraiment , un sujet compliqué subtile, 906 00:45:29,740 --> 00:45:34,760 et n'a pas été nécessaire de faire une des choses que nous avons fait jusqu'ici, 907 00:45:34,760 --> 00:45:37,140 sont un concept appelé tuples. 908 00:45:37,140 --> 00:45:41,280 Ils sont là tout comme le tableaux que vous ne pouvez pas modifier. 909 00:45:41,280 --> 00:45:44,700 Ils obtiennent utilisés partout parce ils sont utiles pour beaucoup de choses 910 00:45:44,700 --> 00:45:46,300 que les tableaux ne sont pas utiles pour. 911 00:45:46,300 --> 00:45:49,890 >> Mais si vous souhaitez faire un tableau, et puis promettre l'interprète que vous 912 00:45:49,890 --> 00:45:53,140 ne vont jamais à vouloir modifier ce chose-- en fait, si vous souhaitez modifier, 913 00:45:53,140 --> 00:45:56,800 vous allez faire une nouvelle avec la nouvelle valeurs dans it-- ceux sont tuples. 914 00:45:56,800 --> 00:45:58,800 Plutôt que de produire eux avec crochets, 915 00:45:58,800 --> 00:46:00,341 vous les produire avec parenthèses. 916 00:46:00,341 --> 00:46:05,074 Pourquoi vous voulez utiliser ces choses, est un peu d'une question. . 917 00:46:05,074 --> 00:46:06,990 La seule chose que je vais dire à ce sujet est que vous 918 00:46:06,990 --> 00:46:10,680 peut utiliser uplets Les indices pour les dictionnaires. 919 00:46:10,680 --> 00:46:15,010 Vous ne pouvez pas utiliser des tableaux comme Les indices pour les dictionnaires. 920 00:46:15,010 --> 00:46:18,970 Et pourquoi est, à nouveau, technique et Je ne vais pas courir dedans. 921 00:46:18,970 --> 00:46:23,140 >> Le pset que je n'y ai pas touché dans ce discours est pset6. 922 00:46:23,140 --> 00:46:25,837 Donc, voici comment vous «D mettre en œuvre a-- est ici 923 00:46:25,837 --> 00:46:28,140 comment vous pourriez mettre en œuvre pset6 en Python. 924 00:46:28,140 --> 00:46:32,680 Gardant à l'esprit l'Python cycle de conception, la première chose 925 00:46:32,680 --> 00:46:34,760 ce que vous faites quand vous êtes l'écriture de programmes est de vérifier 926 00:46:34,760 --> 00:46:38,030 pour voir si quelqu'un a déjà fait. 927 00:46:38,030 --> 00:46:42,152 >> En fait, si vous voulez à serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 environ ce fait, sauf qu'il ne vient pas 929 00:46:44,110 --> 00:46:45,840 standard installé sur des machines Linux. 930 00:46:45,840 --> 00:46:50,490 Python fait, et le Python simple serveur HTTP fait aussi bien. 931 00:46:50,490 --> 00:46:54,717 Si jamais vous êtes sur une machine Linux, ou à l'extérieur Cloud9 IDE du CS50 932 00:46:54,717 --> 00:46:57,550 et vous souhaitez servir ce courant répertoire pour un port particulier, 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer port dessert que. 934 00:47:04,610 --> 00:47:07,190 Vous pouvez également importer le simple serveur HTTP 935 00:47:07,190 --> 00:47:11,240 et il a beaucoup de fonctionnalité si vous voulez personnaliser, ou le modifier, 936 00:47:11,240 --> 00:47:15,860 ou sont exploités it-- harnais à exécuter vos propres services de serveur. 937 00:47:15,860 --> 00:47:18,032 >> Voilà donc Python en un mot. 938 00:47:18,032 --> 00:47:20,280 Et cela a été CS50. 939 00:47:20,280 --> 00:47:21,980 Je vous remercie. 940 00:47:21,980 --> 00:47:23,468