1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS RHEINGANS-YOO: Γεια σας, είμαι ο Ross. 3 00:00:06,800 --> 00:00:08,570 Και αυτό είναι ένα σεμινάριο CS50. 4 00:00:08,570 --> 00:00:12,100 Θα σας πάρει από τον προγραμματισμό σε C για τον προγραμματισμό σε Python. 5 00:00:12,100 --> 00:00:15,120 >> Η Python είναι μια γλώσσα scripting. 6 00:00:15,120 --> 00:00:17,870 Είναι σε μεγάλο βαθμό όπως η C στη σύνταξη, αν και μερικοί 7 00:00:17,870 --> 00:00:20,390 των τεχνικών λεπτομερειών της πώς να παίρνει σύνταξη που εκτελέστηκαν 8 00:00:20,390 --> 00:00:22,240 είναι ελαφρώς διαφορετική. 9 00:00:22,240 --> 00:00:24,780 Είναι λιγότερο ισχυρό από C σε κάποιους τρόπους. 10 00:00:24,780 --> 00:00:28,130 Είναι λιγότερο εκφραστικό για πού ακριβώς στον υπολογιστή σας 11 00:00:28,130 --> 00:00:30,030 μνήμη παίρνει καλοστημένο, πώς παίρνει καλοστημένο, 12 00:00:30,030 --> 00:00:32,030 όταν παίρνει την ελευθερία, και αυτά τα είδη των πραγμάτων. 13 00:00:32,030 --> 00:00:36,150 >> Είναι πιο χρήσιμο από το C με κάποιους τρόπους, γιατί είναι πιο εύκολο να προγραμματίσει σε. 14 00:00:36,150 --> 00:00:39,920 Η γλώσσα είναι, σε ορισμένες οι άνθρωποι, πιο διαισθητική. 15 00:00:39,920 --> 00:00:44,820 Και πραγματικά, ο στόχος είναι για να είναι πιο γρήγορα για να προγραμματίσετε 16 00:00:44,820 --> 00:00:46,490 και ενδεχομένως πιο αργή να εκτελέσει. 17 00:00:46,490 --> 00:00:48,198 >> Τώρα, αν το σκεφτείτε το ποσό του χρόνου 18 00:00:48,198 --> 00:00:50,514 που δαπανώνται για την τελευταία σας πρόβλημα που εγγράφως 19 00:00:50,514 --> 00:00:52,430 κωδικό σας κατά το ποσότητα του χρόνου που ξοδεύετε 20 00:00:52,430 --> 00:00:55,310 την τελευταία πρόβλημά σας που εκτελεί τον κωδικό σας, 21 00:00:55,310 --> 00:00:58,300 θα ήθελα να φανταστώ ότι η γλώσσα που ήταν δύο φορές πιο γρήγορα για να γράψει, 22 00:00:58,300 --> 00:01:02,170 και δύο φορές πιο αργή να εκτελέσει, μπορεί να είναι μια βελτίωση σε σχέση C με κάποιους τρόπους. 23 00:01:02,170 --> 00:01:05,730 Σίγουρα όταν προσπαθείτε να γράψετε μικρά προγράμματα για να κάνουμε μικρά πράγματα, 24 00:01:05,730 --> 00:01:08,520 Η Python είναι μια χρήσιμη γλώσσα της επιλογής. 25 00:01:08,520 --> 00:01:10,620 >> Και στο τέλος αυτής της σεμιναρίου, ελπίζω ότι θα 26 00:01:10,620 --> 00:01:12,950 να είναι σε θέση να κάνει το επιλογή σε μελλοντικά έργα 27 00:01:12,950 --> 00:01:17,710 σχετικά με το ποια γλώσσα είναι σωστό να χρησιμοποιήσει, δεν είναι η ιδέα 28 00:01:17,710 --> 00:01:21,405 ότι μία γλώσσα είναι πιο διορθώσει όλη την ώρα. 29 00:01:21,405 --> 00:01:23,030 Λίγα πράγματα για το τι είναι το σεμινάριο. 30 00:01:23,030 --> 00:01:25,910 Το σεμινάριο αυτό δεν έχει σκοπό να να σας διδάξει την Python από το μηδέν. 31 00:01:25,910 --> 00:01:28,310 Python είναι πολύ παρόμοια έως C, και υποθέτω 32 00:01:28,310 --> 00:01:34,056 ότι είσαι φοιτητής CS50, ή κάποιος με ένα παρόμοιο εξοικείωση με C. 33 00:01:34,056 --> 00:01:36,700 >> Αν είστε φοιτητής CS50 γύρω από το πρόβλημα που 6, 34 00:01:36,700 --> 00:01:38,866 Έτσι έχετε να δείτε πολλά τα πράγματα σε C, θα σας δώσω 35 00:01:38,866 --> 00:01:40,740 οι μεγάλες διαφορές, και μερικά από τα πράγματα 36 00:01:40,740 --> 00:01:42,840 που κάνουν διαφορετικά Python και ειδικές και χρήσιμο, 37 00:01:42,840 --> 00:01:45,256 αλλά εγώ δεν πρόκειται να πάει για τι γλώσσα προγραμματισμού είναι 38 00:01:45,256 --> 00:01:46,920 και πώς να γράψουν προγράμματα. 39 00:01:46,920 --> 00:01:49,820 Ωστόσο, αυτό το σεμινάριο θα διδάξουν μπορείτε να γράφετε προγράμματα Python 40 00:01:49,820 --> 00:01:52,310 εάν είστε ένας από εκείνους τους λίγους ομάδων. 41 00:01:52,310 --> 00:01:54,820 Και πάλι θα εξετάσουμε πώς θα εφαρμόσει psets-- 42 00:01:54,820 --> 00:01:57,550 ότι θα πρέπει να 1-6 Python-- και παρέχουν δείκτες 43 00:01:57,550 --> 00:02:00,322 σε επίσημα έγγραφα για μελλοντική αναφορά. 44 00:02:00,322 --> 00:02:03,030 Το άλλο πράγμα που είναι σημαντικό σχετικά με το πώς έχει ανατεθεί αυτή η συζήτηση, 45 00:02:03,030 --> 00:02:05,360 Αυτό το βίντεο θα είναι σε απευθείας σύνδεση, η ευγένεια του CS50, 46 00:02:05,360 --> 00:02:07,550 έτσι δεν θα πρέπει να αισθάνονται σαν θα πρέπει να κρατήσετε σημειώσεις. 47 00:02:07,550 --> 00:02:11,180 Μπορείτε πάντα να πάτε πίσω και να δούμε σε αυτό αργότερα ως σημείο αναφοράς. 48 00:02:11,180 --> 00:02:13,340 Επιπλέον, οι διαφάνειες είναι διαθέσιμα αυτή τη στιγμή 49 00:02:13,340 --> 00:02:16,480 σε αυτό το site, το οποίο θα πρέπει να λάβει κάνετε ένα έγγραφο Google. 50 00:02:16,480 --> 00:02:21,010 Είναι μια ελαφρώς συντομευμένη έκδοση τι είμαι εμφανίζεται στην οθόνη. 51 00:02:21,010 --> 00:02:24,850 >> Μια προσεκτική προειδοποίηση πριν εμείς άλμα, Python 3 52 00:02:24,850 --> 00:02:26,700 είναι μια διαφορετική γλώσσα από την Python 2. 53 00:02:26,700 --> 00:02:30,020 Φαίνονται πολύ το ίδιο? υπάρχουν πολύ μικρές τεχνικές διαφορές 54 00:02:30,020 --> 00:02:32,530 ότι θα προκαλέσει προγράμματα γραμμένο σε Python 2 55 00:02:32,530 --> 00:02:37,140 να μην είναι σε θέση να εκτελεστούν στην Python 3 περιβάλλον. 56 00:02:37,140 --> 00:02:41,969 >> Η συσκευή έρχεται με CS50 Python, από προεπιλογή χρησιμοποιεί Python 2. 57 00:02:41,969 --> 00:02:44,010 Μπορείτε να ελέγξετε αυτό με πληκτρολογώντας σε γραμμή εντολών σας 58 00:02:44,010 --> 00:02:51,310 python --version, η οποία θα πρέπει εξόδου 2.7.6 σχετικά με την τρέχουσα συσκευή. 59 00:02:51,310 --> 00:02:53,580 Δοκιμάστε Python 3, που κάνει εργάζονται στη συσκευή, 60 00:02:53,580 --> 00:02:58,500 Εάν η Python προεπιλογή 2.X.Y, είτε με η συσκευή ή για τη δική σας μηχανές. 61 00:02:58,500 --> 00:03:03,730 Θα πρέπει να αντικαταστήσετε Python 3 οποτεδήποτε σε αυτή την ομιλία που γράφω Python. 62 00:03:03,730 --> 00:03:05,760 Αν το μηχάνημά σας είναι τρέχει 2 από προεπιλογή, ο τύπος 63 00:03:05,760 --> 00:03:09,770 Python 3, προκειμένου να είναι σε θέση να πραγματικά παρακολουθήσει μαζί και να εκτελέσει αυτά τα πράγματα. 64 00:03:09,770 --> 00:03:12,280 >> Επιπλέον, θα σας επισημάνω σε επίσημη πόρων που είναι τώρα. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V προσεκτική ότι αυτό είναι ένα 3 και όχι 2-- 66 00:03:16,082 --> 00:03:17,030 έχει χρήσιμες αναφορές. 67 00:03:17,030 --> 00:03:19,280 Το σεμινάριο θα σας μεταφέρει μέσα από πολλά από τα ίδια πράγματα 68 00:03:19,280 --> 00:03:21,460 ότι κάνω τώρα, εκτός σε μορφή κειμένου. 69 00:03:21,460 --> 00:03:23,725 Είναι χρήσιμη ως αναφορά μια αναφοράς για τη γλώσσα, 70 00:03:23,725 --> 00:03:26,100 και της πρότυπης βιβλιοθήκης δίνει σας μερικές από τις επεκτάσεις 71 00:03:26,100 --> 00:03:27,770 με πρόσθετη λειτουργικότητα. 72 00:03:27,770 --> 00:03:31,300 >> Έτσι, ένα πρώτο πρόγραμμα σε Python. 73 00:03:31,300 --> 00:03:34,410 Στα αριστερά έχουμε πρότυπο C, σχετικά με το δικαίωμα, έχουμε Python. 74 00:03:34,410 --> 00:03:36,780 Μπορεί να έχουν αναγνωρίσει αυτό το πρόβλημα, είναι 75 00:03:36,780 --> 00:03:40,760 ένα από το πρώτο πρόβλημα θέτει σε CS50, και αυτά 76 00:03:40,760 --> 00:03:42,677 λύσει αυτό χρησιμοποιώντας το ίδιο διάλυμα. 77 00:03:42,677 --> 00:03:45,010 Τώρα, ο λόγος που είμαστε Βλέποντας αυτά δίπλα-δίπλα 78 00:03:45,010 --> 00:03:46,830 Είναι έτσι μπορούμε να εξετάσουμε συντακτικές διαφορές. 79 00:03:46,830 --> 00:03:49,580 Ένας από τους ελέφαντες στο δωμάτιο ότι μπορεί να έχετε παρατηρήσει σωστά 80 00:03:49,580 --> 00:03:56,350 από το ρόπαλο, είναι ότι η Python δεν έχει κύρια λειτουργία περιτύλιγμα γύρω από τον κώδικα. 81 00:03:56,350 --> 00:03:59,170 Έτσι σε C, μπορείτε να γράψετε ένα μάτσο αρχεία, μπορείτε να τα συνδέσει μεταξύ τους, 82 00:03:59,170 --> 00:04:02,590 και το πρόγραμμα ξεκινά την εκτέλεση σε αυτό το πράγμα που ονομάζεται int main. 83 00:04:02,590 --> 00:04:04,930 >> Στην Python, μπορείτε να γράψετε ένα το αρχείο, εκτελέστε το αρχείο, 84 00:04:04,930 --> 00:04:07,882 το πρόγραμμα ξεκινά την εκτέλεση στην κορυφή του αρχείου. 85 00:04:07,882 --> 00:04:09,590 Έτσι, πρόκειται να ξεκινήσει στην κορυφή του αρχείου 86 00:04:09,590 --> 00:04:11,280 πηγαίνετε προς τα κάτω μέχρι να βρείτε κάτι άλλο. 87 00:04:11,280 --> 00:04:14,440 Αν διαπιστώσει ένα ορισμό της συνάρτησης, δεν θα εκτελέσει πράγματι εν λόγω κώδικα, 88 00:04:14,440 --> 00:04:15,940 θα καθορίσει απλά τη λειτουργία. 89 00:04:15,940 --> 00:04:18,459 Αλλά εδώ, όταν η πρώτη προγράμματος είναι η ισούται με 10, 90 00:04:18,459 --> 00:04:21,273 Το πρώτο πράγμα που αυτό το πρόγραμμα θα κάνουμε είναι να εκμεταλλευτώ αυτή την αξία των 10 91 00:04:21,273 --> 00:04:24,120 και που σε μια μεταβλητή που ονομάζεται n. 92 00:04:24,120 --> 00:04:27,690 >> Μιλώντας για αυτή τη γραμμή, το ένα από άλλα things-- sorry-- αυτό 93 00:04:27,690 --> 00:04:31,040 σημαίνει ότι τα προγράμματα C, θα τα γράψω, 94 00:04:31,040 --> 00:04:34,899 θα τους κάνει, το οποίο θα επικαλούνται κάποιες εντολές κλαγγή, 95 00:04:34,899 --> 00:04:36,690 και στη συνέχεια θα τρέξει ένα με αποτέλεσμα εκτελέσιμο. 96 00:04:36,690 --> 00:04:41,030 Προγράμματα σε Python, μπορείτε να εκτελέσετε το κείμενο file-- αυτή θα μπορούσε mario.py 97 00:04:41,030 --> 00:04:44,900 είναι αυτό το αρχείο που μόλις εμφανίστηκε you-- θα εκτελέσετε το αρχείο 98 00:04:44,900 --> 00:04:47,450 και θα εκτελέσει, και τα περιεχόμενα αυτού 99 00:04:47,450 --> 00:04:50,390 θα πρέπει να εκτελούνται από ο διερμηνέας Python. 100 00:04:50,390 --> 00:04:52,470 Μπορείτε να το κάνετε αυτό σε IDE σας. 101 00:04:52,470 --> 00:05:02,260 >> Έτσι, αν έχω ένα αρχείο Γεια σας, το οποίο απλά έχει αυτό το περιεχόμενο. 102 00:05:02,260 --> 00:05:04,840 Αυτό είναι στην πραγματικότητα Python 2, δεν Python 3, έτσι ώστε να μην κάνουν 103 00:05:04,840 --> 00:05:06,600 ανησυχούν για τη σύνταξη για τώρα. 104 00:05:06,600 --> 00:05:14,230 Αλλά εγώ θα τρέξει Python, στις hello.py, και τρέχει. 105 00:05:14,230 --> 00:05:18,890 >> Ένας άλλος τρόπος που μπορώ να χρησιμοποιήσω Python ότι Δεν θα ασχοληθεί με τόσα πολλά σε αυτή την ομιλία, 106 00:05:18,890 --> 00:05:21,840 είναι αν μπορώ απλά πληκτρολογήστε Python, το σταγόνες μου σε ένα περιβάλλον όπου 107 00:05:21,840 --> 00:05:24,370 Μπορώ να το ταΐσετε Python γραμμή προς γραμμή. 108 00:05:24,370 --> 00:05:31,260 Έτσι, εδώ, αν πληκτρολογήσετε χώρο εκτύπωσης "Γεια σου, κόσμε». 109 00:05:31,260 --> 00:05:32,360 Πληκτρολογήστε enter. 110 00:05:32,360 --> 00:05:37,430 Θα μου φτύσει ότι ήδη τα αποτελέσματα ότι η ατομική γραμμή αμέσως. 111 00:05:37,430 --> 00:05:38,470 >> Αυτό είναι μπορεί να είναι χρήσιμο. 112 00:05:38,470 --> 00:05:40,700 Σε αυτή την ομιλία θα κάνω τα πράγματα σε διαφάνειες. 113 00:05:40,700 --> 00:05:43,940 Και έτσι θα είστε σε θέση να ακολουθήσετε κατά μήκος είτε εδώ, είτε γράφοντας 114 00:05:43,940 --> 00:05:45,725 πραγματικά αρχεία και, στη συνέχεια, την εκτέλεση τους. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Όμως, πηγαίνοντας πίσω σε αυτό κώδικα, ένα άλλο πράγμα 117 00:05:50,995 --> 00:05:53,230 ότι μπορεί να έχετε noticed-- καλά, υπάρχει 118 00:05:53,230 --> 00:05:55,980 δύο πράγματα που μπορεί να παρατηρήσετε σχετικά με αυτά τα τμήματα. 119 00:05:55,980 --> 00:05:59,280 Η πρώτη, μάλλον πιο πεζά, είναι ότι η Python δεν έχει τελικό ερωτηματικό. 120 00:05:59,280 --> 00:06:02,630 >> Ερωτηματικά είναι προαιρετική παντού και αβλαβείς παντού. 121 00:06:02,630 --> 00:06:03,722 Μπορείτε να τα προσθέσετε. 122 00:06:03,722 --> 00:06:06,430 Θα μπορούσε να κάνει τους ανθρώπους που γράφουν Python για ένα ζωντανό snicker σε σας 123 00:06:06,430 --> 00:06:08,860 πίσω από την πλάτη σας, γιατί ότι δεν είναι απαραίτητο. 124 00:06:08,860 --> 00:06:13,497 Είναι συχνά ένα σημάδι να αναβάλλεται από C. Οι σχεδιαστές της γλώσσας 125 00:06:13,497 --> 00:06:16,580 αισθάνονται ότι είναι πιο σαφής αυτός ο τρόπος και ότι δεν είναι απαραίτητο να δηλωθεί 126 00:06:16,580 --> 00:06:18,700 κάθε φορά που θα τερματίσει την γραμμή. 127 00:06:18,700 --> 00:06:21,799 >> Ένα άλλο περίεργο πράγμα σχετικά με αυτό το ν είναι ότι δεν έχουν έναν τύπο που επισυνάπτεται. 128 00:06:21,799 --> 00:06:24,590 Ένα από τα μαγικά κομμάτια του Python-- και πάω να το ονομάσουμε μαγικό, 129 00:06:24,590 --> 00:06:26,381 αλλά υπάρχουν πολύ τεχνικούς λόγους για τους οποίους 130 00:06:26,381 --> 00:06:28,560 works-- ένα από τα μαγεία κομμάτια της Python 131 00:06:28,560 --> 00:06:32,700 είναι ότι οι μεταβλητές μπορούν να επεκτείνουν ή συρρικνωθεί σε ό, τι περιέχει δεδομένα 132 00:06:32,700 --> 00:06:34,530 τύποι θα τους θέλουν. 133 00:06:34,530 --> 00:06:35,580 >> Έτσι, αυτό είναι ένα 10. 134 00:06:35,580 --> 00:06:40,060 Αν αργότερα κάτω από όρισα σε αυτό n 0.5, θα θεωρήσει ότι 0,5. 135 00:06:40,060 --> 00:06:43,770 Δεν έχει σημασία ότι είναι ένας int εδώ και επιπλέουν εκεί, κάτι που χρησιμοποιεί αυτό το n 136 00:06:43,770 --> 00:06:47,057 θα, περισσότερο ή λιγότερο, να είναι σε θέση να chug μαζί αν γίνεται είτε από αυτούς. 137 00:06:47,057 --> 00:06:49,640 Εκτός αν υπάρχει κάποια πολύ πραγματική λόγος για τον οποίο δεν μπορεί να χρησιμοποιήσει τα δεδομένα 138 00:06:49,640 --> 00:06:52,170 πληκτρολογήστε ότι το n έχει σήμερα, σε ποιο σημείο αυτό θα πάρει 139 00:06:52,170 --> 00:06:54,490 σφηνωμένο και να ρίξει ένα λάθος, και εκείνα τα είδη των πραγμάτων. 140 00:06:54,490 --> 00:06:57,050 >> Αλλά εδώ, Python Πραγματικά δεν με νοιάζει τι 141 00:06:57,050 --> 00:06:59,140 είναι ότι είμαι πρόκειται να κολλήσει σε αυτό φράση, όπως, θέλετε αυτό το πράγμα; 142 00:06:59,140 --> 00:06:59,840 Αυτό το πράγμα σε αυτό; 143 00:06:59,840 --> 00:07:00,640 Ναι, αυτό είναι το είδος του πράγματος. 144 00:07:00,640 --> 00:07:01,810 Θα κολλήσει στο τέλος. 145 00:07:01,810 --> 00:07:04,740 Θα είναι ένα πρόβλημα αργότερα, εάν κάποιος που θέλει να χρησιμοποιήσει το τέλος 146 00:07:04,740 --> 00:07:05,710 δεν μπορεί να το χειριστεί. 147 00:07:05,710 --> 00:07:08,500 Αυτό είναι ένα από τα σημαντικότερα διαφορές μεταξύ Python και C 148 00:07:08,500 --> 00:07:10,790 ότι καθιστά εύκολο να γράψει πολύ μεγάλα προγράμματα C 149 00:07:10,790 --> 00:07:15,120 και καθιστά ευκολότερο να γράψει πολύ μικρό πρόγραμμα Python. 150 00:07:15,120 --> 00:07:19,564 >> Η σύνταξη για να μην είναι πολύ διαφορετικές σε αυτό που κάνει. 151 00:07:19,564 --> 00:07:21,480 Είναι ελαφρώς διαφορετική στο πώς έχει εκφραστεί. 152 00:07:21,480 --> 00:07:25,370 Έτσι, αυτό είναι ένα πολύ, αυτό που ονομάζεται Pythonic, ο τρόπος της γραφής του. 153 00:07:25,370 --> 00:07:28,969 για τη σειρά σε σειρά (ν), αυτή είναι η εύρος των αριθμών από 0 έως n, 154 00:07:28,969 --> 00:07:31,010 αποκλεισμούς στο κάτω μέρος και αποκλειστικά στην κορυφή. 155 00:07:31,010 --> 00:07:34,790 Έτσι είναι από 0 έως n-1, η οποία είναι τι ακριβώς κάνει ο κώδικας C, 156 00:07:34,790 --> 00:07:38,690 εκτός του ότι είναι πολύ πιο εύκολο να δούμε ίσως. 157 00:07:38,690 --> 00:07:42,710 >> Η σχετική μπλοκ είναι δεν συμψηφιστεί με τιράντες, 158 00:07:42,710 --> 00:07:44,540 Αντ 'αυτού, είναι να συμψηφίσει από αυτήν την εσοχή. 159 00:07:44,540 --> 00:07:47,580 Έτσι, όλες αυτές οι γραμμές είναι τέσσερις χώρους πάνω προς τα δεξιά, 160 00:07:47,580 --> 00:07:50,410 ή σαν ένα πλάτος περίπου ελέφαντα. 161 00:07:50,410 --> 00:07:54,570 Και εκείνοι είναι αυτοί που είναι πρόκειται να εκτελεστεί σε αυτό για. 162 00:07:54,570 --> 00:07:57,020 Αν μου χάος μέχρι το εσοχή στο θέμα αυτό και 163 00:07:57,020 --> 00:08:01,420 ωθεί ότι η εκτύπωση πίσω στο η αρχική οδόντωση, 164 00:08:01,420 --> 00:08:04,320 ότι η εκτύπωση θα αφήσει το βρόχο for. 165 00:08:04,320 --> 00:08:08,560 Σε αντίθεση με την C, όπου εδώ στην πραγματικότητα πρέπει να μεταφερθεί η κλειστή στήριγμα γύρω. 166 00:08:08,560 --> 00:08:11,820 >> Αυτό σημαίνει ότι δεν έχετε σφάλματα που πηδούν έξω σε σας, επειδή σας 167 00:08:11,820 --> 00:08:13,580 βάλτε ένα στήριγμα σε λάθος μέρος. 168 00:08:13,580 --> 00:08:16,460 Αυτό σημαίνει ότι μπορείτε να πάρετε τα λάθη που πηδούν έξω σε σας, επειδή σας 169 00:08:16,460 --> 00:08:17,620 χαραγμένο ένα στοιχείο γραμμής λάθος. 170 00:08:17,620 --> 00:08:19,290 Γι 'αυτό κάνει εσοχές σούπερ προσεκτικοί. 171 00:08:19,290 --> 00:08:22,123 Ας ελπίσουμε ότι θα ήταν ότι είναι εξαιρετικά προσεκτικοί με οδόντωση σας ούτως ή άλλως, 172 00:08:22,123 --> 00:08:25,300 και έτσι αυτό δεν είναι ότι πολύ περισσότερο από ένα βάρος. 173 00:08:25,300 --> 00:08:28,762 >> Αλλά ένας βασικός κανόνας για την Python, και θα έχουμε ένα ζευγάρι από αυτά 174 00:08:28,762 --> 00:08:30,970 ότι θα περάσει μέσα από η πορεία της ομιλίας, 175 00:08:30,970 --> 00:08:33,840 είναι να προσπαθήσουμε φυσικά σύνταξη πριν ψάχνετε κάτι επάνω. 176 00:08:33,840 --> 00:08:37,610 Έτσι, αυτή η σύνταξη, για Ο αριθμός στη σειρά, 177 00:08:37,610 --> 00:08:41,460 Είναι πολύ διακριτικός όσον αφορά το στυλ. 178 00:08:41,460 --> 00:08:45,260 Πολλά πράγματα στην Python θα δούμε να παίρνετε αυτό το έντυπο. 179 00:08:45,260 --> 00:08:47,420 >> Και έτσι αν έχετε καταλήξει με ένα νέο αντικείμενο που θα 180 00:08:47,420 --> 00:08:50,870 ότι θα πρέπει να είναι σε θέση να επαναλάβετε σε αυτό, σε αυτή τη μορφή, 181 00:08:50,870 --> 00:08:53,720 Αποδεικνύεται ότι κατά πάσα πιθανότητα υποστηρίζει αυτή τη μορφή. 182 00:08:53,720 --> 00:08:56,990 Εμείς δεν πρόκειται να πάμε σούπερ βαθιά στο οι τεχνικοί λόγοι για τους οποίους αυτό είναι αλήθεια. 183 00:08:56,990 --> 00:09:00,167 >> Αλλά είναι ένα χρήσιμο διαίσθηση για να έχουν όταν πλησιάζετε προγράμματα Python, 184 00:09:00,167 --> 00:09:01,750 ότι αυτό το πράγμα είναι ακριβώς πρόκειται να λειτουργήσει. 185 00:09:01,750 --> 00:09:03,020 Δοκίμασέ το. 186 00:09:03,020 --> 00:09:06,480 Εκκίνηση στη γραμμή εντολών Διερμηνέας, δείτε αν αυτό δουλεύει, 187 00:09:06,480 --> 00:09:09,827 προχωρήσουμε με τα πράγματα, πριν να χρειάζεται καν να ανοίξει το Google και να πω, 188 00:09:09,827 --> 00:09:11,660 ποια είναι η σύνταξη για αυτό το συγκεκριμένο πράγμα; 189 00:09:11,660 --> 00:09:14,740 Πολλά από Python θα μπορούσατε ανακαλύψουν μόνο με την προσπάθεια. 190 00:09:14,740 --> 00:09:19,005 >> Αυτό αν είναι ακόμη πιο παρόμοια στο C τότε οι Φορς είναι. 191 00:09:19,005 --> 00:09:20,380 Σημειώστε ότι δεν υπάρχει καμία παρενθέσεις. 192 00:09:20,380 --> 00:09:23,490 Οι παρενθέσεις είναι, και πάλι, ακίνδυνο αλλά περιττή. 193 00:09:23,490 --> 00:09:25,750 Υπάρχει μια άνω και κάτω τελεία στο τέλος όπως ακριβώς η για βρόχους, 194 00:09:25,750 --> 00:09:30,800 και πάλι, οι σχετικές μπλοκ είναι εσοχή αντί συμψηφιστεί με τιράντες. 195 00:09:30,800 --> 00:09:33,080 Αυτό το άλλο είναι στην αρχική επίπεδο εσοχής, 196 00:09:33,080 --> 00:09:35,930 και σχετικού τμήματος της εσοχή και πάλι. 197 00:09:35,930 --> 00:09:41,720 Όσοι έργο ακριβώς όπως κάνουν στο Γ 198 00:09:41,720 --> 00:09:44,520 >> Αυτό είναι στην πραγματικότητα πάρα πολύ η ίδια. 199 00:09:44,520 --> 00:09:49,430 Και πάλι, εκτύπωση χάνει ένα χαρακτήρα εκτός της printf Περνάτε κάποιες χορδές. 200 00:09:49,430 --> 00:09:51,520 Αποδεικνύεται χορδές μπορεί είτε να χαραχτεί 201 00:09:51,520 --> 00:09:53,562 με εισαγωγικά ή διπλά εισαγωγικά. 202 00:09:53,562 --> 00:09:55,270 Δεν υπάρχει καμία διαφορά, εκτός από το ότι στο εσωτερικό 203 00:09:55,270 --> 00:09:57,722 της μονά εισαγωγικά, μπορείτε να χρησιμοποιήσετε διπλά εισαγωγικά με εγκαταλείψει, 204 00:09:57,722 --> 00:09:59,430 αντί να χρειάζεται να ξεφύγουν από όλα αυτά. 205 00:09:59,430 --> 00:10:01,480 Και μέσα από διπλά εισαγωγικά, μπορείτε Χρησιμοποιήστε μονά εισαγωγικά με εγκατάλειψη 206 00:10:01,480 --> 00:10:02,420 χωρίς να χρειάζεται να διαφύγουν. 207 00:10:02,420 --> 00:10:04,253 Αν θέλετε να αναμίξετε τους, μπορείτε σίγουρα 208 00:10:04,253 --> 00:10:06,100 κοιτάζω προς τα πάνω σε απευθείας σύνδεση πώς να το κάνουμε αυτό. 209 00:10:06,100 --> 00:10:09,581 >> Θα παρατηρήσετε ότι εδώ, Έχω περάσει στο τέλος = αυτό το πράγμα. 210 00:10:09,581 --> 00:10:12,580 Αυτό είναι ένα παράδειγμα ενός προαιρετικού επιχείρημα, το οποίο είναι ένα από εκείνα τα πράγματα 211 00:10:12,580 --> 00:10:14,990 ότι η Python υποστηρίζει ότι καθιστά αρκετά χρήσιμο. 212 00:10:14,990 --> 00:10:18,240 Έτσι εκτύπωσης έχει πραγματικά πολλά επιχειρήματα, τα οποία είναι συνήθως 213 00:10:18,240 --> 00:10:20,140 στις προεπιλεγμένες τους τιμή, αλλά εδώ έχω 214 00:10:20,140 --> 00:10:21,924 αποφάσισε να παρακάμψετε το ένα ονομάζεται άκρο. 215 00:10:21,924 --> 00:10:24,340 Ο λόγος που έχω να παρακάμψουν με ένα κενό string 216 00:10:24,340 --> 00:10:26,756 είναι ότι η εκτύπωση σε Python, από προεπιλογή, εκτυπώνει μια νέα γραμμή 217 00:10:26,756 --> 00:10:28,630 μετά το πράγμα που σας το είπε πάρα πολύ. 218 00:10:28,630 --> 00:10:31,462 >> Έτσι, αυτό είναι πραγματικά hash πρόκειται να εκτυπώστε ένα χασίς σε μια νέα γραμμή. 219 00:10:31,462 --> 00:10:34,670 Και αν δεν θέλω κατακερματισμού για να εκτυπώσετε μια νέα γραμμή μετά από αυτό, τότε έχω να πω 220 00:10:34,670 --> 00:10:35,340 δεν εκτυπώνονται μία. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Αλλά, όμως, έτσι, το ένα τελευταίο πράγμα που Αυτό το πρόγραμμα απουσιάζει ότι έχει κανείς είναι 223 00:10:43,690 --> 00:10:44,960 ένας περιλαμβάνονται στην κορυφή. 224 00:10:44,960 --> 00:10:48,120 Εκτύπωση ψήνεται σε Python τόσο βασικά ότι δεν υπάρχει κεφαλίδα ή μονάδα 225 00:10:48,120 --> 00:10:49,869 ότι θα πρέπει να περιλαμβάνουν, αν και αν ήθελε 226 00:10:49,869 --> 00:10:52,029 να περιλαμβάνουν και άλλα πράγματα σε ένα σενάριο Python, 227 00:10:52,029 --> 00:10:55,320 Θα ήθελα να το κάνω με έναν πολύ παρόμοιο format-- οι λέξεις είναι μόνο ελαφρώς διαφορετική. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Ανέφερα ότι εμείς Δεν χρειάζεστε έναν κύριο εδώ, 230 00:11:01,360 --> 00:11:03,372 διότι η Python αρχίζει εκτέλεσης στην κορυφή. 231 00:11:03,372 --> 00:11:05,080 Αν ήθελα να τυλίξει αυτό σε μια λειτουργία, I 232 00:11:05,080 --> 00:11:07,667 Θα το κάνω εγώ σαν this-- Θα έλεγα DEF όνομα της συνάρτησης, 233 00:11:07,667 --> 00:11:10,500 επιχειρήματα θα μπορούσε να πάει εδώ και θα δείτε μερικά από αυτά αργότερα, του παχέος εντέρου, 234 00:11:10,500 --> 00:11:13,040 και στη συνέχεια και πάλι, αυτή η ολόκληρο το συμψηφίσει μπλοκ 235 00:11:13,040 --> 00:11:16,810 είναι ποια είναι η λειτουργική μπλοκ για την εν λόγω λειτουργία. 236 00:11:16,810 --> 00:11:18,560 Έτσι, αυτό είναι ο ορισμός της συνάρτησης. 237 00:11:18,560 --> 00:11:21,587 Και υπάρχει μια δήλωση, στη συνέχεια, προς τα κάτω εδώ, μπορώ απλά να καλέσετε τη λειτουργία αυτή. 238 00:11:21,587 --> 00:11:23,920 Και πάλι, το πρόγραμμα διερμηνέας, ξεκινώντας από την κορυφή, 239 00:11:23,920 --> 00:11:25,280 Θα δείτε αυτό είναι ο ορισμός. 240 00:11:25,280 --> 00:11:27,960 Δεν θα εκτελέσει αυτό έως ότου φτάσετε εδώ, και στη συνέχεια να είναι όπως, oh 241 00:11:27,960 --> 00:11:30,860 τώρα που έχετε αυτό που ονομάζεται, εγώ Μάλλον θα πρέπει να το εκτελέσει. 242 00:11:30,860 --> 00:11:33,850 >> Ένα πράγμα που είναι πολύ συχνή για να δείτε αρχεία σε Python, 243 00:11:33,850 --> 00:11:36,700 ειδικά αρχεία Python που Τα προσιτά στο κοινό 244 00:11:36,700 --> 00:11:41,650 και αναπτύχθηκε by-- και να αναπτυχθεί και διατηρείται, είναι κάτι αυτής της μορφής. 245 00:11:41,650 --> 00:11:44,540 Αυτό συμβαίνει επειδή basically-- Python, που ξεκινούν από την κορυφή 246 00:11:44,540 --> 00:11:50,310 και στη συνέχεια να εκτελέσει στο κάτω μέρος, Εγώ αν είχα μόνο τον Mario φώναξε εδώ, 247 00:11:50,310 --> 00:11:54,190 τότε κάθε φορά που περιλαμβάνεται σε αυτό το αρχείο ένα άλλο αρχείο, γιατί ήθελα να χρησιμοποιήσω 248 00:11:54,190 --> 00:11:58,580 είναι η λειτουργία Mario ότι άλλο αρχείο θα έχουν επίσης αυτό το κάλεσμα για Mario σε αυτό. 249 00:11:58,580 --> 00:12:01,000 Και όταν έτρεξα το αρχείο, θα έθετε Mario. 250 00:12:01,000 --> 00:12:04,520 >> Έτσι, είναι πιθανό ότι έχω μόνο θέλετε να εκτελέσετε αυτό, αν έχω πραγματικά 251 00:12:04,520 --> 00:12:07,290 εκτελεστεί το συγκεκριμένο αρχείο. 252 00:12:07,290 --> 00:12:11,520 Και έτσι μπορώ να το τυλίξετε σε μια ιδίωμα, όπως αυτό, όπου το λέω, 253 00:12:11,520 --> 00:12:14,820 εάν το όνομα αυτής της εκτέλεσης περιβάλλον είναι το κύριο, 254 00:12:14,820 --> 00:12:16,200 Στη συνέχεια θέλω να κάνω αυτά τα πράγματα. 255 00:12:16,200 --> 00:12:18,710 Διαφορετικά, κάποιος άλλος μπορεί να use-- περιλαμβάνουν function-- μου 256 00:12:18,710 --> 00:12:22,510 το αρχείο μου, και μόνο για να πάρει πρόσβαση σε αυτές τις λειτουργίες 257 00:12:22,510 --> 00:12:25,552 χωρίς να χρειάζεται να τρέξει τα πράγματα ότι θέλω να εκτελέσει σε αυτό το αρχείο. 258 00:12:25,552 --> 00:12:27,260 Αυτό είναι, και πάλι, προαιρετικός αλλά πολύ συχνές. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Αυτά τα πράγματα είναι είναι entirely-- ακριβώς το ίδιο μεταξύ του C και Python, 261 00:12:33,840 --> 00:12:35,100 Σίγουρα σε 3. 262 00:12:35,100 --> 00:12:38,610 Νομίζω ότι σε 2, ο φορέας εκμετάλλευσης διαίρεση μερικές φορές σου δίνει πίσω όταν επιπλέει 263 00:12:38,610 --> 00:12:41,450 που λειτουργούν σε ints, και είτε θελήσατε ότι ή δεν το κάνατε. 264 00:12:41,450 --> 00:12:44,777 Αλλά συν, μείον, και οι χρόνοι λειτουργούν ακριβώς όπως θα περιμένατε, 265 00:12:44,777 --> 00:12:46,110 εκτός από αυτά πάνω ελαφρώς περισσότερα είδη. 266 00:12:46,110 --> 00:12:49,740 Έτσι, μπορείτε να πολλαπλασιάσετε με πλωτήρες ints, και αυτά τα είδη των πραγμάτων. 267 00:12:49,740 --> 00:12:52,480 >> σετ λειτουργεί ακριβώς το ίδιο. 268 00:12:52,480 --> 00:12:54,310 Μπορείτε να χρησιμοποιήσετε δύο ίσα σημάδια. 269 00:12:54,310 --> 00:12:59,000 inequals-- μεγαλύτερο από, μικρότερο από ό, τι, αυτά τα είδη των things-- 270 00:12:59,000 --> 00:13:02,580 έχουν τις έννοιες που είστε εξοικειωμένοι με αυτά. 271 00:13:02,580 --> 00:13:05,770 >> Όπου C χρησιμοποιεί αυτές τις επιχειρήσεις, Python χρησιμοποιεί ελαφρώς πιο Αγγλικά 272 00:13:05,770 --> 00:13:06,390 αναγνώσιμο από αυτά. 273 00:13:06,390 --> 00:13:09,348 Έτσι, αντί για δύο, συμπλεκτικά σύμβολα, που κυριολεκτικά πληκτρολογήστε τη λέξη "και", "ή" 274 00:13:09,348 --> 00:13:10,740 ή όχι." 275 00:13:10,740 --> 00:13:13,420 Όπως και στην if-- σας σε σας υπό όρους δηλώσεις, 276 00:13:13,420 --> 00:13:17,670 είδαμε νωρίτερα ότι αυτή η σύνταξη της C αντιστοιχεί σε αυτή τη σύνταξη στην Python. 277 00:13:17,670 --> 00:13:21,010 Και δεν υπάρχει είναι πολύ διαφορετική εκεί, εκτός από ένα μικρό κομμάτι 278 00:13:21,010 --> 00:13:24,780 σημείων στίξης γύρω από τις πλευρές. 279 00:13:24,780 --> 00:13:28,890 Και πάλι, όπου C θα αλλού αν, Python χρησιμοποιεί Elif, 280 00:13:28,890 --> 00:13:33,960 αλλά αυτά είναι ως επί το πλείστον αλλαγές επίπεδη επιφάνεια. 281 00:13:33,960 --> 00:13:38,450 >> Επανάληψη όπως αυτό είναι συχνά γραμμένο σε αυτό το ιδίωμα στην Python. 282 00:13:38,450 --> 00:13:42,350 Μπορείτε να κατασκευάσει αυτό το είδος του πράγμα με έναν βρόχο, ενώ στο εξωτερικό 283 00:13:42,350 --> 00:13:46,387 αν θέλετε, αλλά σας Σίγουρα δεν χρειάζεται να. 284 00:13:46,387 --> 00:13:48,970 Και πάλι, αν ήθελε η εκτυπώστε στοιχεία ενός πίνακα 285 00:13:48,970 --> 00:13:50,560 μπορείτε να το κάνετε με αυτόν τον τρόπο. 286 00:13:50,560 --> 00:13:52,927 Ένα από τα διασκεδαστικά πράγματα για την Python όμως, 287 00:13:52,927 --> 00:13:54,760 είναι ότι δεν χρειάζεστε για να χρησιμοποιήσετε αυτό το υπόδειγμα, 288 00:13:54,760 --> 00:13:57,290 και μπορείτε να χρησιμοποιήσετε ένα λίγο πιο κομψό ένα. 289 00:13:57,290 --> 00:13:59,370 Λέτε για μια σε ρίου. 290 00:13:59,370 --> 00:14:02,980 >> Έτσι, αντί να πηγαίνει εδώ και τρέχει πάνω από τους δείκτες, 291 00:14:02,980 --> 00:14:05,630 και στη συνέχεια τραβώντας προς τα έξω μεμονωμένα στοιχεία, 292 00:14:05,630 --> 00:14:08,644 να σας πω το για να πραγματικά μόνο τρέχει πάνω των ίδιων στοιχείων. 293 00:14:08,644 --> 00:14:11,060 Και τότε οτιδήποτε και αν κάνετε στο εσωτερικό μπορεί να λειτουργήσει άμεσα 294 00:14:11,060 --> 00:14:13,260 σχετικά με τα στοιχεία, τα οποία είναι αρκετά διασκεδαστικό. 295 00:14:13,260 --> 00:14:16,710 Και θα see-- θα χρησιμοποιήσουμε ότι ιδίωμα ξανά και ξανά 296 00:14:16,710 --> 00:14:18,050 καθώς περπατάμε μέσα από κώδικα. 297 00:14:18,050 --> 00:14:20,091 >> Αυτό είναι, και πάλι, ένα παράδειγμα κάτι που εγώ θα 298 00:14:20,091 --> 00:14:23,300 καλέστε Python μαγεία, αν υπάρχουν πολύ τεχνικούς λόγους γιατί λειτουργεί. 299 00:14:23,300 --> 00:14:26,340 Και υπάρχουν τεχνικά πράγματα ότι Πρέπει να είναι αλήθεια για σειρά για 300 00:14:26,340 --> 00:14:28,340 για να δουλέψει πίσω από τις σκηνές. 301 00:14:28,340 --> 00:14:31,390 Το θέμα είναι ότι οι περισσότεροι τύποι η οποία θα περιμένατε να δουλέψει 302 00:14:31,390 --> 00:14:36,610 είχαν αυτή εφαρμόζεται για σας στην ενσωματωμένη γλώσσα. 303 00:14:36,610 --> 00:14:40,030 >> Ένα άλλο πράγμα που θα ήταν ωραίο αν αυτό λειτούργησε σε κάθε γλώσσα, 304 00:14:40,030 --> 00:14:45,460 αλλά υπάρχουν κάποιοι λόγοι για τους οποίους δεν μπορεί, εκτυπώστε αυτό το κορδόνι φορές αυτός ο αριθμός. 305 00:14:45,460 --> 00:14:48,860 Βγάζει στην Python, αυτό ακριβώς κάνει τι θα θέλατε, το οποίο είναι μόνο διασκέδαση, 306 00:14:48,860 --> 00:14:52,840 και σημαίνει ότι μπορούμε πράγματι μείωση αυτού του προγράμματος, και πάλι mario.c. 307 00:14:52,840 --> 00:14:57,150 Αντί επανάληψη πολλά, μπορούμε απλά να πω, θέλω κάποια αριθμός των χώρων, 308 00:14:57,150 --> 00:15:01,120 Θέλω τον αριθμό των hashes, και μερικά hashes στο τέλος. 309 00:15:01,120 --> 00:15:02,640 Και πάλι, χρησιμοποιούμε αυτή τη μορφή. 310 00:15:02,640 --> 00:15:05,340 >> Εδώ, είμαστε περνώντας ένα μεταβλητό αυτό τον τρόπο. 311 00:15:05,340 --> 00:15:08,050 Και πάλι, δεν χρειάζεται να πω τι είδους μεταβλητή είναι, 312 00:15:08,050 --> 00:15:11,322 και η μοναδική φορά που θα να πάρετε τα λάθη είναι κατά το χρόνο εκτέλεσης. 313 00:15:11,322 --> 00:15:13,030 Όταν κάποιος προσπαθεί να περάσει κάτι, 314 00:15:13,030 --> 00:15:14,860 αυτό θα τεθεί σε λειτουργία μια χαρά. 315 00:15:14,860 --> 00:15:18,240 Αν σφήνα εδώ, επειδή αυτή δεν είναι η πράγμα που μπορείτε να δημιουργήσετε σειρές πάνω, 316 00:15:18,240 --> 00:15:22,100 Θα πάρω ένα σφάλμα χρόνου εκτέλεσης εκεί, και θα πρέπει να το debug με αυτόν τον τρόπο. 317 00:15:22,100 --> 00:15:25,050 Αλλά εν τω μεταξύ, δεν έχω να είναι πολύ προσεκτικοί σχετικά με το τι 318 00:15:25,050 --> 00:15:32,800 παίρνει πέρασε, εφ 'όσον στην πραγματική εκτέλεση λειτουργούν όλα πολύ καθαρά. 319 00:15:32,800 --> 00:15:35,080 >> Θα μπορούσα να κάνω ακόμη και αυτό λίγο καθαρότερο 320 00:15:35,080 --> 00:15:41,770 χρησιμοποιώντας ένα συγκεκριμένο ενσωματωμένη λειτουργία στις χορδές, το οποίο είναι Στοίχιση δεξιά. 321 00:15:41,770 --> 00:15:45,250 Αυτή είναι μόνο μια χρήσιμη λειτουργία που βρίσκονται γύρω από τη βιβλιοθήκη. 322 00:15:45,250 --> 00:15:47,660 Είναι στην τεκμηρίωση αν πάτε και να την αναζητήσουμε. 323 00:15:47,660 --> 00:15:51,650 Και λέω, αλλά Πάω να έχουν Αυτή η σειρά, κάποιος αριθμός των hashes, 324 00:15:51,650 --> 00:15:56,390 και θα ήθελα να δικαιολογήσει το δικαίωμα it-- μαξιλάρι έξω με κενά για να είναι αυτό το μήκος. 325 00:15:56,390 --> 00:16:00,584 >> Και πάλι, αυτό είναι το τεκμηρίωση, η οποία φέρνει ΕΜΕΙΣ-- 326 00:16:00,584 --> 00:16:03,500 Θα κάνουν κλικ μέσω these-- το οποίο μας φέρνει στη δεύτερη κανόνας μας 327 00:16:03,500 --> 00:16:06,990 για Python-- πρότυπη βιβλιοθήκη μέθοδοι λειτουργίας είναι οι φίλοι σου. 328 00:16:06,990 --> 00:16:09,880 Και είναι συχνά αξίζει τον κόπο σας να αρχίσετε να ψάχνετε για Αναρωτιέμαι 329 00:16:09,880 --> 00:16:12,310 αν υπάρχει ένα πράγμα που κάνει ακριβώς αυτό. 330 00:16:12,310 --> 00:16:13,830 Υπάρχει πιθανώς είναι. 331 00:16:13,830 --> 00:16:15,990 Αν θέλετε να pad από μια σειρά, αν θέλετε 332 00:16:15,990 --> 00:16:17,470 ήθελα να εκμεταλλευτώ την πλάτη το μισό από μια σειρά, αν θέλετε 333 00:16:17,470 --> 00:16:20,370 ήθελα να πραγματοποιήσετε αναζήτηση από μια χορδή, εάν θα θέλατε να συνθλίψει μερικά πράγματα 334 00:16:20,370 --> 00:16:22,420 μαζί με μια σειρά με κόμματα μεταξύ τους, 335 00:16:22,420 --> 00:16:24,640 υπάρχουν πρότυπη βιβλιοθήκη λειτουργίες για να γίνει αυτό. 336 00:16:24,640 --> 00:16:27,190 >> Και αυτό κάνει τη ζωή σας ευκολότερη, αν τα χρησιμοποιήσετε 337 00:16:27,190 --> 00:16:29,240 αντί να ξεδιπλώσει τα πάντα για τη δική σας 338 00:16:29,240 --> 00:16:31,650 σε πέντε γραμμές κώδικα εδώ, πέντε γραμμές κώδικα εδώ. 339 00:16:31,650 --> 00:16:34,430 Αυτό αρχίζει πραγματικά σε προσθέσετε έως και σε πραγματικό χρόνο. 340 00:16:34,430 --> 00:16:37,430 >> Ένα από τα ενδιαφέροντα πράγματα για το πώς αυτό γίνεται ονομάζεται. 341 00:16:37,430 --> 00:16:39,980 Θα παρατηρήσετε ότι υπάρχει μια τελεία πράγμα. 342 00:16:39,980 --> 00:16:43,490 Έχω κάποιο αντικείμενο στα αριστερά, και στη συνέχεια κάλεσα μια τελεία λειτουργία. 343 00:16:43,490 --> 00:16:49,780 Αυτό είναι ένα από τα παραδείγματα που Python χρησιμοποιεί για την προσάρτηση μεθόδους για αντικείμενα. 344 00:16:49,780 --> 00:16:54,410 Θα μιλήσουμε για το τι αυτό είναι πολύ σύντομα, στο τέλος, 345 00:16:54,410 --> 00:16:58,510 αλλά γνωρίζουμε ότι μπορούμε και οι δύο να λειτουργούν τα πράγματα με τη λήψη αυτό το πράγμα λέγοντας dot 346 00:16:58,510 --> 00:17:01,690 ό, ή με την κλήση μια λειτουργία που λαμβάνει 347 00:17:01,690 --> 00:17:04,339 ότι το αντικείμενο και κάποια άλλα επιχειρήματα. 348 00:17:04,339 --> 00:17:07,450 >> Έτσι, αυτοί είναι και οι δύο τρόποι με τους οποίους οποίο γίνονται τα πράγματα στην Python. 349 00:17:07,450 --> 00:17:09,780 Και αν ένα συγκεκριμένο λειτουργικότητα υλοποιείται 350 00:17:09,780 --> 00:17:14,230 σε αυτό το ύφος ή αυτό στυλ είναι κάτι που 351 00:17:14,230 --> 00:17:19,990 θα πρέπει να κοιτάζω προς τα πάνω μέχρι να πάρετε ένα κολλάει για τα οποία το ένα είναι πιθανό να πέσουμε. 352 00:17:19,990 --> 00:17:22,660 Υπάρχει μια περισσότερο ή λιγότερο συνεκτική Η φιλοσοφία πίσω από την Python 353 00:17:22,660 --> 00:17:24,930 ότι θα απορροφήσει ως επί το πλείστον γράφοντας πολλά σε αυτό. 354 00:17:24,930 --> 00:17:28,190 Σε κάποιο σημείο, που ένας από αυτούς κάτι που θα πρέπει να υλοποιηθούν ως 355 00:17:28,190 --> 00:17:29,470 γίνεται φυσική. 356 00:17:29,470 --> 00:17:32,420 Προς το παρόν, είναι απλώς κάτι όπως μπορείτε να μάθετε να καταλάβω 357 00:17:32,420 --> 00:17:34,140 κάθε επιμέρους πράγμα. 358 00:17:34,140 --> 00:17:36,420 >> Έτσι πρότυπη βιβλιοθήκη λειτουργίες είναι οι φίλοι σου, 359 00:17:36,420 --> 00:17:41,320 και θα σας αφήσει να γράψει τα πράγματα ότι καταλαμβάνουν πολύ χώρο αυτό πραγματικά σύντομα, 360 00:17:41,320 --> 00:17:42,040 πραγματικά όμορφα. 361 00:17:42,040 --> 00:17:45,670 Και αυτό είναι πραγματικά ίσως περισσότερο ευανάγνωστο, θα έλεγα, από το πρόγραμμα C 362 00:17:45,670 --> 00:17:46,780 εκεί. 363 00:17:46,780 --> 00:17:49,730 Για να μην αναφέρουμε το γεγονός ότι είναι τόσο σύντομη μπορείτε να χωρέσει μια ολόκληρη ελέφαντα 364 00:17:49,730 --> 00:17:52,250 στο χώρο που έχουμε αποθηκεύσει. 365 00:17:52,250 --> 00:17:56,270 >> Ένα άλλο πράγμα, αυτό είναι μια υλοποίηση του Mario που είναι τελεία C, η οποία νομίζω ότι 366 00:17:56,270 --> 00:17:57,890 είναι η συντομότερη μπορείτε να το πάρετε. 367 00:17:57,890 --> 00:18:00,757 Δεν έχει πάρει το int, αλλά είναι δύσκολο κωδικοί η αξία των 10 368 00:18:00,757 --> 00:18:02,090 τον ίδιο τρόπο που αυτό κάνει. 369 00:18:02,090 --> 00:18:06,080 Αποδεικνύεται ότι αυτό το ένα σε ρολόγια 84 χαρακτήρες, ενώ η Python είναι 64. 370 00:18:06,080 --> 00:18:11,490 Και αυτό είναι απείρως περισσότερο αναγνώσιμη από αυτά τα σκουπίδια εδώ. 371 00:18:11,490 --> 00:18:14,610 Έτσι Python είναι πιο αποτελεσματική στο χώρο. 372 00:18:14,610 --> 00:18:17,260 Είναι ελαφρώς λιγότερο αποτελεσματική στο χρόνο, αλλά όχι από πολύ. 373 00:18:17,260 --> 00:18:18,890 >> Οι λίστες είναι ένα σημαντικό πράγμα στην Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Δεν έχουμε δει, αλλά λειτουργούν σαν πίνακες κάνουμε σε C. 376 00:18:24,587 --> 00:18:27,170 Έτσι, εδώ, μπορείτε να τα δηλώσει, μπορείτε να τα περάσουμε σε ένα πράγμα. 377 00:18:27,170 --> 00:18:29,810 Τώρα πλατείες είναι κάτοχος σειρά από αυτά τα πράγματα. 378 00:18:29,810 --> 00:18:33,480 Και πάλι, δεν έχουμε δηλωθεί ως τύπο, αλλά αν προσπαθήσετε ποτέ να το χρησιμοποιήσει, 379 00:18:33,480 --> 00:18:36,260 κάτι που θα περιμένατε να εργαστούν σε μια σειρά ακεραίων 380 00:18:36,260 --> 00:18:40,130 πρόκειται να εργαστεί σε μια σειρά ακεραίων. 381 00:18:40,130 --> 00:18:42,030 >> Αυτό είναι ένα πράγμα το οποίο απολύτως δεν μπορεί να 382 00:18:42,030 --> 00:18:47,390 κάνετε σε C, επειδή η μνήμη είναι τόσο τα χέρια πάνω, 383 00:18:47,390 --> 00:18:48,950 αλλά είναι πολύ εύκολο να κάνουμε σε Python. 384 00:18:48,950 --> 00:18:55,310 Αν θέλω σειρά μου να είναι μεγαλύτερο, μπορώ επισυνάπτει ένα στοιχείο σε αυτό και είναι μια χαρά. 385 00:18:55,310 --> 00:18:57,150 >> Τι συμβαίνει πίσω από τις σκηνές; 386 00:18:57,150 --> 00:18:59,150 Ο διερμηνέας θα πάει έξω και να πάρετε κάποια μνήμη, 387 00:18:59,150 --> 00:19:00,860 και ίσως αυτό θα πάρει ένα λίγο επιπλέον μνήμη, 388 00:19:00,860 --> 00:19:03,090 γι 'αυτό δεν έτσι δεν έχω να realloc κάθε φορά. 389 00:19:03,090 --> 00:19:04,897 Αλλά πόσο έχουν περισσότερα μνήμη χρειάζεται; 390 00:19:04,897 --> 00:19:06,730 Αυτό δεν είναι αποφάσεις ότι θα πρέπει να κάνει, 391 00:19:06,730 --> 00:19:10,540 Οι αποφάσεις αυτές οι διερμηνέα πρόκειται να κάνει. 392 00:19:10,540 --> 00:19:12,270 >> Εδώ βλέπουμε εύρος μπορεί λαμβάνει δύο επιχειρήματα, 393 00:19:12,270 --> 00:19:16,430 Αλλά είναι ακόμα πρόκειται να είναι χωρίς αποκλεισμούς από την κορυφή, έτσι προσθέτουμε 1 εκεί. 394 00:19:16,430 --> 00:19:21,970 Αυτό είναι ένα ιδίωμα, το οποίο είναι ακόμη πιο έξυπνος τρόπος για να γράψει τα πράγματα όπως αυτό. 395 00:19:21,970 --> 00:19:25,980 Λέγεται λίστα κατανόηση, και εδώ αυτό που λέμε 396 00:19:25,980 --> 00:19:32,560 Είναι Θα ήθελα να θέσει σε i τετράγωνο για κάθε τιμή του i σε αυτό το εύρος. 397 00:19:32,560 --> 00:19:35,770 Αυτό το πράγμα σχετικά με το δικαίωμα θα μπορούσε να είναι ένα άλλο συστοιχία, και αυτό το πράγμα στα αριστερά 398 00:19:35,770 --> 00:19:40,740 να είναι οποιαδήποτε συγκεκριμένη λειτουργία ότι θα λάβει i ως μεταβλητή 399 00:19:40,740 --> 00:19:42,250 και να μου δώσει κάποιες αποτέλεσμα. 400 00:19:42,250 --> 00:19:43,480 >> Τι Πάω να κάνουμε είναι, Πάω να κατασκευάσει 401 00:19:43,480 --> 00:19:46,200 μια σειρά που είναι όλα αυτά τα πράγματα για κάθε τιμή σε αυτό το εύρος. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 Και αυτό είναι εξαιρετικά κομψό, σούπερ σύντομη, και αυτό είναι πολύ σαφές τι σημαίνει. 404 00:19:55,670 --> 00:19:59,190 Αυτό είναι ένα από τα things-- αυτό είναι και πάλι, 405 00:19:59,190 --> 00:20:03,860 of-- ένα πολύ αντιπροσωπευτικό της λόγους που οι άνθρωποι όπως Python. 406 00:20:03,860 --> 00:20:05,900 Αν σας αρέσει προγραμματισμού όπως αυτό, τότε Python 407 00:20:05,900 --> 00:20:07,830 είναι μια γλώσσα που θα θέλατε να μάθετε. 408 00:20:07,830 --> 00:20:10,950 >> Και πάλι, υπάρχουν τεχνικές λόγοι για τους οποίους αυτό λειτουργεί. 409 00:20:10,950 --> 00:20:14,730 Αλλά όσο είμαστε ενδιαφερόμενο, λιγότερο ή περισσότερο δεν με νοιάζει. 410 00:20:14,730 --> 00:20:18,500 >> Έτσι, εάν θέλετε να εκτυπώσετε τις λίστες, μερικά από τα ίδια ιδιωμάτων είναι χρήσιμα. 411 00:20:18,500 --> 00:20:20,940 Για i σε αυτή την περιοχή, θα μπορούσαμε δείκτη από όλα τα πράγματα 412 00:20:20,940 --> 00:20:23,140 και στη συνέχεια να τα εκτυπώσετε όλα. 413 00:20:23,140 --> 00:20:24,650 Και θα δείτε len εδώ. 414 00:20:24,650 --> 00:20:27,150 Αν έχετε ποτέ ήθελε να πάρει το μήκος της συστοιχίας, αυτό είναι 415 00:20:27,150 --> 00:20:31,150 πολύ εύκολο στην Python, Είναι πολύ δύσκολο σε C. 416 00:20:31,150 --> 00:20:33,720 Αυτό θα εκτυπώσετε ακριβώς ό, τι θα περιμένατε να. 417 00:20:33,720 --> 00:20:36,986 Θα μπορούσαμε, επίσης, όπως έχουμε δει στο παρελθόν, επαναλάβει πάνω από τα στοιχεία του πίνακα 418 00:20:36,986 --> 00:20:39,860 άμεσα, και στη συνέχεια να μιλάμε μόνο για τους, αντί να έχουν τον δείκτη 419 00:20:39,860 --> 00:20:43,190 πίσω στην συστοιχία κάθε φορά. 420 00:20:43,190 --> 00:20:45,990 >> Και αυτό είναι ένα πράγμα που μπορείτε να κάνετε. 421 00:20:45,990 --> 00:20:49,984 Έτσι σε C, αν σας ρωτήσω για κάτι όπως αυτό, εκτύπωση θα έλεγα, 422 00:20:49,984 --> 00:20:51,150 αυτό είναι μια σειρά ακεραίων. 423 00:20:51,150 --> 00:20:53,456 Αυτό δεν είναι σίγουρα ένα string, δεν μπορώ να το εκτυπώσετε. 424 00:20:53,456 --> 00:20:54,830 Python περισσότερο ή λιγότερο, δεν με νοιάζει. 425 00:20:54,830 --> 00:20:57,496 Είναι σαν, είναι ένας τρόπος εκεί που θα μπορούσε να μετατραπεί σε αυτό σε μια σειρά; 426 00:20:57,496 --> 00:20:58,500 Ναι, θα το κάνω. 427 00:20:58,500 --> 00:21:01,600 Και γι 'αυτό θα εκτυπώσετε ακριβώς αυτό έξω. 428 00:21:01,600 --> 00:21:03,640 Αυτό σημαίνει ότι μπορείτε να κάνετε κάνετε τα πράγματα αυτά like-- 429 00:21:03,640 --> 00:21:06,530 είναι περισσότερα από τα σκληρά μέρη του παιχνιδιού των δεκαπέντε, γραπτή 430 00:21:06,530 --> 00:21:08,930 πολύ σύντομα στην Python. 431 00:21:08,930 --> 00:21:11,320 >> Θα δείτε ότι δεν υπάρχει λίγο of-- εδώ 432 00:21:11,320 --> 00:21:14,441 Έχω ρίξει έναν ακέραιο σε μια σειρά, και έχω να το κάνουμε αυτό με το χέρι. 433 00:21:14,441 --> 00:21:16,190 Και Πάω να προσθέσετε σε μια άλλη συμβολοσειρά, 434 00:21:16,190 --> 00:21:17,590 ή αλλιώς Python μπερδεύεται. 435 00:21:17,590 --> 00:21:19,840 Αλλά αν όταν είστε προσθέτοντας μια συμβολοσειρά σε ακέραιο, 436 00:21:19,840 --> 00:21:22,630 είμαι υποθέτω να πάρει ένα ακέραιο πίσω ή μια σειρά πίσω; 437 00:21:22,630 --> 00:21:24,480 Αλλά και πάλι, αν απλά καλέστε str σε ένα πράγμα, 438 00:21:24,480 --> 00:21:27,240 και θα μπορούσε σε κάθε πιθανή κόσμος να μετατραπεί σε μια σειρά, 439 00:21:27,240 --> 00:21:30,390 κατά πάσα πιθανότητα θα είναι μετατρέπεται σε μία στοιχειοσειρά. 440 00:21:30,390 --> 00:21:33,120 >> Εδώ, βλέπουμε τη χρήση του ένθετη λίστα κατανόηση 441 00:21:33,120 --> 00:21:38,690 στα αριστερά, κάποια ευρετηρίαση, η οποία είναι ακριβώς όπως θα πρέπει να χρησιμοποιούνται σε αυτό, 442 00:21:38,690 --> 00:21:40,060 καθώς και ορισμένων εκτυπώσεων έξω από τα πράγματα. 443 00:21:40,060 --> 00:21:42,560 Και πάλι, έχουμε καθορίσει κάποια λειτουργίες και θα τους καλέσει τα κάτω 444 00:21:42,560 --> 00:21:45,820 στο κύριο όταν έχουμε πραγματικά να πάρετε το αρχείο. 445 00:21:45,820 --> 00:21:52,004 επιστροφή λειτουργεί ακριβώς όπως θέλετε Αναμένουμε από την εργασία με C. Βρείτε, 446 00:21:52,004 --> 00:21:54,420 μπορούμε να δημιουργήσει τα πράγματα όπως this-- εδώ είναι η κατανόηση λίστα 447 00:21:54,420 --> 00:21:59,245 υπάρχει μια ανάθεση σε μια μεταβλητή, και μπορούμε να το κάνουμε πραγματικότητα ακόμα πιο εύκολη. 448 00:21:59,245 --> 00:22:01,870 Δεν χρειάζεται να γράψω αναζήτησης, επειδή ενσωματωμένη με τη γλώσσα 449 00:22:01,870 --> 00:22:04,230 είναι αν αυτό το πράγμα είναι σε αυτή τη σειρά. 450 00:22:04,230 --> 00:22:05,680 Επιστροφή αλήθεια, αλλιώς επιστρέφει false. 451 00:22:05,680 --> 00:22:08,830 Έτσι, αυτό είναι το σύνολο των εύρημα. 452 00:22:08,830 --> 00:22:12,230 >> Το σύνολο του είδους περιλαμβάνει την κλήση του είδους, 453 00:22:12,230 --> 00:22:15,462 η οποία is-- υπάρχουν υλοποιήσεις αυτό χτίστηκε σε ορισμένες βιβλιοθήκες C. 454 00:22:15,462 --> 00:22:17,170 Αν θέλετε αυτό το είδος της προς τα πίσω, θα 455 00:22:17,170 --> 00:22:20,450 να παρακάμψετε αυτό το προαιρετικό επιχείρημα αντίστροφη με μια αληθινή. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 Και αν θέλετε να ταξινομήσετε τα πάνω χορδές, που είναι ενσωματωμένο καθώς και. 458 00:22:27,860 --> 00:22:31,950 >> Έτσι, αυτό δεν σημαίνει ότι αυτά είναι πράγματα που πρέπει να κάνουμε κάθε μέρα, 459 00:22:31,950 --> 00:22:34,280 αλλά η ιδέα είναι ότι αυτό είναι η φιλοσοφία της Python, 460 00:22:34,280 --> 00:22:37,530 ότι όλα αυτά τα πράγματα τα οποία θέλετε είδος θέλουν να κάνουν είναι built-in. 461 00:22:37,530 --> 00:22:42,410 Και το πιο τυπικές λειτουργίες, τόσο το είδος, το μήκος, ό, 462 00:22:42,410 --> 00:22:44,380 υποστηρίξει πιο λογικά λογική είσοδο. 463 00:22:44,380 --> 00:22:49,020 Μπορείτε κλήση len σε μια σειρά το ίδιο τρόπο που θα πραγματοποιήσετε len σε μια σειρά. 464 00:22:49,020 --> 00:22:55,785 Μπορείτε να ταξινομήσετε multiply-- χορδές με τον ίδιο τρόπο μπορείτε να ταξινομήσετε πίνακες. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Οι περισσότερες βασικές λειτουργίες, ότι θέλουν να δημιουργήσουν, 467 00:23:00,740 --> 00:23:03,000 και τα περισσότερα από τρίτους βιβλιοθήκες που οι άνθρωποι 468 00:23:03,000 --> 00:23:06,980 την κατασκευή, επειδή είναι μίμηση ο σχεδιασμός της πρότυπης βιβλιοθήκης, 469 00:23:06,980 --> 00:23:10,190 μπορούν να κληθούν όλα όσα είστε όπως, για ποιο λόγο δεν λειτουργήσει αυτό ακριβώς, 470 00:23:10,190 --> 00:23:12,800 σε C. Περισσότερο ή λιγότερο, θα λειτουργήσει στην Python 471 00:23:12,800 --> 00:23:15,930 επειδή οι άνθρωποι εργάζονται πίσω από το σχήμα τι είναι ένα πράγμα και στη συνέχεια να λειτουργήσει 472 00:23:15,930 --> 00:23:17,510 κατάλληλα για αυτό. 473 00:23:17,510 --> 00:23:22,760 Έτσι και πάλι, τεχνικό υπόβαθρο, αλλά το κάνει τη ζωή μας πιο εύκολη και προγραμματιστές. 474 00:23:22,760 --> 00:23:26,820 >> Τόσο εδώ είναι το αρχείο I / O. I / O αρχείο έχει πολλά μικρά πράγματα που κάνουν την περίπλοκη, 475 00:23:26,820 --> 00:23:29,890 και έτσι υπάρχουν πόροι σε απευθείας σύνδεση, αλλά με λίγα λόγια, 476 00:23:29,890 --> 00:23:33,010 Σας καλούν ανοικτή σε ένα αρχείο το όνομα με έναν συγκεκριμένο τύπο. 477 00:23:33,010 --> 00:23:37,640 Έτσι ώστε να είναι διαβάσει, διαβάστε και γράφουν, γράφουν ή επισυνάψει. 478 00:23:37,640 --> 00:23:41,790 Μπορείτε να διαβάσετε ένα συγκεκριμένο αριθμό χαρακτήρες και να εκτυπώνετε εκείνους, 479 00:23:41,790 --> 00:23:42,595 θα πάρετε Γεια σας! 480 00:23:42,595 --> 00:23:43,970 Θέλω να πω, όπως και το αρχείο αυτό είχε Γεια σας! 481 00:23:43,970 --> 00:23:46,480 Σε αυτό, καλέστε για να διαβάσετε, και τι θα πάρετε πίσω 482 00:23:46,480 --> 00:23:49,520 είναι μια σειρά που έχει όλα του υπόλοιπου της συστοιχίας, 483 00:23:49,520 --> 00:23:50,860 ή το σύνολο του υπόλοιπου αρχείου. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Αν καλέσετε διαβάσετε ξανά, είστε στο τέλος του αρχείου, 486 00:23:56,055 --> 00:23:58,138 και έτσι δεν παίρνετε τίποτα και έτσι θα κλείσει. 487 00:23:58,138 --> 00:24:02,510 Και πάλι, αυτό είναι .close παρά Κλείσιμο αρχείου, όπως θα ήταν σε C. 488 00:24:02,510 --> 00:24:07,190 Αυτό είναι περισσότερο ή λιγότερο επειδή f είναι μια πράγμα, και θα θέλατε για f για να κλείσει. 489 00:24:07,190 --> 00:24:12,092 Αλλά η βασική αρχείο I / O δεν είναι ιδιαίτερα περίπλοκη. 490 00:24:12,092 --> 00:24:15,300 Και πάλι, αν θέλετε να ανοίξετε ένα αρχείο, εάν θέλετε να διαβάσετε μια συγκεκριμένη γραμμή, 491 00:24:15,300 --> 00:24:17,870 μπορείτε να πάρετε από ειδικούς line-- υπάρχει ενσωματωμένο ins για αυτό. 492 00:24:17,870 --> 00:24:19,995 Αν θέλετε να γράψετε ένα πράγμα, μπορείτε να γράψετε αυτό. 493 00:24:19,995 --> 00:24:23,412 Αν θέλετε να γράψετε των ατομικών τσιμπήματα, μπορείτε να γράψετε εκείνους. 494 00:24:23,412 --> 00:24:25,620 Και αν θέλετε να μετακινηθείτε πάνω από τις γραμμές ενός αρχείου 495 00:24:25,620 --> 00:24:29,557 ατομικά, όπως κάναμε σε ένα κομμάτι από Πριν από λίγες εβδομάδες, μπορείτε να το κάνετε αυτό για να. 496 00:24:29,557 --> 00:24:32,140 Και πάλι, τα περισσότερα αντικείμενα που θέλετε ήθελε να είναι σε θέση να επαναλάβει πάνω 497 00:24:32,140 --> 00:24:33,780 υποστήριξη διάσχιση των στοιχείων τους. 498 00:24:33,780 --> 00:24:37,430 Σε Pythons, ένα αρχείο είναι ίσως ένα πράγμα που Θα ήθελα να επαναλάβει πάνω γραμμή προς γραμμή. 499 00:24:37,430 --> 00:24:39,138 Αν ήταν ένα λεξικό των λέξεων και ήμουν 500 00:24:39,138 --> 00:24:42,181 προσπαθεί να πάρει εκείνα τα επιμέρους λόγια έξω, τότε, μέσα σε αυτό το βρόχο, 501 00:24:42,181 --> 00:24:44,180 γραμμή πρόκειται να είναι κάθε λέξη με τη σειρά του και αυτό 502 00:24:44,180 --> 00:24:47,880 πρόκειται να εκτελεστεί για κάθε γραμμή στο αρχείο μέχρι το τέλος του αρχείου. 503 00:24:47,880 --> 00:24:52,280 Και πάλι, αν εκτυπώνεται κάθε γραμμή, οι γραμμές έρχονται με νέες γραμμές, 504 00:24:52,280 --> 00:24:54,740 έτσι είμαι καθορισμό της τελικής πίσω σε ένα πράγμα σαν αυτό. 505 00:24:54,740 --> 00:24:56,580 Στη συνέχεια, θα έπαιρνα τα περιεχόμενα του αρχείου μου. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> Το δεύτερο πράγμα που λειτουργεί σε μερικοί τρόποι, όπως καταλόγους, και κατά κάποιο τρόπο 508 00:25:07,480 --> 00:25:11,870 σαν κάτι ουσιαστικά πιο ισχυρό, 509 00:25:11,870 --> 00:25:16,170 είναι λεξικά, τα οποία είναι πραγματικά δροσερό στη χρήση, αλλά είναι βασικά hash 510 00:25:16,170 --> 00:25:17,670 πίνακες στη μεταμφίεση. 511 00:25:17,670 --> 00:25:23,330 Μπορείτε να δημιουργήσετε έναν χρησιμοποιώντας ακριβώς δύο χαρακτήρες, το οποίο είναι φοβερό 512 00:25:23,330 --> 00:25:25,959 αν προσπάθησε να εφαρμόσει η hash πίνακα για σύνολο το πρόβλημά σας, 513 00:25:25,959 --> 00:25:27,250 Ξέρετε πολύ πόνο που μπορεί να είναι. 514 00:25:27,250 --> 00:25:29,390 Αλλά οι άνθρωποι έχουν κάνει αυτό, και το κάνει τόσο καλά, 515 00:25:29,390 --> 00:25:32,260 ότι δεν χρειάζεται να ανησυχείτε για αυτό πια. 516 00:25:32,260 --> 00:25:35,180 >> Στη συνέχεια, μπορείτε να εισάγετε τα επιμέρους πράγματα. 517 00:25:35,180 --> 00:25:38,110 Hash tables-- ή λεξικά Δεν κάνει ιδιαίτερα 518 00:25:38,110 --> 00:25:40,240 νοιάζει τι είστε αποθήκευση σε αυτά. 519 00:25:40,240 --> 00:25:44,210 Έτσι, εάν ορισμένες καταχωρήσεις είναι αριθμοί, και ορισμένες καταχωρήσεις είναι λίστες, 520 00:25:44,210 --> 00:25:47,360 εάν ορισμένες καταχωρήσεις είναι άλλα λεξικά, και ορισμένες καταχωρήσεις είναι χορδές, 521 00:25:47,360 --> 00:25:49,930 Python δεν κάνει πολύ φροντίδα. 522 00:25:49,930 --> 00:25:53,460 >> Και πάλι, αν πάτε σε αυτό περιμένουμε μια σειρά και τι μπορείτε να πάρετε πίσω 523 00:25:53,460 --> 00:25:56,269 είναι ένας πίνακας, αυτό είναι το πρόβλημά σας. 524 00:25:56,269 --> 00:25:58,810 Και ίσως αυτό είναι το ελάττωμά του όποιος Νόμιζα ότι ήταν να βάλουμε τα πράγματα 525 00:25:58,810 --> 00:26:00,476 στο λεξικό, ίσως αυτό ήταν που. 526 00:26:00,476 --> 00:26:02,350 Αν αυτό ήταν κάποιος άλλο, ελπίζω να ήταν 527 00:26:02,350 --> 00:26:04,520 συμπεριφέρθηκε καλά για το τι πήγαινε στο λεξικό 528 00:26:04,520 --> 00:26:07,420 και δεν άφησε κανένα παγίδες για να πέσουμε. 529 00:26:07,420 --> 00:26:10,890 >> Όμως, οι λειτουργίες να σας δώσει πίσω συμπεριφέρθηκε καλά πράγματα. 530 00:26:10,890 --> 00:26:13,500 Έτσι λένε αυτό επιστρέφει υποστηρίξει ένα λεξικό των χορδών, 531 00:26:13,500 --> 00:26:15,860 τότε όλα θα πάμε για να βγούμε από το είναι μια συμβολοσειρά. 532 00:26:15,860 --> 00:26:20,710 Αν κάνετε κάποια από αυτό και ταξίδια You Up, επίσης, ότι θα μπορούσε να είναι για σας. 533 00:26:20,710 --> 00:26:25,542 Python σας δίνει σίγουρα αρκετά σχοινί για να κρεμάσει τον εαυτό σας, αν θέλετε. 534 00:26:25,542 --> 00:26:28,250 Τώρα μπορούμε να εκτυπώσετε μεμονωμένες στοιχεία αυτό και αυτό επιστρέφει 535 00:26:28,250 --> 00:26:29,935 ακριβώς αυτό που θα περίμενε κανείς. 536 00:26:29,935 --> 00:26:32,810 Ακριβώς ό, τι θα περίμενε κανείς, υποθέτω, Είναι μια φράση που είμαι με τη χρήση πολύ, 537 00:26:32,810 --> 00:26:35,070 αλλά αυτό είναι περισσότερο ή Κάπως έτσι λειτουργεί η Python. 538 00:26:35,070 --> 00:26:39,880 Αν σας ρωτήσω για ένα πράγμα το οποίο δεν είναι αυτό, η Python θα ρίξει ένα λάθος 539 00:26:39,880 --> 00:26:43,194 και θα σας να βγείτε από το πρόγραμμα που θα ήταν. 540 00:26:43,194 --> 00:26:45,360 Θα πραγματικά να εκτυπώσετε περισσότερες πληροφορίες από ότι, 541 00:26:45,360 --> 00:26:49,110 αυτό θα επισημάνω you-- αυτό θα προσθέστε μια γραμμή, και έτσι. 542 00:26:49,110 --> 00:26:52,190 >> Και, πάλι, ίσως θέλουμε για να μετακινηθείτε πάνω λεξικά 543 00:26:52,190 --> 00:26:54,410 και να βρείτε όλα τα πράγματα σε αυτό. 544 00:26:54,410 --> 00:26:57,440 Εδώ έχουμε επανάληψη πάνω δύο πράγματα ταυτόχρονα. 545 00:26:57,440 --> 00:27:03,040 Και έτσι θα το κάνουμε με ένα κλειδί, τιμή, αλλά στη συνέχεια να εκτυπώσετε από όλα αυτά. 546 00:27:03,040 --> 00:27:06,300 >> Και αν θέλαμε να cast-- Εάν βρισκόμαστε πραγματικά αυτό, 547 00:27:06,300 --> 00:27:10,840 θα είχαμε κάποια προβλήματα επειδή on-- όταν πήγαμε με τον David, 548 00:27:10,840 --> 00:27:13,920 δεν θα μπορούσε να add-- αν δεν το κάναμε πέταξε σε μια σειρά πρώτη, 549 00:27:13,920 --> 00:27:17,802 δεν θα μπορούσαμε να προσθέσουμε ότι η συστοιχία της χορδές σε μια σειρά. 550 00:27:17,802 --> 00:27:19,760 Αλλά αν το ρίχνει σε ένα string, θα έχουμε κάτι 551 00:27:19,760 --> 00:27:22,590 όπως αυτό, το οποίο είναι ίσως ό, τι θα θέλαμε να διαβάσετε. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> Και αυτό είναι ορθογράφος. 554 00:27:30,500 --> 00:27:32,460 Εμείς απλά διαβάζονται τα πράγματα. 555 00:27:32,460 --> 00:27:35,770 Έτσι, μπορούμε να διαβάσουμε στο μεμονωμένες λέξεις όπως γραμμές. 556 00:27:35,770 --> 00:27:38,240 Θα κόψουν το τελευταίο πράγμα, έτσι παχέος εντέρου μείον 1 557 00:27:38,240 --> 00:27:41,651 κατεβάζει από το τελευταίο πράγμα που we-- ο τελευταίος χαρακτήρας μιας συμβολοσειράς. 558 00:27:41,651 --> 00:27:42,150 Θα πω. 559 00:27:42,150 --> 00:27:44,730 Εντάξει, κάθε ένας από αυτούς παίρνει εισάγεται σε αυτό το λεξικό, 560 00:27:44,730 --> 00:27:45,810 χαρτογράφηση σε μία τιμή 1. 561 00:27:45,810 --> 00:27:48,006 Δεν Κάνουμε ιδιαίτερα ενδιαφέρονται για εκείνο το ένα, 562 00:27:48,006 --> 00:27:51,130 αλλά είναι εκεί μόνο για να πει, OH καλά, αυτό το πράγμα θα βάλω στο λεξικό. 563 00:27:51,130 --> 00:27:53,182 Επειδή αργότερα τι είμαστε πρόκειται να κάνουμε είναι να είμαστε 564 00:27:53,182 --> 00:27:55,390 Θα πείτε, καλά, αν είναι στο λεξικό καθόλου. 565 00:27:55,390 --> 00:27:57,650 >> Και πάλι, αυτός ο έλεγχος για των μελών είναι μέχρι λειτουργίας 566 00:27:57,650 --> 00:28:00,940 χρησιμοποιώντας ένα τελείως διαφορετικό αλγόριθμο από ό, τι θα σε μια λίστα, 567 00:28:00,940 --> 00:28:05,709 αλλά καλούμε τον ίδιο τρόπο, η οποία είναι μερικές από εκείνη την επικάλυψη ζάχαρης Python 568 00:28:05,709 --> 00:28:07,250 τα πράγματα, ώστε να είναι πιο εύκολο στη χρήση. 569 00:28:07,250 --> 00:28:10,230 Και πάλι, έχουμε δει τα πράγματα όπως αυτό πριν. 570 00:28:10,230 --> 00:28:12,940 Αυτό είναι βασικά βρει, ή Είναι ακριβώς η ίδια σύνταξη 571 00:28:12,940 --> 00:28:16,480 ως βρει, αλλά λειτουργεί πάνω από ένα εντελώς διαφορετική δομή. 572 00:28:16,480 --> 00:28:20,170 Και δεν με νοιάζει ιδιαίτερα. 573 00:28:20,170 --> 00:28:25,540 Έτσι, αυτά είναι τα πράγματα που σας κλήθηκαν να εφαρμόσουν για ορθογράφος. 574 00:28:25,540 --> 00:28:29,278 Με αυτό το ρυθμό, θα πάμε για να πάρει περισσότερο ή λιγότερο όλες τις psets γίνει. 575 00:28:29,278 --> 00:28:31,474 >> Κοινό: Έτσι ώστε βασικά ακριβώς έρχεται πίσω 576 00:28:31,474 --> 00:28:34,852 όπως σωστά γραμμένη αν δεν το κάνει ταιριάζουν με κάτι στο λεξικό; 577 00:28:34,852 --> 00:28:36,060 ROSS RHEINGANS-YOO: Ναι, ναι. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 Και έτσι, αυτό είναι ένα προσαρμογή ενός προβλήματος που 580 00:28:40,880 --> 00:28:43,150 το οποίο σας ζητά να κάνετε ακριβώς αυτό. 581 00:28:43,150 --> 00:28:46,357 >> Κοινό: Γιατί είναι η γραμμή μείον 1 εκεί; 582 00:28:46,357 --> 00:28:48,190 ROSS RHEINGANS-YOO: Λοιπόν όταν είστε επανάληψη 583 00:28:48,190 --> 00:28:50,300 πάνω από ένα αρχείο ζητώντας με γραμμές, οι γραμμές 584 00:28:50,300 --> 00:28:53,900 έρχονται με ένα νέο χαρακτήρα γραμμής στο τέλος του it-- ο μείον 1 585 00:28:53,900 --> 00:28:55,260 Είναι ακριβώς για να ψωνίσετε εκείνους off. 586 00:28:55,260 --> 00:28:59,549 Και αυτό είναι ένα ιδιαίτερα ευέλικτο τρόπος ευρετηρίαση σε πράγματα. 587 00:28:59,549 --> 00:29:01,590 Έτσι, εάν έχετε ένα string, και θα θέλατε, αλλά είμαι 588 00:29:01,590 --> 00:29:05,340 πρόκειται να ξεκινήσει σε τρεις χαρακτήρα και Πάω να πάει μέχρι το τέλος. 589 00:29:05,340 --> 00:29:07,140 3 του παχέος εντέρου θα το κάνει αυτό για σας. 590 00:29:07,140 --> 00:29:10,570 Εάν είστε όπως, θέλω να ξεκινήσω με το αρχίζουν και να πάει στο τελευταίο μείον 1 591 00:29:10,570 --> 00:29:12,400 χαρακτήρα, του παχέος εντέρου μείον 1. 592 00:29:12,400 --> 00:29:14,940 Και αν ήθελε να πάει από η τρίτη στο μείον κατ 'αρχάς, 593 00:29:14,940 --> 00:29:16,570 τότε θα έλεγα ότι 3 μείον 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> Επιπλέον, αν θέλετε να αναπροσαρμόσετε σε πράγματα αρχής γενομένης από το πίσω μέρος, 596 00:29:22,400 --> 00:29:24,470 απλά δείκτη με αριθμούς μείον. 597 00:29:24,470 --> 00:29:26,980 Και επειδή, όπου C θα εκραγεί ή ίσως 598 00:29:26,980 --> 00:29:31,090 ταΐζετε άλλη μνήμη δεν είχατε πρόσβαση σε ακούω να μπορούμε να πούμε μείον 1 599 00:29:31,090 --> 00:29:34,104 είναι το τελευταίο, αλλά 1 χαρακτήρα της συμβολοσειράς. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Οι ενότητες είναι οι version-- αναλόγων προς τις βιβλιοθήκες σε C 602 00:29:43,590 --> 00:29:45,119 και είναι χρήσιμες για πολλά πράγματα. 603 00:29:45,119 --> 00:29:46,910 Πολλά από τα πράγματα που θα ήθελα να κάνω σε Python, 604 00:29:46,910 --> 00:29:50,040 Εκτός από την απλή χειρισμός των μεταβλητών, 605 00:29:50,040 --> 00:29:52,290 Εάν θέλετε να συνδέσετε σε η μεγαλύτερων βιβλιοθηκών με τα μεγαλύτερα 606 00:29:52,290 --> 00:29:55,910 διεπαφές και περισσότερα δυνατότητες για την αλληλεπίδραση 607 00:29:55,910 --> 00:29:57,195 με άλλα μέρη του κόσμου. 608 00:29:57,195 --> 00:29:58,910 sys είναι ένας από εκείνους με μια δέσμη εργαλείων 609 00:29:58,910 --> 00:30:01,159 που είναι χρήσιμα για την αλληλεπίδραση με το ίδιο το σύστημα 610 00:30:01,159 --> 00:30:05,050 και θα το εισαγάγει, όπως sys εισαγωγής. 611 00:30:05,050 --> 00:30:07,820 >> Υπάρχει περισσότερη τεκμηρίωση από αυτό, το οποίο θα μπορούσε να πάει εδώ, 612 00:30:07,820 --> 00:30:11,490 ή θα μπορούσατε να βρείτε στο Google από googling Python sys. 613 00:30:11,490 --> 00:30:12,640 Εσείς γράφετε εισάγετε. 614 00:30:12,640 --> 00:30:15,140 Ο πρώτος σύνδεσμος θα είναι η τεκμηρίωση στην Python 2, 615 00:30:15,140 --> 00:30:19,260 ο δεύτερος σύνδεσμος πρόκειται να είναι η Python τεκμηρίωση 3. 616 00:30:19,260 --> 00:30:24,830 >> Και αν γράψαμε ένα αρχείο που φαινόταν όπως this-- Εάν ειδικότερα, είμαστε 617 00:30:24,830 --> 00:30:27,910 κοιτάζοντας λειτουργούν σε επιχειρήματα της γραμμής εντολών, 618 00:30:27,910 --> 00:30:30,040 όπως μάθαμε να κάνουμε πολύ από νωρίς σε αυτή την κατηγορία. 619 00:30:30,040 --> 00:30:32,190 Αυτό δεν είναι δύσκολο. Μπορείτε να πάρετε έξω argv, 620 00:30:32,190 --> 00:30:34,565 το οποίο είναι ένα από εκείνα τα πράγματα το οποίο υλοποιείται από το sys. 621 00:30:34,565 --> 00:30:37,210 Δεν είναι ενσωματωμένη στην βάση το πακέτο, αλλά και πάλι, 622 00:30:37,210 --> 00:30:40,080 μπορεί να παρατείνει κατά την εισαγωγή ότι η λειτουργία από το sys. 623 00:30:40,080 --> 00:30:41,090 Θα το ονομάσουμε sys. 624 00:30:41,090 --> 00:30:42,611 οτιδήποτε. 625 00:30:42,611 --> 00:30:43,360 Εδώ υπάρχει argv. 626 00:30:43,360 --> 00:30:45,193 Είναι στην πραγματικότητα δεν υπάρχει argc στο sys, γιατί 627 00:30:45,193 --> 00:30:47,880 μπορεί να το πάρει τόσο εύκολα με την κλήση len. 628 00:30:47,880 --> 00:30:55,390 Στη συνέχεια εκτυπώνεται ότι έξω, τότε θα έτρεξε στο τερματικό echo-args.py μας. 629 00:30:55,390 --> 00:30:58,360 Έχουμε πάρει πίσω μια σειρά, η οποία Είναι αυτό το πρώτο επιχείρημα. 630 00:30:58,360 --> 00:31:02,240 Και πάλι, αυτό είναι argv 0, η οποία είναι η το όνομα του πράγματος που λέγεται πήρε. 631 00:31:02,240 --> 00:31:04,870 Αν λέγαμε εμείς με πρόσθετες επιχειρήματα, είχαμε πάρει το πίσω μέρος τους. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Αυτός είναι ένας τρόπος για να πάρει επιχειρήματα της γραμμής εντολών. 634 00:31:09,770 --> 00:31:13,440 Αν θέλετε σημαίες όπου στρίβετε συγκεκριμένα πράγματα ή παράκαμψη 635 00:31:13,440 --> 00:31:16,050 μια συγκεκριμένη προεπιλογή, argparse είναι φίλος σου. 636 00:31:16,050 --> 00:31:21,550 Και πάλι μπορείτε να βρείτε αυτή την online σε python argparse στο Google. 637 00:31:21,550 --> 00:31:24,300 >> Υπάρχουν μια-δυο χρησιμότητας ενότητες που θα βρείτε τον εαυτό σας χρησιμοποιώντας 638 00:31:24,300 --> 00:31:27,630 και πάλι, αν δαπανούν κάθε χρόνο αυτής της γλώσσας εισαγωγής jsons 639 00:31:27,630 --> 00:31:33,300 για την ανάγνωση μέσα και έξω από json αρχεία, δεν είναι ότι περίπλοκη. 640 00:31:33,300 --> 00:31:37,139 Μπορείτε να ανοίξει ένα αρχείο, σας κάλεσε json.load σε αυτό το αρχείο και μπορείτε να πάρετε πίσω ένα πράγμα. 641 00:31:37,139 --> 00:31:37,930 Τι είναι αυτό το πράγμα; 642 00:31:37,930 --> 00:31:40,329 Είναι ένα αντικείμενο JSON. 643 00:31:40,329 --> 00:31:42,370 Σε περίπτωση που η JSON έχει σειρά, η Python έχει συστοιχίες. 644 00:31:42,370 --> 00:31:44,420 Σε περίπτωση που έχει JSON συνειρμική συστοιχίες, της Python 645 00:31:44,420 --> 00:31:48,810 λεξικά, χορδές, και τους αριθμούς, και ούτω καθεξής. 646 00:31:48,810 --> 00:31:53,560 Θέλετε να απορρίπτουν ότι έξω, ανοίξει ένα νέο αρχείο, μπορείτε να καλέσετε χωματερή, 647 00:31:53,560 --> 00:31:57,590 και τα φορτία και να χωματερές πηγαίνετε μέσα και έξω από χορδές. 648 00:31:57,590 --> 00:32:02,120 >> Ομοίως, τουρσί φώναξαν σε βασικά το ίδιο interface. 649 00:32:02,120 --> 00:32:04,740 Είναι ελαφρώς πιο χρήσιμο αν είστε ντάμπινγκ Python αντικείμενα. 650 00:32:04,740 --> 00:32:08,370 Έτσι, αν έχετε ποτέ ήθελε να σώσει μια έκδοση της τρέχουσας κατάστασης 651 00:32:08,370 --> 00:32:11,930 μιας μεταβλητής για μια μελλοντική εκτελέστε το πρόγραμμα σας, 652 00:32:11,930 --> 00:32:14,740 τουρσί είναι της Python βιβλιοθήκη για να γίνει αυτό. 653 00:32:14,740 --> 00:32:19,140 >> Αν έχετε οποιοδήποτε είδος του μεταβλητή που μπορεί να αναγράφεται 654 00:32:19,140 --> 00:32:21,990 σε σαν λέξεις και τους χαρακτήρες και bytes-- όπως αυτό το λεξικό, 655 00:32:21,990 --> 00:32:24,230 θα μπορούσαμε να γράψουμε κάτω, θα μπορούσε να το γράψετε ως 656 00:32:24,230 --> 00:32:26,670 σαν ένα αντικείμενο JSON, το οποίο ήταν κυριολεκτικά αυτοί οι χαρακτήρες. 657 00:32:26,670 --> 00:32:29,420 Και τότε θα ήταν πολύ εύκολο για έναν άνθρωπο να το ανοίξετε up-- ανοίξει 658 00:32:29,420 --> 00:32:30,889 και να το διαβάσετε. 659 00:32:30,889 --> 00:32:33,180 Αν δεν το κάναμε ιδιαίτερα νοιάζονται για τους ανθρώπους την ανάγνωση, 660 00:32:33,180 --> 00:32:38,490 θα μπορούσαμε να συσκευάζουν ακόμη πιο αποτελεσματικά σε μορφές που θα μπορούσε αργότερα να αποσυμπιεστούν 661 00:32:38,490 --> 00:32:42,860 ή ότι θα μπορούσαν αργότερα να διογκωθεί. 662 00:32:42,860 --> 00:32:46,740 Και αυτό εξοικονομεί 80% της χώρο που θα μπορούσε αντικείμενα σας 663 00:32:46,740 --> 00:32:49,390 πάρετε αν τα έγραψε έξω χειρόγραφος. 664 00:32:49,390 --> 00:32:52,384 >> Μπορείτε να καλέσετε τουρσί πολύ το ίδιο τρόπο-- χωματερή, το φορτίο, 665 00:32:52,384 --> 00:32:53,800 και, στη συνέχεια, μπορείτε να πάρετε τα πράγματα σας πίσω. 666 00:32:53,800 --> 00:32:56,880 Έτσι, αν είστε πολύ γράψιμο σύντομα προγράμματα Python που 667 00:32:56,880 --> 00:32:59,952 θέλετε να αποθηκεύσετε κατάσταση, και στη συνέχεια διαβάστε τους πίσω αργότερα, τα πράγματα όπως αυτό 668 00:32:59,952 --> 00:33:00,660 είναι οι φίλοι σου. 669 00:33:00,660 --> 00:33:02,640 Αυτό θα μπορούσε πολύ χωματερή τους εύκολα και JSON. 670 00:33:02,640 --> 00:33:04,550 Τα περισσότερα αντικείμενα Python μπορεί να πετάξει έξω το JSON 671 00:33:04,550 --> 00:33:11,310 εάν υπάρχει οποιαδήποτε ελπίδα ότι δομικά θα μπορούσαν να εκπροσωπούνται με αυτόν τον τρόπο. 672 00:33:11,310 --> 00:33:14,410 >> Αυτά είναι μόνο η κορυφή του παγόβουνου σχετικά με τις ενότητες που είναι χρήσιμα. 673 00:33:14,410 --> 00:33:19,510 Έτσι SYS, os, πολυεπεξεργασία, είναι το είδος των βασικών workhorses για τα πράγματα 674 00:33:19,510 --> 00:33:23,120 θα πρέπει να αλληλεπιδρούν με το λειτουργικό σύστημα σύστημα αρχείων., 675 00:33:23,120 --> 00:33:28,764 όπως os.isfile, os.isdirectory, os.makefile, αυτοί είναι φίλοι σας. 676 00:33:28,764 --> 00:33:30,930 Αν θέλετε να αλληλεπιδράσετε με έναν συγκεκριμένο τύπο αρχείου, 677 00:33:30,930 --> 00:33:32,190 JSON, τουρσί, CSV. 678 00:33:32,190 --> 00:33:37,160 Αν θέλετε να αλληλεπιδράσετε με το web σελίδες, η urllib για να πάρει http 679 00:33:37,160 --> 00:33:41,370 σελίδες. bs4-- BeautifulSoup-- είναι ένα θαυμάσιο πρόγραμμα ανάλυσης για html. 680 00:33:41,370 --> 00:33:47,047 Θα τρέξει σε έναν html και σας πάρετε αυτό το ένθετη αντικείμενο πίνακα τώρα, 681 00:33:47,047 --> 00:33:49,630 το οποίο μπορείτε να διασχίζουν πάνω Lookin, όπως με απλά ψάχνουν για 682 00:33:49,630 --> 00:33:52,380 αν είναι, σε, το οποίο είναι φανταστικό. 683 00:33:52,380 --> 00:33:55,920 >> Υπάρχει μια δέσμη των πακέτα για running-- 684 00:33:55,920 --> 00:33:57,960 για να κάνει ιδιαίτερα πράγματα Mathy. 685 00:33:57,960 --> 00:34:01,790 Έτσι, αν θέλουμε να πολλαπλασιάσουμε, αντιστρέψετε, να μετατρέψει μήτρες, 686 00:34:01,790 --> 00:34:05,690 NumPy χρησιμοποιείται από τους ανθρώπους όλων όλο τον κόσμο για αυτό. 687 00:34:05,690 --> 00:34:09,620 SciPy είναι ακόμα πιο χρήσιμη εργαλεία προς αυτή την κατεύθυνση. 688 00:34:09,620 --> 00:34:13,980 sklearn-- μηχανική μάθηση, επεξεργασία φυσικής γλώσσας, 689 00:34:13,980 --> 00:34:17,880 σούπερ χρήσιμα πράγματα, αποκτά υλοποιηθεί σε Python όλη την ώρα. 690 00:34:17,880 --> 00:34:21,469 >> Και πάλι, παίρνει ελαφρώς πλέον να write-- συγγνώμη, 691 00:34:21,469 --> 00:34:26,199 χρειάζεται λίγο περισσότερο χρόνο για να τρέξει, αλλά ο λόγος ότι η πραγματική μηχανικοί έχουν την τάση 692 00:34:26,199 --> 00:34:29,900 χρησιμοποιήσετε την Python είναι γιατί έχετε την τάση να είναι μπλοκάρει σου γράφω τον κώδικα, όχι 693 00:34:29,900 --> 00:34:32,699 από τον υπολογιστή σας να λειτουργεί τον κωδικό. 694 00:34:32,699 --> 00:34:35,860 Έτσι, αν θέλει κάποιος να γράψει ένα πρόγραμμα, το οποίο πολλοί άλλοι άνθρωποι 695 00:34:35,860 --> 00:34:37,699 πρόκειται να χρησιμοποιήσετε για πάντα, όπως το Linux, σας 696 00:34:37,699 --> 00:34:41,900 θα μπορούσε να το γράψει στο C. Αν ήσασταν πρόκειται να γράψω μια μηχανή υπολογισμού, 697 00:34:41,900 --> 00:34:46,124 μπορείτε να γράψετε στην Python, αν χρειάζεται να αλλάζει κάθε δυο μήνες. 698 00:34:46,124 --> 00:34:48,540 Μερικοί άνθρωποι θα το γράψει σε C επειδή είναι έτσι. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Έτσι έχουμε δει sys εισαγωγής ως έναν τρόπο να πάρει τα πράγματα 701 00:34:54,050 --> 00:34:57,070 να πάρει μονάδα στο πρόγραμμά σας. 702 00:34:57,070 --> 00:35:00,370 Μπορείτε επίσης να εισάγετε ως ένα ψευδώνυμο, αν θέλετε. 703 00:35:00,370 --> 00:35:03,660 Πάλι πολυεπεξεργασία είναι ένας πόνος για να πληκτρολογήστε έξω κάθε φορά, έτσι όπως την εισαγωγή MP 704 00:35:03,660 --> 00:35:05,900 και, στη συνέχεια, ανά πάσα στιγμή να χρησιμοποιήσετε στο πρόγραμμα, 705 00:35:05,900 --> 00:35:09,732 θα πείτε mp.process, ή ό, τι έχετε. 706 00:35:09,732 --> 00:35:12,670 Αν θέλετε εισαγωγή μόνο ένα πράγμα, 707 00:35:12,670 --> 00:35:19,450 έτσι urllib έχει ένα πράγμα που ονομάζεται αίτημα, οπότε μπορείτε απλά να εισάγετε αυτό. 708 00:35:19,450 --> 00:35:22,610 Αργότερα, δεν θα το επικαλεστούν ως urllib.request, αλλά μόνο ως αίτημα 709 00:35:22,610 --> 00:35:24,590 από μόνο του. 710 00:35:24,590 --> 00:35:30,110 >> Και μπορείτε να εισαγάγετε τα πάντα από μια μονάδα, αν θέλετε. 711 00:35:30,110 --> 00:35:34,820 Αυτό δεν είναι μερικές φορές μια καλή idea-- Αυτό συνήθως δεν είναι καλή ιδέα, στην πραγματικότητα. 712 00:35:34,820 --> 00:35:39,080 Επειδή σας very-- γιατί αν κάτι στην ενότητα αυτή έχει ένα όνομα που 713 00:35:39,080 --> 00:35:41,640 ήθελε να χρησιμοποιήσει κάπου αλλού στο πρόγραμμά σας, δεν μπορείτε. 714 00:35:41,640 --> 00:35:44,127 >> Και δεν είναι πάντα προφανές ότι αυτή είναι η περίπτωση. 715 00:35:44,127 --> 00:35:46,460 Για να βεβαιωθείτε ότι τι κάνατε ήταν ασφαλές, 716 00:35:46,460 --> 00:35:47,920 θα πρέπει να ανοίξει η μονάδα και δείτε όλες 717 00:35:47,920 --> 00:35:50,295 από τα ονόματα που καταλήγουν σε there-- όλες τις λειτουργίες, 718 00:35:50,295 --> 00:35:53,010 όλες τις μεταβλητές ότι ζούμε σε αυτή την ενότητα, 719 00:35:53,010 --> 00:35:57,040 επειδή φέρνετε όλα τους σε τοπικό namespace σας. 720 00:35:57,040 --> 00:35:58,680 >> Έτσι οι άνθρωποι το κάνουν αυτό. 721 00:35:58,680 --> 00:36:01,322 Είναι γενικά συνιστάται ότι δεν το κάνετε αυτό. 722 00:36:01,322 --> 00:36:03,280 Αλλά οι άνθρωποι κάνουν αυτό όλοι ο χρόνος επειδή είναι 723 00:36:03,280 --> 00:36:05,180 τεμπέλης και δεν θέλουν να πληκτρολογήσετε mp. 724 00:36:05,180 --> 00:36:06,310 τίποτα, ποτέ. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Όλη αυτή η συζήτηση για modules φέρτε μου γύρω από μια σύντομη ομιλία 727 00:36:13,310 --> 00:36:15,930 για το πώς θα σχεδιάσουμε προγράμματα σε Python. 728 00:36:15,930 --> 00:36:19,860 Το πρώτο βήμα είναι να ελέγξετε εάν κάποιος άλλος έχει ήδη κάνει το πράγμα, 729 00:36:19,860 --> 00:36:22,160 ή να κάνει το 90% του πράγματος. 730 00:36:22,160 --> 00:36:26,010 Οι πιθανότητες είναι ότι πιθανώς να έχουν, και θα πρέπει να πάει να πάρει την δουλειά τους και να τρέξει αυτό. 731 00:36:26,010 --> 00:36:28,900 Ή να γράψει ένα περιτύλιγμα γύρω από αυτό να προσαρμοστεί με το σκοπό σας. 732 00:36:28,900 --> 00:36:31,250 Είναι μόνο μετά από αυτό έχει παρέλειψε που θέλετε, στη συνέχεια, 733 00:36:31,250 --> 00:36:35,529 πάει και write-- αρχίσουμε να σκεφτόμαστε πώς θα πρέπει να βάλετε αυτό το πράγμα μαζί. 734 00:36:35,529 --> 00:36:37,320 Υπάρχουν πολλά πράγματα εκεί έξω, και αυτό είναι 735 00:36:37,320 --> 00:36:39,180 ένα από τα πιο χρήσιμα πράγματα για την Python. 736 00:36:39,180 --> 00:36:40,930 Όπως και η γλώσσα είναι κομψό, η γλώσσα 737 00:36:40,930 --> 00:36:43,800 είναι εύκολο στη χρήση, αλλά επίσης επειδή είναι τόσο κομψό και εύκολο στη χρήση, 738 00:36:43,800 --> 00:36:47,420 οι άνθρωποι έχουν χρησιμοποιήσει για μια για μεγάλο χρονικό διάστημα και υπάρχει πολλή ουσία 739 00:36:47,420 --> 00:36:52,520 έξω εκεί που μπορείτε να Ιμάντες για δική σας χρήση. 740 00:36:52,520 --> 00:36:58,457 >> Έτσι τελευταίος κανόνας της Python είναι, κάποιος άλλος έχει ήδη γραφτεί πιθανώς 741 00:36:58,457 --> 00:37:00,290 μια μονάδα για το ότι, κάποιος άλλος έχει ήδη 742 00:37:00,290 --> 00:37:02,980 ίσως γράψει μια βιβλιοθήκη γι 'αυτό. 743 00:37:02,980 --> 00:37:06,579 Πριν να προσπαθήσετε να κάνετε ένα πράγμα, να δούμε για να δείτε αν είναι ήδη σε εφαρμογή. 744 00:37:06,579 --> 00:37:07,370 Δεν είναι τόσο δύσκολο. 745 00:37:07,370 --> 00:37:11,960 Όλες οι ενότητες που ανέχομαι πριν, με μία ίσως εξαίρεση, 746 00:37:11,960 --> 00:37:15,220 έρχονται προ-εγκατεστημένα σε κάθε τυπική εγκατάσταση της Python. 747 00:37:15,220 --> 00:37:17,769 Και έτσι με μια πρόσκληση για εισάγετε οτιδήποτε άλλο, μπορείτε 748 00:37:17,769 --> 00:37:19,852 έχουν όλοι αυτήν τη λειτουργία στα χέρια σας. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Ξεκινώντας να ολοκληρωθεί αυτή η Συζήτηση, υπάρχουν μερικά πράγματα 751 00:37:28,920 --> 00:37:32,770 ότι έχω μείνει ως μαύρα κουτιά και το είδος της δυσδιάκριτες για τον κόσμο, 752 00:37:32,770 --> 00:37:37,217 και υπάρχει μια μερικά λευκά ψέματα ότι έχω είπε ότι για χάρη της ειλικρίνειας, 753 00:37:37,217 --> 00:37:39,050 Εγώ θα τουλάχιστον σημείο εδώ, ακόμη και αν δεν θα το κάνω 754 00:37:39,050 --> 00:37:43,980 πάει σούπερ βαθιά σε όλα αυτά και τις τεχνικές εξηγήσεις τους. 755 00:37:43,980 --> 00:37:46,010 >> Πολλά από τα πράγματα ότι έχω ονομάζεται μαγεία 756 00:37:46,010 --> 00:37:48,980 είναι αυτό που άλλοι άνθρωποι θα αποκαλούσα αντικειμενοστραφής προγραμματισμός. 757 00:37:48,980 --> 00:37:52,470 Έτσι, υπάρχουν πολλά things-- έτσι ώστε οι μεταβλητές είναι πολύ συχνά δεν 758 00:37:52,470 --> 00:37:56,540 απλά κάθεται σε bytes, μνήμη, αλλά είναι πολύ περίπλοκη 759 00:37:56,540 --> 00:38:01,910 αντικείμενα που έχουν εσωτερικές κατάσταση σχετικά με τις λειτουργίες και τα μέρη 760 00:38:01,910 --> 00:38:05,570 της κρυφές μεταβλητές, πολλά κρυμμένη λειτουργικότητα, η οποία 761 00:38:05,570 --> 00:38:09,480 σας επιτρέπει να τα μετατρέψει σε χορδές, η οποία σας επιτρέπει να μετακινηθείτε πάνω τους. 762 00:38:09,480 --> 00:38:12,260 Και αν είστε writing-- και ο λόγος που 763 00:38:12,260 --> 00:38:15,710 έχουν όλα αυτά τα πλούσια λειτουργικότητα Είναι επειδή οι people-- 764 00:38:15,710 --> 00:38:17,740 οι αρχιτέκτονες του language-- έχουν πάει 765 00:38:17,740 --> 00:38:22,420 μέσω και για κάθε πρότυπο αντικείμενο, να θέσει σε λειτουργία το 766 00:38:22,420 --> 00:38:26,970 να το πω αυτό είναι το πώς αυτό είναι πώς αυτό πρόκειται να λειτουργήσει 767 00:38:26,970 --> 00:38:28,470 αν κάποιος θέλει να επαναλάβει πάνω του. 768 00:38:28,470 --> 00:38:31,240 >> Έτσι, τα πάντα ότι κάποιος μπορεί να ενδεχομένως να θέλουν να επαναλάβει πάνω, 769 00:38:31,240 --> 00:38:34,529 έχει λογική γραμμένη σε το χέρι για το πώς είστε 770 00:38:34,529 --> 00:38:36,070 υποτίθεται ότι θα επαναλάβει επί του αντικειμένου. 771 00:38:36,070 --> 00:38:40,274 Ό, τι μπορεί να ενδεχομένως να θέλουν που αποτελούν αντικείμενο ντάμπινγκ σε μια σειρά έχει λογική γράψει. 772 00:38:40,274 --> 00:38:43,440 Αυτή είναι η λειτουργία που σας καλούν, αν Θέλετε να πετάξει αυτό έξω σε μια σειρά. 773 00:38:43,440 --> 00:38:45,273 Αυτός είναι ο λόγος που μπορείτε να κάνετε καλέστε len στα πράγματα, αυτό 774 00:38:45,273 --> 00:38:49,900 Γι 'αυτό μπορείτε να καλέσετε στο, αυτό είναι γιατί μπορείτε να καλέσετε αν σε σε όλα 775 00:38:49,900 --> 00:38:53,490 ότι θα θέλατε να, γιατί όλα εκείνα τα μεταφέρουν μαζί τους, 776 00:38:53,490 --> 00:38:55,380 η τεχνογνωσία για να το κάνουμε αυτό. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Αυτό είναι κάτι που είμαι σούπερ Δεν πρόκειται να υπεισέλθω. 779 00:39:00,432 --> 00:39:03,140 Αλλά για κάτι στη λίστα είναι διακριτικά διαφορετικό από το στυλ C για βρόχους, 780 00:39:03,140 --> 00:39:06,160 και μπορείτε να διαβάσετε όλα τα σχετικά ότι στις το Διαδίκτυο, αν σας ενδιαφέρει. 781 00:39:06,160 --> 00:39:08,930 Υπάρχει μια σκοτεινή πλευρά σε όλα αυτό, ότι ανέφερα, 782 00:39:08,930 --> 00:39:10,359 οπότε υπάρχουν δύο πράγματα. 783 00:39:10,359 --> 00:39:13,400 Το πρώτο είναι ότι αυτό το αντικείμενο προσανατολισμό προγραμματισμού, προσθέτει πολλές υπερυψωμένες 784 00:39:13,400 --> 00:39:16,080 για τυχαία πράγματα, έτσι ώστε να καταλήξουμε χρησιμοποιώντας πολύ περισσότερη μνήμη? 785 00:39:16,080 --> 00:39:18,640 θα καταλήξετε με λίγο περισσότερο χρόνο από ό, τι θα ήταν διαφορετικά. 786 00:39:18,640 --> 00:39:21,300 Η other-- αλλά το πιο ύπουλη σκοτεινή πλευρά σε αυτό 787 00:39:21,300 --> 00:39:24,047 είναι, αν τα πράγματα ενεργούν μόνο όπως εσείς θέλετε 788 00:39:24,047 --> 00:39:27,130 χωρίς να χρειάζεται να σκεφτείτε σούπερ σκληρό σχετικά με το αν αυτή θα πρέπει να είναι ένας int 789 00:39:27,130 --> 00:39:29,713 ή αν θα πρέπει να υπάρχει μια float, θα μπορούσε να είναι ότι πάνω από εδώ 790 00:39:29,713 --> 00:39:34,240 που παράγουν ένα int, αλλά εδώ σας σκέφτομαι αλλά θα always-- συγγνώμη, 791 00:39:34,240 --> 00:39:36,555 θα μπορούσε να είναι ότι εδώ που παράγουν ένα πλωτήρα, 792 00:39:36,555 --> 00:39:39,430 αλλά όταν φτάσετε στο δεύτερο μέρος του προγράμματός σας, σκέφτεστε, 793 00:39:39,430 --> 00:39:41,150 OH καλά, αλλά θα δώσε μου πάντα int. 794 00:39:41,150 --> 00:39:43,608 Και αν δεν το κάνουν, είναι δυνατό ότι σφηνωμένο κάπου, 795 00:39:43,608 --> 00:39:47,600 αν προσπαθήσετε να το χρησιμοποιήσετε στο ευρετήριο σε έναν πίνακα, ή ό, τι έχετε. 796 00:39:47,600 --> 00:39:51,050 >> Έτσι, ένα από την πραγματική χρήσιμα πράγματα για το C είναι 797 00:39:51,050 --> 00:39:54,219 σας αναγκάζει να σκεφτούμε πραγματικά σκληρά πριν κάνετε any-- 798 00:39:54,219 --> 00:39:56,510 πριν να φέρει οποιαδήποτε μεταβλητή στην ύπαρξη, όπως αυτό 799 00:39:56,510 --> 00:39:58,764 είναι ο τύπος αυτής της μεταβλητής. 800 00:39:58,764 --> 00:40:00,680 Και πρόκειται να έχουν αυτό το είδος για όλο το χρόνο. 801 00:40:00,680 --> 00:40:02,410 >> Αυτό δεν είναι αληθινό Python, και στην πραγματικότητα, 802 00:40:02,410 --> 00:40:04,740 can-- αν είστε απλά είδος πηγαίνει από το αυτί, 803 00:40:04,740 --> 00:40:07,690 και να σας κάνει κάποιες αποφάσεις ένας τρόπος σε ένα μέρος, 804 00:40:07,690 --> 00:40:09,870 και ορισμένες αποφάσεις ενός τρόπο στον άλλο τόπο 805 00:40:09,870 --> 00:40:12,960 χωρίς να θέτει αρκετά πίσω τα πράγματά οι σκηνές στο άλλο μέρος 806 00:40:12,960 --> 00:40:16,170 για να πιάσει τα πράγματα σωστά, μπορεί να πάρει μερικά πολύ περίεργα λάθη. 807 00:40:16,170 --> 00:40:19,200 Και το πρόγραμμα μπορεί να κρατήσει σε λειτουργία για πολύ μεγάλο χρονικό διάστημα, επειδή είναι 808 00:40:19,200 --> 00:40:23,200 κάνει πολλή δουλειά να πω, και αυτό το πράγμα θα μπορούσε να λειτουργήσει με αυτόν τον τρόπο, 809 00:40:23,200 --> 00:40:25,070 έτσι Πάω να τρέχει με αυτόν τον τρόπο. 810 00:40:25,070 --> 00:40:30,300 >> Και στην πραγματικότητα, το γεγονός ότι ωθεί διαβιβάσει μέσα από πολλά μικρά λάθη 811 00:40:30,300 --> 00:40:33,260 σημαίνει ότι, όταν συχνά Παρουσιάστηκε σφάλμα είναι πραγματικά κακό 812 00:40:33,260 --> 00:40:38,720 και εσείς πραγματικά θέλετε να το διορθώσουμε, καταλήγει μίλια away-- το πρόγραμμα 813 00:40:38,720 --> 00:40:41,780 καταλήγει διακοπή μίλια μακριά από τη στιγμή που είχε το σφάλμα σας. 814 00:40:41,780 --> 00:40:46,590 Και έτσι ένα πράγμα που θα θέλαμε προγράμματα για να κάνει, ένα πράγμα sometimes-- 815 00:40:46,590 --> 00:40:48,910 ότι θα θέλαμε προγράμματα να κάνουμε όταν είμαστε debugging 816 00:40:48,910 --> 00:40:54,160 αστοχία είναι δυνατά και δεν είναι πολύ γρήγορα, όταν κάτι πάει στραβά. 817 00:40:54,160 --> 00:40:55,510 >> Η Python είναι πολύ κακό σε αυτό. 818 00:40:55,510 --> 00:40:58,820 Η Python είναι πολύ καλή στο να μην αποτυγχάνει και κύλισης προς τα εμπρός 819 00:40:58,820 --> 00:41:00,320 μέσω απρόσμενα πράγματα. 820 00:41:00,320 --> 00:41:02,820 Έτσι, αυτό είναι χρήσιμο όταν γράφεις μικρά προγράμματα. 821 00:41:02,820 --> 00:41:07,110 Όταν παίρνετε περίπλοκη σφάλματα μερικές φορές 822 00:41:07,110 --> 00:41:09,300 Παίρνει πολύ χρόνο για να τους δώσουμε έμφαση. 823 00:41:09,300 --> 00:41:12,210 >> Έτσι, υπάρχει μια σκοτεινή πλευρά σε όλα αυτό, όπως ακριβώς λειτουργεί αυτό. 824 00:41:12,210 --> 00:41:13,860 Λειτουργεί μόνο σαν θα περιμένατε να. 825 00:41:13,860 --> 00:41:18,320 Εκτός από το ότι, όταν αυτό δεν συμβαίνει, θα καταλήξετε επάνω σε ένα εντελώς διαφορετικό μέρος 826 00:41:18,320 --> 00:41:21,530 και προσπαθώ να καταλάβω πού ήταν αυτό που πήγε στραβά. 827 00:41:21,530 --> 00:41:25,180 >> Η συλλογή απορριφθέντων is-- έτσι ένα πράγμα που θα παρατηρήσετε 828 00:41:25,180 --> 00:41:28,110 είναι ότι κάποια από αυτά τα πράγματα Έχω φέρει σε existence-- 829 00:41:28,110 --> 00:41:34,114 Αυτοί οι πίνακες, τα λεξικά, οι εν λόγω αντικείμενα, αυτά files-- ποτέ να απελευθερωθεί. 830 00:41:34,114 --> 00:41:36,030 Δεν υπήρξε καμία κλήση σε δωρεάν σε οποιοδήποτε από αυτή την ομιλία. 831 00:41:36,030 --> 00:41:40,340 Και αυτό ήταν το C-πλάι, γιατί Εμείς ποτέ δεν πήρε σε αυτά τα πράγματα. 832 00:41:40,340 --> 00:41:42,220 >> Αλλά στην Python-πλευρά, δεν υπάρχει δωρεάν. 833 00:41:42,220 --> 00:41:43,970 Τα πράγματα γίνονται αυτόματα απελευθερωθεί όταν Python 834 00:41:43,970 --> 00:41:45,386 νομίζει ότι δεν κοιτάτε τους. 835 00:41:45,386 --> 00:41:49,640 Είναι πολύ καλό να μην απελευθερώνοντας τα πράγματα ότι ίσως ακόμα ενδεχομένως να κοιτάζει, 836 00:41:49,640 --> 00:41:54,262 αλλά αυτό σημαίνει ότι αν ήσασταν πρόκειται να διαθέσει αυτό το μεγάλο πράγμα, 837 00:41:54,262 --> 00:41:55,970 και να είστε όπως, OH Είμαι τελειώνουμε με αυτό τώρα, 838 00:41:55,970 --> 00:42:00,360 Είναι δύσκολο να πει στην Python ότι τελειώσατε με αυτό τώρα. 839 00:42:00,360 --> 00:42:02,986 >> Μπορείτε να ορίσετε μερικές φορές ότι οι μεταβλητές να είναι κανένας, 840 00:42:02,986 --> 00:42:05,110 και στη συνέχεια ελπίζω ότι τελικά ο συλλέκτης σκουπιδιών 841 00:42:05,110 --> 00:42:06,720 έρχεται μέσα και καθαρίζει έξω. 842 00:42:06,720 --> 00:42:10,177 Αλλά και πάλι, δεν το κάνετε έχουν τον έλεγχο αυτό. 843 00:42:10,177 --> 00:42:13,510 Και ένας από τους λόγους που οι άνθρωποι χρησιμοποιούν C Για την απόδοσή πραγματικά κρίσιμα πράγματα, 844 00:42:13,510 --> 00:42:16,570 Είναι αυτή η ικανότητα να πραγματικά ξέρετε πότε μνήμη διατίθεται 845 00:42:16,570 --> 00:42:19,369 και όταν είναι απελευθερωθεί, και έχουν πολλή ελέγχου επί λέγοντας, 846 00:42:19,369 --> 00:42:20,910 Είμαι χρησιμοποιώντας τίποτα περισσότερο από τη μνήμη που χρειάζομαι. 847 00:42:20,910 --> 00:42:23,632 Αυτό είναι κάτι που Python δεν είναι τόσο μεγάλη σε. 848 00:42:23,632 --> 00:42:25,090 Κοινό: Μπορώ να σας κάνω μια ερώτηση; 849 00:42:25,090 --> 00:42:29,800 Τι εννοούσατε με αποτύχει δυνατά; 850 00:42:29,800 --> 00:42:32,070 >> ROSS RHEINGANS-YOO: Έτσι, αν κάτι πηγαίνει στραβά 851 00:42:32,070 --> 00:42:34,950 και είστε στην εκσφαλμάτωση λειτουργία, θα κάνατε πολύ συχνά 852 00:42:34,950 --> 00:42:38,510 θέλουμε το πρόγραμμά σας για να σας πω πού ακριβώς πήγε στραβά, 853 00:42:38,510 --> 00:42:42,360 και όχι μόνο ήσυχα σταματήσουν να προβάλλονται. 854 00:42:42,360 --> 00:42:45,085 Αλλά θέλετε πραγματικά να εκτυπώσετε από όλα τα είδη των πληροφοριών σχετικά με 855 00:42:45,085 --> 00:42:46,972 όπως, εδώ ήταν αυτό. 856 00:42:46,972 --> 00:42:53,957 Αυτό το πράγμα συνέβη Εάν εκτυπώνετε α wen-- αν τρέχετε ένα web server-- 857 00:42:53,957 --> 00:42:55,390 >> Κοινό: [δεν ακούγεται] 858 00:42:55,390 --> 00:42:59,800 >> ROSS RHEINGANS-YOO: Ναι, αν τρέχετε ένα web server, 859 00:42:59,800 --> 00:43:02,680 είναι μερικές φορές κακό, αν είστε πάντα απόρριψη λάθη, 860 00:43:02,680 --> 00:43:04,530 και λέτε, και ότι δεν λειτούργησε. 861 00:43:04,530 --> 00:43:05,300 Πάω να σταματήσει. 862 00:43:05,300 --> 00:43:07,680 Είμαι ακριβώς πρόκειται να αγνοήσει και να κρατήσει σε εξέλιξη. 863 00:43:07,680 --> 00:43:11,260 Επειδή τότε μπορείτε να έρθετε σε εκατοντάδες από αυτά τα λάθη και να μην τους δει. 864 00:43:11,260 --> 00:43:13,910 >> Θα ήταν σίγουρα χρήσιμο για σκοπούς εντοπισμού σφαλμάτων 865 00:43:13,910 --> 00:43:20,327 αν κάθε φορά τον web server σας γίνει μια λάθος, είχατε ανθεκτικό αρχεία από αυτό. 866 00:43:20,327 --> 00:43:22,910 Ίσως θέλετε ακόμη και το πρόγραμμα να σταματήσουν, έτσι ώστε οι εγγραφές 867 00:43:22,910 --> 00:43:25,471 Δεν κάνει να θαφτεί κάτω από τα πράγματα. 868 00:43:25,471 --> 00:43:26,970 Αλλά και πάλι, αυτό είναι σε κατάσταση εκσφαλμάτωσης. 869 00:43:26,970 --> 00:43:31,280 >> Συχνά στη λειτουργία της παραγωγής, η ο κόσμος είναι λίγο διαφορετική. 870 00:43:31,280 --> 00:43:36,380 Και σε μικροσκοπικά σενάρια που τρέχω, όπου το πράγμα που είπα να κάνω 871 00:43:36,380 --> 00:43:40,680 μπορεί να είναι μόνο ένα μικρό κομμάτι από από ό, τι θα ήθελα να κάνει, 872 00:43:40,680 --> 00:43:44,010 Στη συνέχεια το είδος της ώθησης μέσω σφάλματα είναι κάτι που μπορεί να θέλετε. 873 00:43:44,010 --> 00:43:49,410 Και σε αυτές τις περιπτώσεις, σίγουρα Python κερδίζει πραγματικά ξεκινά του. 874 00:43:49,410 --> 00:43:54,617 >> Το τελευταίο πράγμα που δεν είχα μιλήσει σε this-- ότι δεν είχα μιλήσει για 875 00:43:54,617 --> 00:43:57,700 αλλά μπορεί να είναι πραγματικά εξοργιστικό το πρώτο φορά που έχετε ένα από αυτά τα λάθη, 876 00:43:57,700 --> 00:44:00,491 και η δεύτερη και η τρίτη και η τέταρτη φορά που έχετε ένα αυτά τα λάθη. 877 00:44:00,491 --> 00:44:03,490 Python, ανέφερα ότι χρησιμοποιεί το λευκό κενό 878 00:44:03,490 --> 00:44:06,700 να σας πω ποιο επίπεδο εσοχής και τι λειτουργικό τμήμα είστε μέσα, 879 00:44:06,700 --> 00:44:08,840 αντιμετωπίζει καρτέλες και χώρους με διαφορετικό τρόπο. 880 00:44:08,840 --> 00:44:12,780 Έτσι, αν καρτέλα πάνω από τέσσερα, και στη συνέχεια, Η επόμενη γραμμή έχει τέσσερις χώρους, 881 00:44:12,780 --> 00:44:16,910 ακόμη και αν εμφανίζονται ως ο ίδιο ποσό στον επεξεργαστή σας, 882 00:44:16,910 --> 00:44:20,160 Python δεν τους συμπεριφερόμαστε με τον ίδιο. 883 00:44:20,160 --> 00:44:23,610 >> Στην πραγματικότητα, η Python αντιμετωπίζει καρτέλες και χώρους όπως το λάδι και το νερό. 884 00:44:23,610 --> 00:44:25,050 Είναι απλά τα πράγματα διαφορετικά. 885 00:44:25,050 --> 00:44:27,264 Δεν υπάρχει κανένας ιδιαίτερος μήκος, που είναι μία γλωττίδα, 886 00:44:27,264 --> 00:44:30,180 έτσι δεν είναι σαν μια καρτέλα ισούται με 8 χώρους, και έτσι θα πάρει γύρω από αυτό 887 00:44:30,180 --> 00:44:30,860 από εκεί. 888 00:44:30,860 --> 00:44:34,110 Όπως, όταν λέει, τι επίπεδο του κενού χώρου είμαι σε, 889 00:44:34,110 --> 00:44:37,240 είναι πραγματικά ψάχνει για μια μοτίβο των χώρων και τις καρτέλες. 890 00:44:37,240 --> 00:44:43,050 Και έτσι, ο καλύτερος τρόπος για να ασχοληθεί με αυτό είναι να χρησιμοποιείτε πάντα χώρους όλη την ώρα. 891 00:44:43,050 --> 00:44:47,510 >> Και στην πραγματικότητα, στην Cloud9 IDE και το CS50 IDE, 892 00:44:47,510 --> 00:44:50,610 ένθετα πλήκτρο Tab σας τέσσερις χώρους σε αντί 893 00:44:50,610 --> 00:44:53,800 μιας καρτέλας, η οποία είναι εξαιρετικά χρήσιμη. 894 00:44:53,800 --> 00:44:57,074 Αν και πάλι, αν έγραψε ένα Python πρόγραμμα με καρτέλες που θα ήταν μια χαρά, 895 00:44:57,074 --> 00:44:58,990 είναι ακριβώς αν κάποιος πήγε και προσπάθησε να προσθέσετε 896 00:44:58,990 --> 00:45:02,655 μια ενιαία γραμμή στο πρόγραμμά σας ότι είχε τέσσερις χώρους για κάθε καρτέλα, 897 00:45:02,655 --> 00:45:03,280 θα σπάσει. 898 00:45:03,280 --> 00:45:07,800 Και θα σπάσει κατά τρόπο ότι δεν είναι πραγματικά ορατό. 899 00:45:07,800 --> 00:45:12,390 Αν και το πραγματικό σφάλμα μήνυμα που ρίχνει 900 00:45:12,390 --> 00:45:15,610 έχει να κάνει με το νέο εσοχή δεν αναμένεται εδώ, 901 00:45:15,610 --> 00:45:18,700 or-- αν είναι να μιλάμε για περιπτώσεις και μοιάζει να είναι λάθος, 902 00:45:18,700 --> 00:45:22,090 είναι πιθανώς επειδή υπάρχει ένα πρόβλημα στην καρτέλα χώρο. 903 00:45:22,090 --> 00:45:24,154 Είναι εξοργιστικό ακόμα για τον εντοπισμό σφαλμάτων. 904 00:45:24,154 --> 00:45:26,070 Το μεγαλύτερο σε ολόκληρη την αυτή η συζήτηση, η οποία δεν το έκανα 905 00:45:26,070 --> 00:45:29,740 φτάσετε στο γιατί είναι πραγματικά μια πολύπλοκη, λεπτή θέμα, 906 00:45:29,740 --> 00:45:34,760 και δεν ήταν απαραίτητο να κάνει οποιαδήποτε από τα πράγματα που έχουμε κάνει μέχρι τώρα, 907 00:45:34,760 --> 00:45:37,140 είναι μια έννοια που ονομάζεται πλειάδες. 908 00:45:37,140 --> 00:45:41,280 Είναι πολύ εκεί, όπως η συστοιχίες που δεν μπορείτε να τροποποιήσετε. 909 00:45:41,280 --> 00:45:44,700 Παίρνουν χρησιμοποιούνται σε όλη τη χώρα, διότι αυτές είναι χρήσιμες για πολλά πράγματα 910 00:45:44,700 --> 00:45:46,300 ότι συστοιχίες δεν είναι χρήσιμα για. 911 00:45:46,300 --> 00:45:49,890 >> Αλλά αν θέλετε να κάνετε μια σειρά, και τότε υποσχεθεί στον διερμηνέα που εσείς 912 00:45:49,890 --> 00:45:53,140 δεν πρόκειται ποτέ να θέλετε να τροποποιήσετε ότι thing-- στην πραγματικότητα, αν θέλετε να τροποποιήσετε, 913 00:45:53,140 --> 00:45:56,800 θα κάνει ένα νέο με το νέο τιμές σε it-- αυτά είναι πλειάδες. 914 00:45:56,800 --> 00:45:58,800 Αντί παραγωγή τους με αγκύλες, 915 00:45:58,800 --> 00:46:00,341 μπορείτε να τα παράγουν με παρενθέσεως. 916 00:46:00,341 --> 00:46:05,074 Γιατί θα πρέπει να χρησιμοποιήσετε αυτά τα πράγματα, Είναι ένα μικρό κομμάτι από ένα θέμα. . 917 00:46:05,074 --> 00:46:06,990 Το μόνο πράγμα που εγώ θα πω γι 'αυτό είναι εσύ 918 00:46:06,990 --> 00:46:10,680 μπορεί να χρησιμοποιήσει ως πλειάδες δείκτες λεξικά. 919 00:46:10,680 --> 00:46:15,010 Δεν μπορείτε να χρησιμοποιήσετε ως συστοιχίες δείκτες λεξικά. 920 00:46:15,010 --> 00:46:18,970 Και γιατί είναι, και πάλι, την τεχνική και Είμαι δεν πρόκειται να τρέξει σε αυτό. 921 00:46:18,970 --> 00:46:23,140 >> Η PSET που δεν έχω αγγίξει σχετικά σε αυτή την ομιλία είναι pset6. 922 00:46:23,140 --> 00:46:25,837 Τόσο εδώ είναι πώς θα ήσουν εφαρμογή a-- εδώ 923 00:46:25,837 --> 00:46:28,140 πώς θα εφαρμόσουν pset6 στην Python. 924 00:46:28,140 --> 00:46:32,680 Λαμβάνοντας υπόψη την Python κύκλο σχεδιασμού, το πρώτο πράγμα 925 00:46:32,680 --> 00:46:34,760 ότι κάνεις όταν είσαι προγραμμάτων είναι επιταγή 926 00:46:34,760 --> 00:46:38,030 για να δείτε αν κάποιος έχει κάνει ήδη. 927 00:46:38,030 --> 00:46:42,152 >> Στην πραγματικότητα, αν θέλετε να serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 κάνει περίπου αυτό, εκτός από αυτό δεν έρχεται 929 00:46:44,110 --> 00:46:45,840 πρότυπο εγκατασταθεί σε συστήματα Linux. 930 00:46:45,840 --> 00:46:50,490 Python κάνει, και η Python απλή διακομιστή http κάνει επίσης. 931 00:46:50,490 --> 00:46:54,717 Εάν είστε ποτέ σε μια μηχανή Linux, ή το εξωτερικό Cloud9 IDE του CS50 932 00:46:54,717 --> 00:46:57,550 και θα θέλατε να εξυπηρετήσει αυτό το ρεύμα καταλόγου σε μια συγκεκριμένη θύρα, 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer λιμάνι εξυπηρετεί αυτό. 934 00:47:04,610 --> 00:47:07,190 Μπορείτε επίσης να εισαγάγετε η απλή διακομιστή http 935 00:47:07,190 --> 00:47:11,240 και θα έχεις πολλή λειτουργικότητα, αν θέλετε να το προσαρμόσετε, ή να το αλλάξετε, 936 00:47:11,240 --> 00:47:15,860 ή να τρέξει it-- τη θέσει στην υπηρεσία εκτελέσετε το δικό σας διακομιστή υπηρεσιών. 937 00:47:15,860 --> 00:47:18,032 >> Έτσι, αυτό είναι Python με λίγα λόγια. 938 00:47:18,032 --> 00:47:20,280 Και αυτό ήταν CS50. 939 00:47:20,280 --> 00:47:21,980 Ευχαριστώ. 940 00:47:21,980 --> 00:47:23,468