ROSS RHEINGANS-YOO: Γεια σας, είμαι ο Ross. Και αυτό είναι ένα σεμινάριο CS50. Θα σας πάρει από τον προγραμματισμό σε C για τον προγραμματισμό σε Python. Η Python είναι μια γλώσσα scripting. Είναι σε μεγάλο βαθμό όπως η C στη σύνταξη, αν και μερικοί των τεχνικών λεπτομερειών της πώς να παίρνει σύνταξη που εκτελέστηκαν είναι ελαφρώς διαφορετική. Είναι λιγότερο ισχυρό από C σε κάποιους τρόπους. Είναι λιγότερο εκφραστικό για πού ακριβώς στον υπολογιστή σας μνήμη παίρνει καλοστημένο, πώς παίρνει καλοστημένο, όταν παίρνει την ελευθερία, και αυτά τα είδη των πραγμάτων. Είναι πιο χρήσιμο από το C με κάποιους τρόπους, γιατί είναι πιο εύκολο να προγραμματίσει σε. Η γλώσσα είναι, σε ορισμένες οι άνθρωποι, πιο διαισθητική. Και πραγματικά, ο στόχος είναι για να είναι πιο γρήγορα για να προγραμματίσετε και ενδεχομένως πιο αργή να εκτελέσει. Τώρα, αν το σκεφτείτε το ποσό του χρόνου που δαπανώνται για την τελευταία σας πρόβλημα που εγγράφως κωδικό σας κατά το ποσότητα του χρόνου που ξοδεύετε την τελευταία πρόβλημά σας που εκτελεί τον κωδικό σας, θα ήθελα να φανταστώ ότι η γλώσσα που ήταν δύο φορές πιο γρήγορα για να γράψει, και δύο φορές πιο αργή να εκτελέσει, μπορεί να είναι μια βελτίωση σε σχέση C με κάποιους τρόπους. Σίγουρα όταν προσπαθείτε να γράψετε μικρά προγράμματα για να κάνουμε μικρά πράγματα, Η Python είναι μια χρήσιμη γλώσσα της επιλογής. Και στο τέλος αυτής της σεμιναρίου, ελπίζω ότι θα να είναι σε θέση να κάνει το επιλογή σε μελλοντικά έργα σχετικά με το ποια γλώσσα είναι σωστό να χρησιμοποιήσει, δεν είναι η ιδέα ότι μία γλώσσα είναι πιο διορθώσει όλη την ώρα. Λίγα πράγματα για το τι είναι το σεμινάριο. Το σεμινάριο αυτό δεν έχει σκοπό να να σας διδάξει την Python από το μηδέν. Python είναι πολύ παρόμοια έως C, και υποθέτω ότι είσαι φοιτητής CS50, ή κάποιος με ένα παρόμοιο εξοικείωση με C. Αν είστε φοιτητής CS50 γύρω από το πρόβλημα που 6, Έτσι έχετε να δείτε πολλά τα πράγματα σε C, θα σας δώσω οι μεγάλες διαφορές, και μερικά από τα πράγματα που κάνουν διαφορετικά Python και ειδικές και χρήσιμο, αλλά εγώ δεν πρόκειται να πάει για τι γλώσσα προγραμματισμού είναι και πώς να γράψουν προγράμματα. Ωστόσο, αυτό το σεμινάριο θα διδάξουν μπορείτε να γράφετε προγράμματα Python εάν είστε ένας από εκείνους τους λίγους ομάδων. Και πάλι θα εξετάσουμε πώς θα εφαρμόσει psets-- ότι θα πρέπει να 1-6 Python-- και παρέχουν δείκτες σε επίσημα έγγραφα για μελλοντική αναφορά. Το άλλο πράγμα που είναι σημαντικό σχετικά με το πώς έχει ανατεθεί αυτή η συζήτηση, Αυτό το βίντεο θα είναι σε απευθείας σύνδεση, η ευγένεια του CS50, έτσι δεν θα πρέπει να αισθάνονται σαν θα πρέπει να κρατήσετε σημειώσεις. Μπορείτε πάντα να πάτε πίσω και να δούμε σε αυτό αργότερα ως σημείο αναφοράς. Επιπλέον, οι διαφάνειες είναι διαθέσιμα αυτή τη στιγμή σε αυτό το site, το οποίο θα πρέπει να λάβει κάνετε ένα έγγραφο Google. Είναι μια ελαφρώς συντομευμένη έκδοση τι είμαι εμφανίζεται στην οθόνη. Μια προσεκτική προειδοποίηση πριν εμείς άλμα, Python 3 είναι μια διαφορετική γλώσσα από την Python 2. Φαίνονται πολύ το ίδιο? υπάρχουν πολύ μικρές τεχνικές διαφορές ότι θα προκαλέσει προγράμματα γραμμένο σε Python 2 να μην είναι σε θέση να εκτελεστούν στην Python 3 περιβάλλον. Η συσκευή έρχεται με CS50 Python, από προεπιλογή χρησιμοποιεί Python 2. Μπορείτε να ελέγξετε αυτό με πληκτρολογώντας σε γραμμή εντολών σας python --version, η οποία θα πρέπει εξόδου 2.7.6 σχετικά με την τρέχουσα συσκευή. Δοκιμάστε Python 3, που κάνει εργάζονται στη συσκευή, Εάν η Python προεπιλογή 2.X.Y, είτε με η συσκευή ή για τη δική σας μηχανές. Θα πρέπει να αντικαταστήσετε Python 3 οποτεδήποτε σε αυτή την ομιλία που γράφω Python. Αν το μηχάνημά σας είναι τρέχει 2 από προεπιλογή, ο τύπος Python 3, προκειμένου να είναι σε θέση να πραγματικά παρακολουθήσει μαζί και να εκτελέσει αυτά τα πράγματα. Επιπλέον, θα σας επισημάνω σε επίσημη πόρων που είναι τώρα. docs.python.org/3--~~V προσεκτική ότι αυτό είναι ένα 3 και όχι 2-- έχει χρήσιμες αναφορές. Το σεμινάριο θα σας μεταφέρει μέσα από πολλά από τα ίδια πράγματα ότι κάνω τώρα, εκτός σε μορφή κειμένου. Είναι χρήσιμη ως αναφορά μια αναφοράς για τη γλώσσα, και της πρότυπης βιβλιοθήκης δίνει σας μερικές από τις επεκτάσεις με πρόσθετη λειτουργικότητα. Έτσι, ένα πρώτο πρόγραμμα σε Python. Στα αριστερά έχουμε πρότυπο C, σχετικά με το δικαίωμα, έχουμε Python. Μπορεί να έχουν αναγνωρίσει αυτό το πρόβλημα, είναι ένα από το πρώτο πρόβλημα θέτει σε CS50, και αυτά λύσει αυτό χρησιμοποιώντας το ίδιο διάλυμα. Τώρα, ο λόγος που είμαστε Βλέποντας αυτά δίπλα-δίπλα Είναι έτσι μπορούμε να εξετάσουμε συντακτικές διαφορές. Ένας από τους ελέφαντες στο δωμάτιο ότι μπορεί να έχετε παρατηρήσει σωστά από το ρόπαλο, είναι ότι η Python δεν έχει κύρια λειτουργία περιτύλιγμα γύρω από τον κώδικα. Έτσι σε C, μπορείτε να γράψετε ένα μάτσο αρχεία, μπορείτε να τα συνδέσει μεταξύ τους, και το πρόγραμμα ξεκινά την εκτέλεση σε αυτό το πράγμα που ονομάζεται int main. Στην Python, μπορείτε να γράψετε ένα το αρχείο, εκτελέστε το αρχείο, το πρόγραμμα ξεκινά την εκτέλεση στην κορυφή του αρχείου. Έτσι, πρόκειται να ξεκινήσει στην κορυφή του αρχείου πηγαίνετε προς τα κάτω μέχρι να βρείτε κάτι άλλο. Αν διαπιστώσει ένα ορισμό της συνάρτησης, δεν θα εκτελέσει πράγματι εν λόγω κώδικα, θα καθορίσει απλά τη λειτουργία. Αλλά εδώ, όταν η πρώτη προγράμματος είναι η ισούται με 10, Το πρώτο πράγμα που αυτό το πρόγραμμα θα κάνουμε είναι να εκμεταλλευτώ αυτή την αξία των 10 και που σε μια μεταβλητή που ονομάζεται n. Μιλώντας για αυτή τη γραμμή, το ένα από άλλα things-- sorry-- αυτό σημαίνει ότι τα προγράμματα C, θα τα γράψω, θα τους κάνει, το οποίο θα επικαλούνται κάποιες εντολές κλαγγή, και στη συνέχεια θα τρέξει ένα με αποτέλεσμα εκτελέσιμο. Προγράμματα σε Python, μπορείτε να εκτελέσετε το κείμενο file-- αυτή θα μπορούσε mario.py είναι αυτό το αρχείο που μόλις εμφανίστηκε you-- θα εκτελέσετε το αρχείο και θα εκτελέσει, και τα περιεχόμενα αυτού θα πρέπει να εκτελούνται από ο διερμηνέας Python. Μπορείτε να το κάνετε αυτό σε IDE σας. Έτσι, αν έχω ένα αρχείο Γεια σας, το οποίο απλά έχει αυτό το περιεχόμενο. Αυτό είναι στην πραγματικότητα Python 2, δεν Python 3, έτσι ώστε να μην κάνουν ανησυχούν για τη σύνταξη για τώρα. Αλλά εγώ θα τρέξει Python, στις hello.py, και τρέχει. Ένας άλλος τρόπος που μπορώ να χρησιμοποιήσω Python ότι Δεν θα ασχοληθεί με τόσα πολλά σε αυτή την ομιλία, είναι αν μπορώ απλά πληκτρολογήστε Python, το σταγόνες μου σε ένα περιβάλλον όπου Μπορώ να το ταΐσετε Python γραμμή προς γραμμή. Έτσι, εδώ, αν πληκτρολογήσετε χώρο εκτύπωσης "Γεια σου, κόσμε». Πληκτρολογήστε enter. Θα μου φτύσει ότι ήδη τα αποτελέσματα ότι η ατομική γραμμή αμέσως. Αυτό είναι μπορεί να είναι χρήσιμο. Σε αυτή την ομιλία θα κάνω τα πράγματα σε διαφάνειες. Και έτσι θα είστε σε θέση να ακολουθήσετε κατά μήκος είτε εδώ, είτε γράφοντας πραγματικά αρχεία και, στη συνέχεια, την εκτέλεση τους. Όμως, πηγαίνοντας πίσω σε αυτό κώδικα, ένα άλλο πράγμα ότι μπορεί να έχετε noticed-- καλά, υπάρχει δύο πράγματα που μπορεί να παρατηρήσετε σχετικά με αυτά τα τμήματα. Η πρώτη, μάλλον πιο πεζά, είναι ότι η Python δεν έχει τελικό ερωτηματικό. Ερωτηματικά είναι προαιρετική παντού και αβλαβείς παντού. Μπορείτε να τα προσθέσετε. Θα μπορούσε να κάνει τους ανθρώπους που γράφουν Python για ένα ζωντανό snicker σε σας πίσω από την πλάτη σας, γιατί ότι δεν είναι απαραίτητο. Είναι συχνά ένα σημάδι να αναβάλλεται από C. Οι σχεδιαστές της γλώσσας αισθάνονται ότι είναι πιο σαφής αυτός ο τρόπος και ότι δεν είναι απαραίτητο να δηλωθεί κάθε φορά που θα τερματίσει την γραμμή. Ένα άλλο περίεργο πράγμα σχετικά με αυτό το ν είναι ότι δεν έχουν έναν τύπο που επισυνάπτεται. Ένα από τα μαγικά κομμάτια του Python-- και πάω να το ονομάσουμε μαγικό, αλλά υπάρχουν πολύ τεχνικούς λόγους για τους οποίους works-- ένα από τα μαγεία κομμάτια της Python είναι ότι οι μεταβλητές μπορούν να επεκτείνουν ή συρρικνωθεί σε ό, τι περιέχει δεδομένα τύποι θα τους θέλουν. Έτσι, αυτό είναι ένα 10. Αν αργότερα κάτω από όρισα σε αυτό n 0.5, θα θεωρήσει ότι 0,5. Δεν έχει σημασία ότι είναι ένας int εδώ και επιπλέουν εκεί, κάτι που χρησιμοποιεί αυτό το n θα, περισσότερο ή λιγότερο, να είναι σε θέση να chug μαζί αν γίνεται είτε από αυτούς. Εκτός αν υπάρχει κάποια πολύ πραγματική λόγος για τον οποίο δεν μπορεί να χρησιμοποιήσει τα δεδομένα πληκτρολογήστε ότι το n έχει σήμερα, σε ποιο σημείο αυτό θα πάρει σφηνωμένο και να ρίξει ένα λάθος, και εκείνα τα είδη των πραγμάτων. Αλλά εδώ, Python Πραγματικά δεν με νοιάζει τι είναι ότι είμαι πρόκειται να κολλήσει σε αυτό φράση, όπως, θέλετε αυτό το πράγμα; Αυτό το πράγμα σε αυτό; Ναι, αυτό είναι το είδος του πράγματος. Θα κολλήσει στο τέλος. Θα είναι ένα πρόβλημα αργότερα, εάν κάποιος που θέλει να χρησιμοποιήσει το τέλος δεν μπορεί να το χειριστεί. Αυτό είναι ένα από τα σημαντικότερα διαφορές μεταξύ Python και C ότι καθιστά εύκολο να γράψει πολύ μεγάλα προγράμματα C και καθιστά ευκολότερο να γράψει πολύ μικρό πρόγραμμα Python. Η σύνταξη για να μην είναι πολύ διαφορετικές σε αυτό που κάνει. Είναι ελαφρώς διαφορετική στο πώς έχει εκφραστεί. Έτσι, αυτό είναι ένα πολύ, αυτό που ονομάζεται Pythonic, ο τρόπος της γραφής του. για τη σειρά σε σειρά (ν), αυτή είναι η εύρος των αριθμών από 0 έως n, αποκλεισμούς στο κάτω μέρος και αποκλειστικά στην κορυφή. Έτσι είναι από 0 έως n-1, η οποία είναι τι ακριβώς κάνει ο κώδικας C, εκτός του ότι είναι πολύ πιο εύκολο να δούμε ίσως. Η σχετική μπλοκ είναι δεν συμψηφιστεί με τιράντες, Αντ 'αυτού, είναι να συμψηφίσει από αυτήν την εσοχή. Έτσι, όλες αυτές οι γραμμές είναι τέσσερις χώρους πάνω προς τα δεξιά, ή σαν ένα πλάτος περίπου ελέφαντα. Και εκείνοι είναι αυτοί που είναι πρόκειται να εκτελεστεί σε αυτό για. Αν μου χάος μέχρι το εσοχή στο θέμα αυτό και ωθεί ότι η εκτύπωση πίσω στο η αρχική οδόντωση, ότι η εκτύπωση θα αφήσει το βρόχο for. Σε αντίθεση με την C, όπου εδώ στην πραγματικότητα πρέπει να μεταφερθεί η κλειστή στήριγμα γύρω. Αυτό σημαίνει ότι δεν έχετε σφάλματα που πηδούν έξω σε σας, επειδή σας βάλτε ένα στήριγμα σε λάθος μέρος. Αυτό σημαίνει ότι μπορείτε να πάρετε τα λάθη που πηδούν έξω σε σας, επειδή σας χαραγμένο ένα στοιχείο γραμμής λάθος. Γι 'αυτό κάνει εσοχές σούπερ προσεκτικοί. Ας ελπίσουμε ότι θα ήταν ότι είναι εξαιρετικά προσεκτικοί με οδόντωση σας ούτως ή άλλως, και έτσι αυτό δεν είναι ότι πολύ περισσότερο από ένα βάρος. Αλλά ένας βασικός κανόνας για την Python, και θα έχουμε ένα ζευγάρι από αυτά ότι θα περάσει μέσα από η πορεία της ομιλίας, είναι να προσπαθήσουμε φυσικά σύνταξη πριν ψάχνετε κάτι επάνω. Έτσι, αυτή η σύνταξη, για Ο αριθμός στη σειρά, Είναι πολύ διακριτικός όσον αφορά το στυλ. Πολλά πράγματα στην Python θα δούμε να παίρνετε αυτό το έντυπο. Και έτσι αν έχετε καταλήξει με ένα νέο αντικείμενο που θα ότι θα πρέπει να είναι σε θέση να επαναλάβετε σε αυτό, σε αυτή τη μορφή, Αποδεικνύεται ότι κατά πάσα πιθανότητα υποστηρίζει αυτή τη μορφή. Εμείς δεν πρόκειται να πάμε σούπερ βαθιά στο οι τεχνικοί λόγοι για τους οποίους αυτό είναι αλήθεια. Αλλά είναι ένα χρήσιμο διαίσθηση για να έχουν όταν πλησιάζετε προγράμματα Python, ότι αυτό το πράγμα είναι ακριβώς πρόκειται να λειτουργήσει. Δοκίμασέ το. Εκκίνηση στη γραμμή εντολών Διερμηνέας, δείτε αν αυτό δουλεύει, προχωρήσουμε με τα πράγματα, πριν να χρειάζεται καν να ανοίξει το Google και να πω, ποια είναι η σύνταξη για αυτό το συγκεκριμένο πράγμα; Πολλά από Python θα μπορούσατε ανακαλύψουν μόνο με την προσπάθεια. Αυτό αν είναι ακόμη πιο παρόμοια στο C τότε οι Φορς είναι. Σημειώστε ότι δεν υπάρχει καμία παρενθέσεις. Οι παρενθέσεις είναι, και πάλι, ακίνδυνο αλλά περιττή. Υπάρχει μια άνω και κάτω τελεία στο τέλος όπως ακριβώς η για βρόχους, και πάλι, οι σχετικές μπλοκ είναι εσοχή αντί συμψηφιστεί με τιράντες. Αυτό το άλλο είναι στην αρχική επίπεδο εσοχής, και σχετικού τμήματος της εσοχή και πάλι. Όσοι έργο ακριβώς όπως κάνουν στο Γ Αυτό είναι στην πραγματικότητα πάρα πολύ η ίδια. Και πάλι, εκτύπωση χάνει ένα χαρακτήρα εκτός της printf Περνάτε κάποιες χορδές. Αποδεικνύεται χορδές μπορεί είτε να χαραχτεί με εισαγωγικά ή διπλά εισαγωγικά. Δεν υπάρχει καμία διαφορά, εκτός από το ότι στο εσωτερικό της μονά εισαγωγικά, μπορείτε να χρησιμοποιήσετε διπλά εισαγωγικά με εγκαταλείψει, αντί να χρειάζεται να ξεφύγουν από όλα αυτά. Και μέσα από διπλά εισαγωγικά, μπορείτε Χρησιμοποιήστε μονά εισαγωγικά με εγκατάλειψη χωρίς να χρειάζεται να διαφύγουν. Αν θέλετε να αναμίξετε τους, μπορείτε σίγουρα κοιτάζω προς τα πάνω σε απευθείας σύνδεση πώς να το κάνουμε αυτό. Θα παρατηρήσετε ότι εδώ, Έχω περάσει στο τέλος = αυτό το πράγμα. Αυτό είναι ένα παράδειγμα ενός προαιρετικού επιχείρημα, το οποίο είναι ένα από εκείνα τα πράγματα ότι η Python υποστηρίζει ότι καθιστά αρκετά χρήσιμο. Έτσι εκτύπωσης έχει πραγματικά πολλά επιχειρήματα, τα οποία είναι συνήθως στις προεπιλεγμένες τους τιμή, αλλά εδώ έχω αποφάσισε να παρακάμψετε το ένα ονομάζεται άκρο. Ο λόγος που έχω να παρακάμψουν με ένα κενό string είναι ότι η εκτύπωση σε Python, από προεπιλογή, εκτυπώνει μια νέα γραμμή μετά το πράγμα που σας το είπε πάρα πολύ. Έτσι, αυτό είναι πραγματικά hash πρόκειται να εκτυπώστε ένα χασίς σε μια νέα γραμμή. Και αν δεν θέλω κατακερματισμού για να εκτυπώσετε μια νέα γραμμή μετά από αυτό, τότε έχω να πω δεν εκτυπώνονται μία. Αλλά, όμως, έτσι, το ένα τελευταίο πράγμα που Αυτό το πρόγραμμα απουσιάζει ότι έχει κανείς είναι ένας περιλαμβάνονται στην κορυφή. Εκτύπωση ψήνεται σε Python τόσο βασικά ότι δεν υπάρχει κεφαλίδα ή μονάδα ότι θα πρέπει να περιλαμβάνουν, αν και αν ήθελε να περιλαμβάνουν και άλλα πράγματα σε ένα σενάριο Python, Θα ήθελα να το κάνω με έναν πολύ παρόμοιο format-- οι λέξεις είναι μόνο ελαφρώς διαφορετική. Ανέφερα ότι εμείς Δεν χρειάζεστε έναν κύριο εδώ, διότι η Python αρχίζει εκτέλεσης στην κορυφή. Αν ήθελα να τυλίξει αυτό σε μια λειτουργία, I Θα το κάνω εγώ σαν this-- Θα έλεγα DEF όνομα της συνάρτησης, επιχειρήματα θα μπορούσε να πάει εδώ και θα δείτε μερικά από αυτά αργότερα, του παχέος εντέρου, και στη συνέχεια και πάλι, αυτή η ολόκληρο το συμψηφίσει μπλοκ είναι ποια είναι η λειτουργική μπλοκ για την εν λόγω λειτουργία. Έτσι, αυτό είναι ο ορισμός της συνάρτησης. Και υπάρχει μια δήλωση, στη συνέχεια, προς τα κάτω εδώ, μπορώ απλά να καλέσετε τη λειτουργία αυτή. Και πάλι, το πρόγραμμα διερμηνέας, ξεκινώντας από την κορυφή, Θα δείτε αυτό είναι ο ορισμός. Δεν θα εκτελέσει αυτό έως ότου φτάσετε εδώ, και στη συνέχεια να είναι όπως, oh τώρα που έχετε αυτό που ονομάζεται, εγώ Μάλλον θα πρέπει να το εκτελέσει. Ένα πράγμα που είναι πολύ συχνή για να δείτε αρχεία σε Python, ειδικά αρχεία Python που Τα προσιτά στο κοινό και αναπτύχθηκε by-- και να αναπτυχθεί και διατηρείται, είναι κάτι αυτής της μορφής. Αυτό συμβαίνει επειδή basically-- Python, που ξεκινούν από την κορυφή και στη συνέχεια να εκτελέσει στο κάτω μέρος, Εγώ αν είχα μόνο τον Mario φώναξε εδώ, τότε κάθε φορά που περιλαμβάνεται σε αυτό το αρχείο ένα άλλο αρχείο, γιατί ήθελα να χρησιμοποιήσω είναι η λειτουργία Mario ότι άλλο αρχείο θα έχουν επίσης αυτό το κάλεσμα για Mario σε αυτό. Και όταν έτρεξα το αρχείο, θα έθετε Mario. Έτσι, είναι πιθανό ότι έχω μόνο θέλετε να εκτελέσετε αυτό, αν έχω πραγματικά εκτελεστεί το συγκεκριμένο αρχείο. Και έτσι μπορώ να το τυλίξετε σε μια ιδίωμα, όπως αυτό, όπου το λέω, εάν το όνομα αυτής της εκτέλεσης περιβάλλον είναι το κύριο, Στη συνέχεια θέλω να κάνω αυτά τα πράγματα. Διαφορετικά, κάποιος άλλος μπορεί να use-- περιλαμβάνουν function-- μου το αρχείο μου, και μόνο για να πάρει πρόσβαση σε αυτές τις λειτουργίες χωρίς να χρειάζεται να τρέξει τα πράγματα ότι θέλω να εκτελέσει σε αυτό το αρχείο. Αυτό είναι, και πάλι, προαιρετικός αλλά πολύ συχνές. Αυτά τα πράγματα είναι είναι entirely-- ακριβώς το ίδιο μεταξύ του C και Python, Σίγουρα σε 3. Νομίζω ότι σε 2, ο φορέας εκμετάλλευσης διαίρεση μερικές φορές σου δίνει πίσω όταν επιπλέει που λειτουργούν σε ints, και είτε θελήσατε ότι ή δεν το κάνατε. Αλλά συν, μείον, και οι χρόνοι λειτουργούν ακριβώς όπως θα περιμένατε, εκτός από αυτά πάνω ελαφρώς περισσότερα είδη. Έτσι, μπορείτε να πολλαπλασιάσετε με πλωτήρες ints, και αυτά τα είδη των πραγμάτων. σετ λειτουργεί ακριβώς το ίδιο. Μπορείτε να χρησιμοποιήσετε δύο ίσα σημάδια. inequals-- μεγαλύτερο από, μικρότερο από ό, τι, αυτά τα είδη των things-- έχουν τις έννοιες που είστε εξοικειωμένοι με αυτά. Όπου C χρησιμοποιεί αυτές τις επιχειρήσεις, Python χρησιμοποιεί ελαφρώς πιο Αγγλικά αναγνώσιμο από αυτά. Έτσι, αντί για δύο, συμπλεκτικά σύμβολα, που κυριολεκτικά πληκτρολογήστε τη λέξη "και", "ή" ή όχι." Όπως και στην if-- σας σε σας υπό όρους δηλώσεις, είδαμε νωρίτερα ότι αυτή η σύνταξη της C αντιστοιχεί σε αυτή τη σύνταξη στην Python. Και δεν υπάρχει είναι πολύ διαφορετική εκεί, εκτός από ένα μικρό κομμάτι σημείων στίξης γύρω από τις πλευρές. Και πάλι, όπου C θα αλλού αν, Python χρησιμοποιεί Elif, αλλά αυτά είναι ως επί το πλείστον αλλαγές επίπεδη επιφάνεια. Επανάληψη όπως αυτό είναι συχνά γραμμένο σε αυτό το ιδίωμα στην Python. Μπορείτε να κατασκευάσει αυτό το είδος του πράγμα με έναν βρόχο, ενώ στο εξωτερικό αν θέλετε, αλλά σας Σίγουρα δεν χρειάζεται να. Και πάλι, αν ήθελε η εκτυπώστε στοιχεία ενός πίνακα μπορείτε να το κάνετε με αυτόν τον τρόπο. Ένα από τα διασκεδαστικά πράγματα για την Python όμως, είναι ότι δεν χρειάζεστε για να χρησιμοποιήσετε αυτό το υπόδειγμα, και μπορείτε να χρησιμοποιήσετε ένα λίγο πιο κομψό ένα. Λέτε για μια σε ρίου. Έτσι, αντί να πηγαίνει εδώ και τρέχει πάνω από τους δείκτες, και στη συνέχεια τραβώντας προς τα έξω μεμονωμένα στοιχεία, να σας πω το για να πραγματικά μόνο τρέχει πάνω των ίδιων στοιχείων. Και τότε οτιδήποτε και αν κάνετε στο εσωτερικό μπορεί να λειτουργήσει άμεσα σχετικά με τα στοιχεία, τα οποία είναι αρκετά διασκεδαστικό. Και θα see-- θα χρησιμοποιήσουμε ότι ιδίωμα ξανά και ξανά καθώς περπατάμε μέσα από κώδικα. Αυτό είναι, και πάλι, ένα παράδειγμα κάτι που εγώ θα καλέστε Python μαγεία, αν υπάρχουν πολύ τεχνικούς λόγους γιατί λειτουργεί. Και υπάρχουν τεχνικά πράγματα ότι Πρέπει να είναι αλήθεια για σειρά για για να δουλέψει πίσω από τις σκηνές. Το θέμα είναι ότι οι περισσότεροι τύποι η οποία θα περιμένατε να δουλέψει είχαν αυτή εφαρμόζεται για σας στην ενσωματωμένη γλώσσα. Ένα άλλο πράγμα που θα ήταν ωραίο αν αυτό λειτούργησε σε κάθε γλώσσα, αλλά υπάρχουν κάποιοι λόγοι για τους οποίους δεν μπορεί, εκτυπώστε αυτό το κορδόνι φορές αυτός ο αριθμός. Βγάζει στην Python, αυτό ακριβώς κάνει τι θα θέλατε, το οποίο είναι μόνο διασκέδαση, και σημαίνει ότι μπορούμε πράγματι μείωση αυτού του προγράμματος, και πάλι mario.c. Αντί επανάληψη πολλά, μπορούμε απλά να πω, θέλω κάποια αριθμός των χώρων, Θέλω τον αριθμό των hashes, και μερικά hashes στο τέλος. Και πάλι, χρησιμοποιούμε αυτή τη μορφή. Εδώ, είμαστε περνώντας ένα μεταβλητό αυτό τον τρόπο. Και πάλι, δεν χρειάζεται να πω τι είδους μεταβλητή είναι, και η μοναδική φορά που θα να πάρετε τα λάθη είναι κατά το χρόνο εκτέλεσης. Όταν κάποιος προσπαθεί να περάσει κάτι, αυτό θα τεθεί σε λειτουργία μια χαρά. Αν σφήνα εδώ, επειδή αυτή δεν είναι η πράγμα που μπορείτε να δημιουργήσετε σειρές πάνω, Θα πάρω ένα σφάλμα χρόνου εκτέλεσης εκεί, και θα πρέπει να το debug με αυτόν τον τρόπο. Αλλά εν τω μεταξύ, δεν έχω να είναι πολύ προσεκτικοί σχετικά με το τι παίρνει πέρασε, εφ 'όσον στην πραγματική εκτέλεση λειτουργούν όλα πολύ καθαρά. Θα μπορούσα να κάνω ακόμη και αυτό λίγο καθαρότερο χρησιμοποιώντας ένα συγκεκριμένο ενσωματωμένη λειτουργία στις χορδές, το οποίο είναι Στοίχιση δεξιά. Αυτή είναι μόνο μια χρήσιμη λειτουργία που βρίσκονται γύρω από τη βιβλιοθήκη. Είναι στην τεκμηρίωση αν πάτε και να την αναζητήσουμε. Και λέω, αλλά Πάω να έχουν Αυτή η σειρά, κάποιος αριθμός των hashes, και θα ήθελα να δικαιολογήσει το δικαίωμα it-- μαξιλάρι έξω με κενά για να είναι αυτό το μήκος. Και πάλι, αυτό είναι το τεκμηρίωση, η οποία φέρνει ΕΜΕΙΣ-- Θα κάνουν κλικ μέσω these-- το οποίο μας φέρνει στη δεύτερη κανόνας μας για Python-- πρότυπη βιβλιοθήκη μέθοδοι λειτουργίας είναι οι φίλοι σου. Και είναι συχνά αξίζει τον κόπο σας να αρχίσετε να ψάχνετε για Αναρωτιέμαι αν υπάρχει ένα πράγμα που κάνει ακριβώς αυτό. Υπάρχει πιθανώς είναι. Αν θέλετε να pad από μια σειρά, αν θέλετε ήθελα να εκμεταλλευτώ την πλάτη το μισό από μια σειρά, αν θέλετε ήθελα να πραγματοποιήσετε αναζήτηση από μια χορδή, εάν θα θέλατε να συνθλίψει μερικά πράγματα μαζί με μια σειρά με κόμματα μεταξύ τους, υπάρχουν πρότυπη βιβλιοθήκη λειτουργίες για να γίνει αυτό. Και αυτό κάνει τη ζωή σας ευκολότερη, αν τα χρησιμοποιήσετε αντί να ξεδιπλώσει τα πάντα για τη δική σας σε πέντε γραμμές κώδικα εδώ, πέντε γραμμές κώδικα εδώ. Αυτό αρχίζει πραγματικά σε προσθέσετε έως και σε πραγματικό χρόνο. Ένα από τα ενδιαφέροντα πράγματα για το πώς αυτό γίνεται ονομάζεται. Θα παρατηρήσετε ότι υπάρχει μια τελεία πράγμα. Έχω κάποιο αντικείμενο στα αριστερά, και στη συνέχεια κάλεσα μια τελεία λειτουργία. Αυτό είναι ένα από τα παραδείγματα που Python χρησιμοποιεί για την προσάρτηση μεθόδους για αντικείμενα. Θα μιλήσουμε για το τι αυτό είναι πολύ σύντομα, στο τέλος, αλλά γνωρίζουμε ότι μπορούμε και οι δύο να λειτουργούν τα πράγματα με τη λήψη αυτό το πράγμα λέγοντας dot ό, ή με την κλήση μια λειτουργία που λαμβάνει ότι το αντικείμενο και κάποια άλλα επιχειρήματα. Έτσι, αυτοί είναι και οι δύο τρόποι με τους οποίους οποίο γίνονται τα πράγματα στην Python. Και αν ένα συγκεκριμένο λειτουργικότητα υλοποιείται σε αυτό το ύφος ή αυτό στυλ είναι κάτι που θα πρέπει να κοιτάζω προς τα πάνω μέχρι να πάρετε ένα κολλάει για τα οποία το ένα είναι πιθανό να πέσουμε. Υπάρχει μια περισσότερο ή λιγότερο συνεκτική Η φιλοσοφία πίσω από την Python ότι θα απορροφήσει ως επί το πλείστον γράφοντας πολλά σε αυτό. Σε κάποιο σημείο, που ένας από αυτούς κάτι που θα πρέπει να υλοποιηθούν ως γίνεται φυσική. Προς το παρόν, είναι απλώς κάτι όπως μπορείτε να μάθετε να καταλάβω κάθε επιμέρους πράγμα. Έτσι πρότυπη βιβλιοθήκη λειτουργίες είναι οι φίλοι σου, και θα σας αφήσει να γράψει τα πράγματα ότι καταλαμβάνουν πολύ χώρο αυτό πραγματικά σύντομα, πραγματικά όμορφα. Και αυτό είναι πραγματικά ίσως περισσότερο ευανάγνωστο, θα έλεγα, από το πρόγραμμα C εκεί. Για να μην αναφέρουμε το γεγονός ότι είναι τόσο σύντομη μπορείτε να χωρέσει μια ολόκληρη ελέφαντα στο χώρο που έχουμε αποθηκεύσει. Ένα άλλο πράγμα, αυτό είναι μια υλοποίηση του Mario που είναι τελεία C, η οποία νομίζω ότι είναι η συντομότερη μπορείτε να το πάρετε. Δεν έχει πάρει το int, αλλά είναι δύσκολο κωδικοί η αξία των 10 τον ίδιο τρόπο που αυτό κάνει. Αποδεικνύεται ότι αυτό το ένα σε ρολόγια 84 χαρακτήρες, ενώ η Python είναι 64. Και αυτό είναι απείρως περισσότερο αναγνώσιμη από αυτά τα σκουπίδια εδώ. Έτσι Python είναι πιο αποτελεσματική στο χώρο. Είναι ελαφρώς λιγότερο αποτελεσματική στο χρόνο, αλλά όχι από πολύ. Οι λίστες είναι ένα σημαντικό πράγμα στην Python. Δεν έχουμε δει, αλλά λειτουργούν σαν πίνακες κάνουμε σε C. Έτσι, εδώ, μπορείτε να τα δηλώσει, μπορείτε να τα περάσουμε σε ένα πράγμα. Τώρα πλατείες είναι κάτοχος σειρά από αυτά τα πράγματα. Και πάλι, δεν έχουμε δηλωθεί ως τύπο, αλλά αν προσπαθήσετε ποτέ να το χρησιμοποιήσει, κάτι που θα περιμένατε να εργαστούν σε μια σειρά ακεραίων πρόκειται να εργαστεί σε μια σειρά ακεραίων. Αυτό είναι ένα πράγμα το οποίο απολύτως δεν μπορεί να κάνετε σε C, επειδή η μνήμη είναι τόσο τα χέρια πάνω, αλλά είναι πολύ εύκολο να κάνουμε σε Python. Αν θέλω σειρά μου να είναι μεγαλύτερο, μπορώ επισυνάπτει ένα στοιχείο σε αυτό και είναι μια χαρά. Τι συμβαίνει πίσω από τις σκηνές; Ο διερμηνέας θα πάει έξω και να πάρετε κάποια μνήμη, και ίσως αυτό θα πάρει ένα λίγο επιπλέον μνήμη, γι 'αυτό δεν έτσι δεν έχω να realloc κάθε φορά. Αλλά πόσο έχουν περισσότερα μνήμη χρειάζεται; Αυτό δεν είναι αποφάσεις ότι θα πρέπει να κάνει, Οι αποφάσεις αυτές οι διερμηνέα πρόκειται να κάνει. Εδώ βλέπουμε εύρος μπορεί λαμβάνει δύο επιχειρήματα, Αλλά είναι ακόμα πρόκειται να είναι χωρίς αποκλεισμούς από την κορυφή, έτσι προσθέτουμε 1 εκεί. Αυτό είναι ένα ιδίωμα, το οποίο είναι ακόμη πιο έξυπνος τρόπος για να γράψει τα πράγματα όπως αυτό. Λέγεται λίστα κατανόηση, και εδώ αυτό που λέμε Είναι Θα ήθελα να θέσει σε i τετράγωνο για κάθε τιμή του i σε αυτό το εύρος. Αυτό το πράγμα σχετικά με το δικαίωμα θα μπορούσε να είναι ένα άλλο συστοιχία, και αυτό το πράγμα στα αριστερά να είναι οποιαδήποτε συγκεκριμένη λειτουργία ότι θα λάβει i ως μεταβλητή και να μου δώσει κάποιες αποτέλεσμα. Τι Πάω να κάνουμε είναι, Πάω να κατασκευάσει μια σειρά που είναι όλα αυτά τα πράγματα για κάθε τιμή σε αυτό το εύρος. Και αυτό είναι εξαιρετικά κομψό, σούπερ σύντομη, και αυτό είναι πολύ σαφές τι σημαίνει. Αυτό είναι ένα από τα things-- αυτό είναι και πάλι, of-- ένα πολύ αντιπροσωπευτικό της λόγους που οι άνθρωποι όπως Python. Αν σας αρέσει προγραμματισμού όπως αυτό, τότε Python είναι μια γλώσσα που θα θέλατε να μάθετε. Και πάλι, υπάρχουν τεχνικές λόγοι για τους οποίους αυτό λειτουργεί. Αλλά όσο είμαστε ενδιαφερόμενο, λιγότερο ή περισσότερο δεν με νοιάζει. Έτσι, εάν θέλετε να εκτυπώσετε τις λίστες, μερικά από τα ίδια ιδιωμάτων είναι χρήσιμα. Για i σε αυτή την περιοχή, θα μπορούσαμε δείκτη από όλα τα πράγματα και στη συνέχεια να τα εκτυπώσετε όλα. Και θα δείτε len εδώ. Αν έχετε ποτέ ήθελε να πάρει το μήκος της συστοιχίας, αυτό είναι πολύ εύκολο στην Python, Είναι πολύ δύσκολο σε C. Αυτό θα εκτυπώσετε ακριβώς ό, τι θα περιμένατε να. Θα μπορούσαμε, επίσης, όπως έχουμε δει στο παρελθόν, επαναλάβει πάνω από τα στοιχεία του πίνακα άμεσα, και στη συνέχεια να μιλάμε μόνο για τους, αντί να έχουν τον δείκτη πίσω στην συστοιχία κάθε φορά. Και αυτό είναι ένα πράγμα που μπορείτε να κάνετε. Έτσι σε C, αν σας ρωτήσω για κάτι όπως αυτό, εκτύπωση θα έλεγα, αυτό είναι μια σειρά ακεραίων. Αυτό δεν είναι σίγουρα ένα string, δεν μπορώ να το εκτυπώσετε. Python περισσότερο ή λιγότερο, δεν με νοιάζει. Είναι σαν, είναι ένας τρόπος εκεί που θα μπορούσε να μετατραπεί σε αυτό σε μια σειρά; Ναι, θα το κάνω. Και γι 'αυτό θα εκτυπώσετε ακριβώς αυτό έξω. Αυτό σημαίνει ότι μπορείτε να κάνετε κάνετε τα πράγματα αυτά like-- είναι περισσότερα από τα σκληρά μέρη του παιχνιδιού των δεκαπέντε, γραπτή πολύ σύντομα στην Python. Θα δείτε ότι δεν υπάρχει λίγο of-- εδώ Έχω ρίξει έναν ακέραιο σε μια σειρά, και έχω να το κάνουμε αυτό με το χέρι. Και Πάω να προσθέσετε σε μια άλλη συμβολοσειρά, ή αλλιώς Python μπερδεύεται. Αλλά αν όταν είστε προσθέτοντας μια συμβολοσειρά σε ακέραιο, είμαι υποθέτω να πάρει ένα ακέραιο πίσω ή μια σειρά πίσω; Αλλά και πάλι, αν απλά καλέστε str σε ένα πράγμα, και θα μπορούσε σε κάθε πιθανή κόσμος να μετατραπεί σε μια σειρά, κατά πάσα πιθανότητα θα είναι μετατρέπεται σε μία στοιχειοσειρά. Εδώ, βλέπουμε τη χρήση του ένθετη λίστα κατανόηση στα αριστερά, κάποια ευρετηρίαση, η οποία είναι ακριβώς όπως θα πρέπει να χρησιμοποιούνται σε αυτό, καθώς και ορισμένων εκτυπώσεων έξω από τα πράγματα. Και πάλι, έχουμε καθορίσει κάποια λειτουργίες και θα τους καλέσει τα κάτω στο κύριο όταν έχουμε πραγματικά να πάρετε το αρχείο. επιστροφή λειτουργεί ακριβώς όπως θέλετε Αναμένουμε από την εργασία με C. Βρείτε, μπορούμε να δημιουργήσει τα πράγματα όπως this-- εδώ είναι η κατανόηση λίστα υπάρχει μια ανάθεση σε μια μεταβλητή, και μπορούμε να το κάνουμε πραγματικότητα ακόμα πιο εύκολη. Δεν χρειάζεται να γράψω αναζήτησης, επειδή ενσωματωμένη με τη γλώσσα είναι αν αυτό το πράγμα είναι σε αυτή τη σειρά. Επιστροφή αλήθεια, αλλιώς επιστρέφει false. Έτσι, αυτό είναι το σύνολο των εύρημα. Το σύνολο του είδους περιλαμβάνει την κλήση του είδους, η οποία is-- υπάρχουν υλοποιήσεις αυτό χτίστηκε σε ορισμένες βιβλιοθήκες C. Αν θέλετε αυτό το είδος της προς τα πίσω, θα να παρακάμψετε αυτό το προαιρετικό επιχείρημα αντίστροφη με μια αληθινή. Και αν θέλετε να ταξινομήσετε τα πάνω χορδές, που είναι ενσωματωμένο καθώς και. Έτσι, αυτό δεν σημαίνει ότι αυτά είναι πράγματα που πρέπει να κάνουμε κάθε μέρα, αλλά η ιδέα είναι ότι αυτό είναι η φιλοσοφία της Python, ότι όλα αυτά τα πράγματα τα οποία θέλετε είδος θέλουν να κάνουν είναι built-in. Και το πιο τυπικές λειτουργίες, τόσο το είδος, το μήκος, ό, υποστηρίξει πιο λογικά λογική είσοδο. Μπορείτε κλήση len σε μια σειρά το ίδιο τρόπο που θα πραγματοποιήσετε len σε μια σειρά. Μπορείτε να ταξινομήσετε multiply-- χορδές με τον ίδιο τρόπο μπορείτε να ταξινομήσετε πίνακες. Οι περισσότερες βασικές λειτουργίες, ότι θέλουν να δημιουργήσουν, και τα περισσότερα από τρίτους βιβλιοθήκες που οι άνθρωποι την κατασκευή, επειδή είναι μίμηση ο σχεδιασμός της πρότυπης βιβλιοθήκης, μπορούν να κληθούν όλα όσα είστε όπως, για ποιο λόγο δεν λειτουργήσει αυτό ακριβώς, σε C. Περισσότερο ή λιγότερο, θα λειτουργήσει στην Python επειδή οι άνθρωποι εργάζονται πίσω από το σχήμα τι είναι ένα πράγμα και στη συνέχεια να λειτουργήσει κατάλληλα για αυτό. Έτσι και πάλι, τεχνικό υπόβαθρο, αλλά το κάνει τη ζωή μας πιο εύκολη και προγραμματιστές. Τόσο εδώ είναι το αρχείο I / O. I / O αρχείο έχει πολλά μικρά πράγματα που κάνουν την περίπλοκη, και έτσι υπάρχουν πόροι σε απευθείας σύνδεση, αλλά με λίγα λόγια, Σας καλούν ανοικτή σε ένα αρχείο το όνομα με έναν συγκεκριμένο τύπο. Έτσι ώστε να είναι διαβάσει, διαβάστε και γράφουν, γράφουν ή επισυνάψει. Μπορείτε να διαβάσετε ένα συγκεκριμένο αριθμό χαρακτήρες και να εκτυπώνετε εκείνους, θα πάρετε Γεια σας! Θέλω να πω, όπως και το αρχείο αυτό είχε Γεια σας! Σε αυτό, καλέστε για να διαβάσετε, και τι θα πάρετε πίσω είναι μια σειρά που έχει όλα του υπόλοιπου της συστοιχίας, ή το σύνολο του υπόλοιπου αρχείου. Αν καλέσετε διαβάσετε ξανά, είστε στο τέλος του αρχείου, και έτσι δεν παίρνετε τίποτα και έτσι θα κλείσει. Και πάλι, αυτό είναι .close παρά Κλείσιμο αρχείου, όπως θα ήταν σε C. Αυτό είναι περισσότερο ή λιγότερο επειδή f είναι μια πράγμα, και θα θέλατε για f για να κλείσει. Αλλά η βασική αρχείο I / O δεν είναι ιδιαίτερα περίπλοκη. Και πάλι, αν θέλετε να ανοίξετε ένα αρχείο, εάν θέλετε να διαβάσετε μια συγκεκριμένη γραμμή, μπορείτε να πάρετε από ειδικούς line-- υπάρχει ενσωματωμένο ins για αυτό. Αν θέλετε να γράψετε ένα πράγμα, μπορείτε να γράψετε αυτό. Αν θέλετε να γράψετε των ατομικών τσιμπήματα, μπορείτε να γράψετε εκείνους. Και αν θέλετε να μετακινηθείτε πάνω από τις γραμμές ενός αρχείου ατομικά, όπως κάναμε σε ένα κομμάτι από Πριν από λίγες εβδομάδες, μπορείτε να το κάνετε αυτό για να. Και πάλι, τα περισσότερα αντικείμενα που θέλετε ήθελε να είναι σε θέση να επαναλάβει πάνω υποστήριξη διάσχιση των στοιχείων τους. Σε Pythons, ένα αρχείο είναι ίσως ένα πράγμα που Θα ήθελα να επαναλάβει πάνω γραμμή προς γραμμή. Αν ήταν ένα λεξικό των λέξεων και ήμουν προσπαθεί να πάρει εκείνα τα επιμέρους λόγια έξω, τότε, μέσα σε αυτό το βρόχο, γραμμή πρόκειται να είναι κάθε λέξη με τη σειρά του και αυτό πρόκειται να εκτελεστεί για κάθε γραμμή στο αρχείο μέχρι το τέλος του αρχείου. Και πάλι, αν εκτυπώνεται κάθε γραμμή, οι γραμμές έρχονται με νέες γραμμές, έτσι είμαι καθορισμό της τελικής πίσω σε ένα πράγμα σαν αυτό. Στη συνέχεια, θα έπαιρνα τα περιεχόμενα του αρχείου μου. Το δεύτερο πράγμα που λειτουργεί σε μερικοί τρόποι, όπως καταλόγους, και κατά κάποιο τρόπο σαν κάτι ουσιαστικά πιο ισχυρό, είναι λεξικά, τα οποία είναι πραγματικά δροσερό στη χρήση, αλλά είναι βασικά hash πίνακες στη μεταμφίεση. Μπορείτε να δημιουργήσετε έναν χρησιμοποιώντας ακριβώς δύο χαρακτήρες, το οποίο είναι φοβερό αν προσπάθησε να εφαρμόσει η hash πίνακα για σύνολο το πρόβλημά σας, Ξέρετε πολύ πόνο που μπορεί να είναι. Αλλά οι άνθρωποι έχουν κάνει αυτό, και το κάνει τόσο καλά, ότι δεν χρειάζεται να ανησυχείτε για αυτό πια. Στη συνέχεια, μπορείτε να εισάγετε τα επιμέρους πράγματα. Hash tables-- ή λεξικά Δεν κάνει ιδιαίτερα νοιάζει τι είστε αποθήκευση σε αυτά. Έτσι, εάν ορισμένες καταχωρήσεις είναι αριθμοί, και ορισμένες καταχωρήσεις είναι λίστες, εάν ορισμένες καταχωρήσεις είναι άλλα λεξικά, και ορισμένες καταχωρήσεις είναι χορδές, Python δεν κάνει πολύ φροντίδα. Και πάλι, αν πάτε σε αυτό περιμένουμε μια σειρά και τι μπορείτε να πάρετε πίσω είναι ένας πίνακας, αυτό είναι το πρόβλημά σας. Και ίσως αυτό είναι το ελάττωμά του όποιος Νόμιζα ότι ήταν να βάλουμε τα πράγματα στο λεξικό, ίσως αυτό ήταν που. Αν αυτό ήταν κάποιος άλλο, ελπίζω να ήταν συμπεριφέρθηκε καλά για το τι πήγαινε στο λεξικό και δεν άφησε κανένα παγίδες για να πέσουμε. Όμως, οι λειτουργίες να σας δώσει πίσω συμπεριφέρθηκε καλά πράγματα. Έτσι λένε αυτό επιστρέφει υποστηρίξει ένα λεξικό των χορδών, τότε όλα θα πάμε για να βγούμε από το είναι μια συμβολοσειρά. Αν κάνετε κάποια από αυτό και ταξίδια You Up, επίσης, ότι θα μπορούσε να είναι για σας. Python σας δίνει σίγουρα αρκετά σχοινί για να κρεμάσει τον εαυτό σας, αν θέλετε. Τώρα μπορούμε να εκτυπώσετε μεμονωμένες στοιχεία αυτό και αυτό επιστρέφει ακριβώς αυτό που θα περίμενε κανείς. Ακριβώς ό, τι θα περίμενε κανείς, υποθέτω, Είναι μια φράση που είμαι με τη χρήση πολύ, αλλά αυτό είναι περισσότερο ή Κάπως έτσι λειτουργεί η Python. Αν σας ρωτήσω για ένα πράγμα το οποίο δεν είναι αυτό, η Python θα ρίξει ένα λάθος και θα σας να βγείτε από το πρόγραμμα που θα ήταν. Θα πραγματικά να εκτυπώσετε περισσότερες πληροφορίες από ότι, αυτό θα επισημάνω you-- αυτό θα προσθέστε μια γραμμή, και έτσι. Και, πάλι, ίσως θέλουμε για να μετακινηθείτε πάνω λεξικά και να βρείτε όλα τα πράγματα σε αυτό. Εδώ έχουμε επανάληψη πάνω δύο πράγματα ταυτόχρονα. Και έτσι θα το κάνουμε με ένα κλειδί, τιμή, αλλά στη συνέχεια να εκτυπώσετε από όλα αυτά. Και αν θέλαμε να cast-- Εάν βρισκόμαστε πραγματικά αυτό, θα είχαμε κάποια προβλήματα επειδή on-- όταν πήγαμε με τον David, δεν θα μπορούσε να add-- αν δεν το κάναμε πέταξε σε μια σειρά πρώτη, δεν θα μπορούσαμε να προσθέσουμε ότι η συστοιχία της χορδές σε μια σειρά. Αλλά αν το ρίχνει σε ένα string, θα έχουμε κάτι όπως αυτό, το οποίο είναι ίσως ό, τι θα θέλαμε να διαβάσετε. Και αυτό είναι ορθογράφος. Εμείς απλά διαβάζονται τα πράγματα. Έτσι, μπορούμε να διαβάσουμε στο μεμονωμένες λέξεις όπως γραμμές. Θα κόψουν το τελευταίο πράγμα, έτσι παχέος εντέρου μείον 1 κατεβάζει από το τελευταίο πράγμα που we-- ο τελευταίος χαρακτήρας μιας συμβολοσειράς. Θα πω. Εντάξει, κάθε ένας από αυτούς παίρνει εισάγεται σε αυτό το λεξικό, χαρτογράφηση σε μία τιμή 1. Δεν Κάνουμε ιδιαίτερα ενδιαφέρονται για εκείνο το ένα, αλλά είναι εκεί μόνο για να πει, OH καλά, αυτό το πράγμα θα βάλω στο λεξικό. Επειδή αργότερα τι είμαστε πρόκειται να κάνουμε είναι να είμαστε Θα πείτε, καλά, αν είναι στο λεξικό καθόλου. Και πάλι, αυτός ο έλεγχος για των μελών είναι μέχρι λειτουργίας χρησιμοποιώντας ένα τελείως διαφορετικό αλγόριθμο από ό, τι θα σε μια λίστα, αλλά καλούμε τον ίδιο τρόπο, η οποία είναι μερικές από εκείνη την επικάλυψη ζάχαρης Python τα πράγματα, ώστε να είναι πιο εύκολο στη χρήση. Και πάλι, έχουμε δει τα πράγματα όπως αυτό πριν. Αυτό είναι βασικά βρει, ή Είναι ακριβώς η ίδια σύνταξη ως βρει, αλλά λειτουργεί πάνω από ένα εντελώς διαφορετική δομή. Και δεν με νοιάζει ιδιαίτερα. Έτσι, αυτά είναι τα πράγματα που σας κλήθηκαν να εφαρμόσουν για ορθογράφος. Με αυτό το ρυθμό, θα πάμε για να πάρει περισσότερο ή λιγότερο όλες τις psets γίνει. Κοινό: Έτσι ώστε βασικά ακριβώς έρχεται πίσω όπως σωστά γραμμένη αν δεν το κάνει ταιριάζουν με κάτι στο λεξικό; ROSS RHEINGANS-YOO: Ναι, ναι. Και έτσι, αυτό είναι ένα προσαρμογή ενός προβλήματος που το οποίο σας ζητά να κάνετε ακριβώς αυτό. Κοινό: Γιατί είναι η γραμμή μείον 1 εκεί; ROSS RHEINGANS-YOO: Λοιπόν όταν είστε επανάληψη πάνω από ένα αρχείο ζητώντας με γραμμές, οι γραμμές έρχονται με ένα νέο χαρακτήρα γραμμής στο τέλος του it-- ο μείον 1 Είναι ακριβώς για να ψωνίσετε εκείνους off. Και αυτό είναι ένα ιδιαίτερα ευέλικτο τρόπος ευρετηρίαση σε πράγματα. Έτσι, εάν έχετε ένα string, και θα θέλατε, αλλά είμαι πρόκειται να ξεκινήσει σε τρεις χαρακτήρα και Πάω να πάει μέχρι το τέλος. 3 του παχέος εντέρου θα το κάνει αυτό για σας. Εάν είστε όπως, θέλω να ξεκινήσω με το αρχίζουν και να πάει στο τελευταίο μείον 1 χαρακτήρα, του παχέος εντέρου μείον 1. Και αν ήθελε να πάει από η τρίτη στο μείον κατ 'αρχάς, τότε θα έλεγα ότι 3 μείον 1. Επιπλέον, αν θέλετε να αναπροσαρμόσετε σε πράγματα αρχής γενομένης από το πίσω μέρος, απλά δείκτη με αριθμούς μείον. Και επειδή, όπου C θα εκραγεί ή ίσως ταΐζετε άλλη μνήμη δεν είχατε πρόσβαση σε ακούω να μπορούμε να πούμε μείον 1 είναι το τελευταίο, αλλά 1 χαρακτήρα της συμβολοσειράς. Οι ενότητες είναι οι version-- αναλόγων προς τις βιβλιοθήκες σε C και είναι χρήσιμες για πολλά πράγματα. Πολλά από τα πράγματα που θα ήθελα να κάνω σε Python, Εκτός από την απλή χειρισμός των μεταβλητών, Εάν θέλετε να συνδέσετε σε η μεγαλύτερων βιβλιοθηκών με τα μεγαλύτερα διεπαφές και περισσότερα δυνατότητες για την αλληλεπίδραση με άλλα μέρη του κόσμου. sys είναι ένας από εκείνους με μια δέσμη εργαλείων που είναι χρήσιμα για την αλληλεπίδραση με το ίδιο το σύστημα και θα το εισαγάγει, όπως sys εισαγωγής. Υπάρχει περισσότερη τεκμηρίωση από αυτό, το οποίο θα μπορούσε να πάει εδώ, ή θα μπορούσατε να βρείτε στο Google από googling Python sys. Εσείς γράφετε εισάγετε. Ο πρώτος σύνδεσμος θα είναι η τεκμηρίωση στην Python 2, ο δεύτερος σύνδεσμος πρόκειται να είναι η Python τεκμηρίωση 3. Και αν γράψαμε ένα αρχείο που φαινόταν όπως this-- Εάν ειδικότερα, είμαστε κοιτάζοντας λειτουργούν σε επιχειρήματα της γραμμής εντολών, όπως μάθαμε να κάνουμε πολύ από νωρίς σε αυτή την κατηγορία. Αυτό δεν είναι δύσκολο. Μπορείτε να πάρετε έξω argv, το οποίο είναι ένα από εκείνα τα πράγματα το οποίο υλοποιείται από το sys. Δεν είναι ενσωματωμένη στην βάση το πακέτο, αλλά και πάλι, μπορεί να παρατείνει κατά την εισαγωγή ότι η λειτουργία από το sys. Θα το ονομάσουμε sys. οτιδήποτε. Εδώ υπάρχει argv. Είναι στην πραγματικότητα δεν υπάρχει argc στο sys, γιατί μπορεί να το πάρει τόσο εύκολα με την κλήση len. Στη συνέχεια εκτυπώνεται ότι έξω, τότε θα έτρεξε στο τερματικό echo-args.py μας. Έχουμε πάρει πίσω μια σειρά, η οποία Είναι αυτό το πρώτο επιχείρημα. Και πάλι, αυτό είναι argv 0, η οποία είναι η το όνομα του πράγματος που λέγεται πήρε. Αν λέγαμε εμείς με πρόσθετες επιχειρήματα, είχαμε πάρει το πίσω μέρος τους. Αυτός είναι ένας τρόπος για να πάρει επιχειρήματα της γραμμής εντολών. Αν θέλετε σημαίες όπου στρίβετε συγκεκριμένα πράγματα ή παράκαμψη μια συγκεκριμένη προεπιλογή, argparse είναι φίλος σου. Και πάλι μπορείτε να βρείτε αυτή την online σε python argparse στο Google. Υπάρχουν μια-δυο χρησιμότητας ενότητες που θα βρείτε τον εαυτό σας χρησιμοποιώντας και πάλι, αν δαπανούν κάθε χρόνο αυτής της γλώσσας εισαγωγής jsons για την ανάγνωση μέσα και έξω από json αρχεία, δεν είναι ότι περίπλοκη. Μπορείτε να ανοίξει ένα αρχείο, σας κάλεσε json.load σε αυτό το αρχείο και μπορείτε να πάρετε πίσω ένα πράγμα. Τι είναι αυτό το πράγμα; Είναι ένα αντικείμενο JSON. Σε περίπτωση που η JSON έχει σειρά, η Python έχει συστοιχίες. Σε περίπτωση που έχει JSON συνειρμική συστοιχίες, της Python λεξικά, χορδές, και τους αριθμούς, και ούτω καθεξής. Θέλετε να απορρίπτουν ότι έξω, ανοίξει ένα νέο αρχείο, μπορείτε να καλέσετε χωματερή, και τα φορτία και να χωματερές πηγαίνετε μέσα και έξω από χορδές. Ομοίως, τουρσί φώναξαν σε βασικά το ίδιο interface. Είναι ελαφρώς πιο χρήσιμο αν είστε ντάμπινγκ Python αντικείμενα. Έτσι, αν έχετε ποτέ ήθελε να σώσει μια έκδοση της τρέχουσας κατάστασης μιας μεταβλητής για μια μελλοντική εκτελέστε το πρόγραμμα σας, τουρσί είναι της Python βιβλιοθήκη για να γίνει αυτό. Αν έχετε οποιοδήποτε είδος του μεταβλητή που μπορεί να αναγράφεται σε σαν λέξεις και τους χαρακτήρες και bytes-- όπως αυτό το λεξικό, θα μπορούσαμε να γράψουμε κάτω, θα μπορούσε να το γράψετε ως σαν ένα αντικείμενο JSON, το οποίο ήταν κυριολεκτικά αυτοί οι χαρακτήρες. Και τότε θα ήταν πολύ εύκολο για έναν άνθρωπο να το ανοίξετε up-- ανοίξει και να το διαβάσετε. Αν δεν το κάναμε ιδιαίτερα νοιάζονται για τους ανθρώπους την ανάγνωση, θα μπορούσαμε να συσκευάζουν ακόμη πιο αποτελεσματικά σε μορφές που θα μπορούσε αργότερα να αποσυμπιεστούν ή ότι θα μπορούσαν αργότερα να διογκωθεί. Και αυτό εξοικονομεί 80% της χώρο που θα μπορούσε αντικείμενα σας πάρετε αν τα έγραψε έξω χειρόγραφος. Μπορείτε να καλέσετε τουρσί πολύ το ίδιο τρόπο-- χωματερή, το φορτίο, και, στη συνέχεια, μπορείτε να πάρετε τα πράγματα σας πίσω. Έτσι, αν είστε πολύ γράψιμο σύντομα προγράμματα Python που θέλετε να αποθηκεύσετε κατάσταση, και στη συνέχεια διαβάστε τους πίσω αργότερα, τα πράγματα όπως αυτό είναι οι φίλοι σου. Αυτό θα μπορούσε πολύ χωματερή τους εύκολα και JSON. Τα περισσότερα αντικείμενα Python μπορεί να πετάξει έξω το JSON εάν υπάρχει οποιαδήποτε ελπίδα ότι δομικά θα μπορούσαν να εκπροσωπούνται με αυτόν τον τρόπο. Αυτά είναι μόνο η κορυφή του παγόβουνου σχετικά με τις ενότητες που είναι χρήσιμα. Έτσι SYS, os, πολυεπεξεργασία, είναι το είδος των βασικών workhorses για τα πράγματα θα πρέπει να αλληλεπιδρούν με το λειτουργικό σύστημα σύστημα αρχείων., όπως os.isfile, os.isdirectory, os.makefile, αυτοί είναι φίλοι σας. Αν θέλετε να αλληλεπιδράσετε με έναν συγκεκριμένο τύπο αρχείου, JSON, τουρσί, CSV. Αν θέλετε να αλληλεπιδράσετε με το web σελίδες, η urllib για να πάρει http σελίδες. bs4-- BeautifulSoup-- είναι ένα θαυμάσιο πρόγραμμα ανάλυσης για html. Θα τρέξει σε έναν html και σας πάρετε αυτό το ένθετη αντικείμενο πίνακα τώρα, το οποίο μπορείτε να διασχίζουν πάνω Lookin, όπως με απλά ψάχνουν για αν είναι, σε, το οποίο είναι φανταστικό. Υπάρχει μια δέσμη των πακέτα για running-- για να κάνει ιδιαίτερα πράγματα Mathy. Έτσι, αν θέλουμε να πολλαπλασιάσουμε, αντιστρέψετε, να μετατρέψει μήτρες, NumPy χρησιμοποιείται από τους ανθρώπους όλων όλο τον κόσμο για αυτό. SciPy είναι ακόμα πιο χρήσιμη εργαλεία προς αυτή την κατεύθυνση. sklearn-- μηχανική μάθηση, επεξεργασία φυσικής γλώσσας, σούπερ χρήσιμα πράγματα, αποκτά υλοποιηθεί σε Python όλη την ώρα. Και πάλι, παίρνει ελαφρώς πλέον να write-- συγγνώμη, χρειάζεται λίγο περισσότερο χρόνο για να τρέξει, αλλά ο λόγος ότι η πραγματική μηχανικοί έχουν την τάση χρησιμοποιήσετε την Python είναι γιατί έχετε την τάση να είναι μπλοκάρει σου γράφω τον κώδικα, όχι από τον υπολογιστή σας να λειτουργεί τον κωδικό. Έτσι, αν θέλει κάποιος να γράψει ένα πρόγραμμα, το οποίο πολλοί άλλοι άνθρωποι πρόκειται να χρησιμοποιήσετε για πάντα, όπως το Linux, σας θα μπορούσε να το γράψει στο C. Αν ήσασταν πρόκειται να γράψω μια μηχανή υπολογισμού, μπορείτε να γράψετε στην Python, αν χρειάζεται να αλλάζει κάθε δυο μήνες. Μερικοί άνθρωποι θα το γράψει σε C επειδή είναι έτσι. Έτσι έχουμε δει sys εισαγωγής ως έναν τρόπο να πάρει τα πράγματα να πάρει μονάδα στο πρόγραμμά σας. Μπορείτε επίσης να εισάγετε ως ένα ψευδώνυμο, αν θέλετε. Πάλι πολυεπεξεργασία είναι ένας πόνος για να πληκτρολογήστε έξω κάθε φορά, έτσι όπως την εισαγωγή MP και, στη συνέχεια, ανά πάσα στιγμή να χρησιμοποιήσετε στο πρόγραμμα, θα πείτε mp.process, ή ό, τι έχετε. Αν θέλετε εισαγωγή μόνο ένα πράγμα, έτσι urllib έχει ένα πράγμα που ονομάζεται αίτημα, οπότε μπορείτε απλά να εισάγετε αυτό. Αργότερα, δεν θα το επικαλεστούν ως urllib.request, αλλά μόνο ως αίτημα από μόνο του. Και μπορείτε να εισαγάγετε τα πάντα από μια μονάδα, αν θέλετε. Αυτό δεν είναι μερικές φορές μια καλή idea-- Αυτό συνήθως δεν είναι καλή ιδέα, στην πραγματικότητα. Επειδή σας very-- γιατί αν κάτι στην ενότητα αυτή έχει ένα όνομα που ήθελε να χρησιμοποιήσει κάπου αλλού στο πρόγραμμά σας, δεν μπορείτε. Και δεν είναι πάντα προφανές ότι αυτή είναι η περίπτωση. Για να βεβαιωθείτε ότι τι κάνατε ήταν ασφαλές, θα πρέπει να ανοίξει η μονάδα και δείτε όλες από τα ονόματα που καταλήγουν σε there-- όλες τις λειτουργίες, όλες τις μεταβλητές ότι ζούμε σε αυτή την ενότητα, επειδή φέρνετε όλα τους σε τοπικό namespace σας. Έτσι οι άνθρωποι το κάνουν αυτό. Είναι γενικά συνιστάται ότι δεν το κάνετε αυτό. Αλλά οι άνθρωποι κάνουν αυτό όλοι ο χρόνος επειδή είναι τεμπέλης και δεν θέλουν να πληκτρολογήσετε mp. τίποτα, ποτέ. Όλη αυτή η συζήτηση για modules φέρτε μου γύρω από μια σύντομη ομιλία για το πώς θα σχεδιάσουμε προγράμματα σε Python. Το πρώτο βήμα είναι να ελέγξετε εάν κάποιος άλλος έχει ήδη κάνει το πράγμα, ή να κάνει το 90% του πράγματος. Οι πιθανότητες είναι ότι πιθανώς να έχουν, και θα πρέπει να πάει να πάρει την δουλειά τους και να τρέξει αυτό. Ή να γράψει ένα περιτύλιγμα γύρω από αυτό να προσαρμοστεί με το σκοπό σας. Είναι μόνο μετά από αυτό έχει παρέλειψε που θέλετε, στη συνέχεια, πάει και write-- αρχίσουμε να σκεφτόμαστε πώς θα πρέπει να βάλετε αυτό το πράγμα μαζί. Υπάρχουν πολλά πράγματα εκεί έξω, και αυτό είναι ένα από τα πιο χρήσιμα πράγματα για την Python. Όπως και η γλώσσα είναι κομψό, η γλώσσα είναι εύκολο στη χρήση, αλλά επίσης επειδή είναι τόσο κομψό και εύκολο στη χρήση, οι άνθρωποι έχουν χρησιμοποιήσει για μια για μεγάλο χρονικό διάστημα και υπάρχει πολλή ουσία έξω εκεί που μπορείτε να Ιμάντες για δική σας χρήση. Έτσι τελευταίος κανόνας της Python είναι, κάποιος άλλος έχει ήδη γραφτεί πιθανώς μια μονάδα για το ότι, κάποιος άλλος έχει ήδη ίσως γράψει μια βιβλιοθήκη γι 'αυτό. Πριν να προσπαθήσετε να κάνετε ένα πράγμα, να δούμε για να δείτε αν είναι ήδη σε εφαρμογή. Δεν είναι τόσο δύσκολο. Όλες οι ενότητες που ανέχομαι πριν, με μία ίσως εξαίρεση, έρχονται προ-εγκατεστημένα σε κάθε τυπική εγκατάσταση της Python. Και έτσι με μια πρόσκληση για εισάγετε οτιδήποτε άλλο, μπορείτε έχουν όλοι αυτήν τη λειτουργία στα χέρια σας. Ξεκινώντας να ολοκληρωθεί αυτή η Συζήτηση, υπάρχουν μερικά πράγματα ότι έχω μείνει ως μαύρα κουτιά και το είδος της δυσδιάκριτες για τον κόσμο, και υπάρχει μια μερικά λευκά ψέματα ότι έχω είπε ότι για χάρη της ειλικρίνειας, Εγώ θα τουλάχιστον σημείο εδώ, ακόμη και αν δεν θα το κάνω πάει σούπερ βαθιά σε όλα αυτά και τις τεχνικές εξηγήσεις τους. Πολλά από τα πράγματα ότι έχω ονομάζεται μαγεία είναι αυτό που άλλοι άνθρωποι θα αποκαλούσα αντικειμενοστραφής προγραμματισμός. Έτσι, υπάρχουν πολλά things-- έτσι ώστε οι μεταβλητές είναι πολύ συχνά δεν απλά κάθεται σε bytes, μνήμη, αλλά είναι πολύ περίπλοκη αντικείμενα που έχουν εσωτερικές κατάσταση σχετικά με τις λειτουργίες και τα μέρη της κρυφές μεταβλητές, πολλά κρυμμένη λειτουργικότητα, η οποία σας επιτρέπει να τα μετατρέψει σε χορδές, η οποία σας επιτρέπει να μετακινηθείτε πάνω τους. Και αν είστε writing-- και ο λόγος που έχουν όλα αυτά τα πλούσια λειτουργικότητα Είναι επειδή οι people-- οι αρχιτέκτονες του language-- έχουν πάει μέσω και για κάθε πρότυπο αντικείμενο, να θέσει σε λειτουργία το να το πω αυτό είναι το πώς αυτό είναι πώς αυτό πρόκειται να λειτουργήσει αν κάποιος θέλει να επαναλάβει πάνω του. Έτσι, τα πάντα ότι κάποιος μπορεί να ενδεχομένως να θέλουν να επαναλάβει πάνω, έχει λογική γραμμένη σε το χέρι για το πώς είστε υποτίθεται ότι θα επαναλάβει επί του αντικειμένου. Ό, τι μπορεί να ενδεχομένως να θέλουν που αποτελούν αντικείμενο ντάμπινγκ σε μια σειρά έχει λογική γράψει. Αυτή είναι η λειτουργία που σας καλούν, αν Θέλετε να πετάξει αυτό έξω σε μια σειρά. Αυτός είναι ο λόγος που μπορείτε να κάνετε καλέστε len στα πράγματα, αυτό Γι 'αυτό μπορείτε να καλέσετε στο, αυτό είναι γιατί μπορείτε να καλέσετε αν σε σε όλα ότι θα θέλατε να, γιατί όλα εκείνα τα μεταφέρουν μαζί τους, η τεχνογνωσία για να το κάνουμε αυτό. Αυτό είναι κάτι που είμαι σούπερ Δεν πρόκειται να υπεισέλθω. Αλλά για κάτι στη λίστα είναι διακριτικά διαφορετικό από το στυλ C για βρόχους, και μπορείτε να διαβάσετε όλα τα σχετικά ότι στις το Διαδίκτυο, αν σας ενδιαφέρει. Υπάρχει μια σκοτεινή πλευρά σε όλα αυτό, ότι ανέφερα, οπότε υπάρχουν δύο πράγματα. Το πρώτο είναι ότι αυτό το αντικείμενο προσανατολισμό προγραμματισμού, προσθέτει πολλές υπερυψωμένες για τυχαία πράγματα, έτσι ώστε να καταλήξουμε χρησιμοποιώντας πολύ περισσότερη μνήμη? θα καταλήξετε με λίγο περισσότερο χρόνο από ό, τι θα ήταν διαφορετικά. Η other-- αλλά το πιο ύπουλη σκοτεινή πλευρά σε αυτό είναι, αν τα πράγματα ενεργούν μόνο όπως εσείς θέλετε χωρίς να χρειάζεται να σκεφτείτε σούπερ σκληρό σχετικά με το αν αυτή θα πρέπει να είναι ένας int ή αν θα πρέπει να υπάρχει μια float, θα μπορούσε να είναι ότι πάνω από εδώ που παράγουν ένα int, αλλά εδώ σας σκέφτομαι αλλά θα always-- συγγνώμη, θα μπορούσε να είναι ότι εδώ που παράγουν ένα πλωτήρα, αλλά όταν φτάσετε στο δεύτερο μέρος του προγράμματός σας, σκέφτεστε, OH καλά, αλλά θα δώσε μου πάντα int. Και αν δεν το κάνουν, είναι δυνατό ότι σφηνωμένο κάπου, αν προσπαθήσετε να το χρησιμοποιήσετε στο ευρετήριο σε έναν πίνακα, ή ό, τι έχετε. Έτσι, ένα από την πραγματική χρήσιμα πράγματα για το C είναι σας αναγκάζει να σκεφτούμε πραγματικά σκληρά πριν κάνετε any-- πριν να φέρει οποιαδήποτε μεταβλητή στην ύπαρξη, όπως αυτό είναι ο τύπος αυτής της μεταβλητής. Και πρόκειται να έχουν αυτό το είδος για όλο το χρόνο. Αυτό δεν είναι αληθινό Python, και στην πραγματικότητα, can-- αν είστε απλά είδος πηγαίνει από το αυτί, και να σας κάνει κάποιες αποφάσεις ένας τρόπος σε ένα μέρος, και ορισμένες αποφάσεις ενός τρόπο στον άλλο τόπο χωρίς να θέτει αρκετά πίσω τα πράγματά οι σκηνές στο άλλο μέρος για να πιάσει τα πράγματα σωστά, μπορεί να πάρει μερικά πολύ περίεργα λάθη. Και το πρόγραμμα μπορεί να κρατήσει σε λειτουργία για πολύ μεγάλο χρονικό διάστημα, επειδή είναι κάνει πολλή δουλειά να πω, και αυτό το πράγμα θα μπορούσε να λειτουργήσει με αυτόν τον τρόπο, έτσι Πάω να τρέχει με αυτόν τον τρόπο. Και στην πραγματικότητα, το γεγονός ότι ωθεί διαβιβάσει μέσα από πολλά μικρά λάθη σημαίνει ότι, όταν συχνά Παρουσιάστηκε σφάλμα είναι πραγματικά κακό και εσείς πραγματικά θέλετε να το διορθώσουμε, καταλήγει μίλια away-- το πρόγραμμα καταλήγει διακοπή μίλια μακριά από τη στιγμή που είχε το σφάλμα σας. Και έτσι ένα πράγμα που θα θέλαμε προγράμματα για να κάνει, ένα πράγμα sometimes-- ότι θα θέλαμε προγράμματα να κάνουμε όταν είμαστε debugging αστοχία είναι δυνατά και δεν είναι πολύ γρήγορα, όταν κάτι πάει στραβά. Η Python είναι πολύ κακό σε αυτό. Η Python είναι πολύ καλή στο να μην αποτυγχάνει και κύλισης προς τα εμπρός μέσω απρόσμενα πράγματα. Έτσι, αυτό είναι χρήσιμο όταν γράφεις μικρά προγράμματα. Όταν παίρνετε περίπλοκη σφάλματα μερικές φορές Παίρνει πολύ χρόνο για να τους δώσουμε έμφαση. Έτσι, υπάρχει μια σκοτεινή πλευρά σε όλα αυτό, όπως ακριβώς λειτουργεί αυτό. Λειτουργεί μόνο σαν θα περιμένατε να. Εκτός από το ότι, όταν αυτό δεν συμβαίνει, θα καταλήξετε επάνω σε ένα εντελώς διαφορετικό μέρος και προσπαθώ να καταλάβω πού ήταν αυτό που πήγε στραβά. Η συλλογή απορριφθέντων is-- έτσι ένα πράγμα που θα παρατηρήσετε είναι ότι κάποια από αυτά τα πράγματα Έχω φέρει σε existence-- Αυτοί οι πίνακες, τα λεξικά, οι εν λόγω αντικείμενα, αυτά files-- ποτέ να απελευθερωθεί. Δεν υπήρξε καμία κλήση σε δωρεάν σε οποιοδήποτε από αυτή την ομιλία. Και αυτό ήταν το C-πλάι, γιατί Εμείς ποτέ δεν πήρε σε αυτά τα πράγματα. Αλλά στην Python-πλευρά, δεν υπάρχει δωρεάν. Τα πράγματα γίνονται αυτόματα απελευθερωθεί όταν Python νομίζει ότι δεν κοιτάτε τους. Είναι πολύ καλό να μην απελευθερώνοντας τα πράγματα ότι ίσως ακόμα ενδεχομένως να κοιτάζει, αλλά αυτό σημαίνει ότι αν ήσασταν πρόκειται να διαθέσει αυτό το μεγάλο πράγμα, και να είστε όπως, OH Είμαι τελειώνουμε με αυτό τώρα, Είναι δύσκολο να πει στην Python ότι τελειώσατε με αυτό τώρα. Μπορείτε να ορίσετε μερικές φορές ότι οι μεταβλητές να είναι κανένας, και στη συνέχεια ελπίζω ότι τελικά ο συλλέκτης σκουπιδιών έρχεται μέσα και καθαρίζει έξω. Αλλά και πάλι, δεν το κάνετε έχουν τον έλεγχο αυτό. Και ένας από τους λόγους που οι άνθρωποι χρησιμοποιούν C Για την απόδοσή πραγματικά κρίσιμα πράγματα, Είναι αυτή η ικανότητα να πραγματικά ξέρετε πότε μνήμη διατίθεται και όταν είναι απελευθερωθεί, και έχουν πολλή ελέγχου επί λέγοντας, Είμαι χρησιμοποιώντας τίποτα περισσότερο από τη μνήμη που χρειάζομαι. Αυτό είναι κάτι που Python δεν είναι τόσο μεγάλη σε. Κοινό: Μπορώ να σας κάνω μια ερώτηση; Τι εννοούσατε με αποτύχει δυνατά; ROSS RHEINGANS-YOO: Έτσι, αν κάτι πηγαίνει στραβά και είστε στην εκσφαλμάτωση λειτουργία, θα κάνατε πολύ συχνά θέλουμε το πρόγραμμά σας για να σας πω πού ακριβώς πήγε στραβά, και όχι μόνο ήσυχα σταματήσουν να προβάλλονται. Αλλά θέλετε πραγματικά να εκτυπώσετε από όλα τα είδη των πληροφοριών σχετικά με όπως, εδώ ήταν αυτό. Αυτό το πράγμα συνέβη Εάν εκτυπώνετε α wen-- αν τρέχετε ένα web server-- Κοινό: [δεν ακούγεται] ROSS RHEINGANS-YOO: Ναι, αν τρέχετε ένα web server, είναι μερικές φορές κακό, αν είστε πάντα απόρριψη λάθη, και λέτε, και ότι δεν λειτούργησε. Πάω να σταματήσει. Είμαι ακριβώς πρόκειται να αγνοήσει και να κρατήσει σε εξέλιξη. Επειδή τότε μπορείτε να έρθετε σε εκατοντάδες από αυτά τα λάθη και να μην τους δει. Θα ήταν σίγουρα χρήσιμο για σκοπούς εντοπισμού σφαλμάτων αν κάθε φορά τον web server σας γίνει μια λάθος, είχατε ανθεκτικό αρχεία από αυτό. Ίσως θέλετε ακόμη και το πρόγραμμα να σταματήσουν, έτσι ώστε οι εγγραφές Δεν κάνει να θαφτεί κάτω από τα πράγματα. Αλλά και πάλι, αυτό είναι σε κατάσταση εκσφαλμάτωσης. Συχνά στη λειτουργία της παραγωγής, η ο κόσμος είναι λίγο διαφορετική. Και σε μικροσκοπικά σενάρια που τρέχω, όπου το πράγμα που είπα να κάνω μπορεί να είναι μόνο ένα μικρό κομμάτι από από ό, τι θα ήθελα να κάνει, Στη συνέχεια το είδος της ώθησης μέσω σφάλματα είναι κάτι που μπορεί να θέλετε. Και σε αυτές τις περιπτώσεις, σίγουρα Python κερδίζει πραγματικά ξεκινά του. Το τελευταίο πράγμα που δεν είχα μιλήσει σε this-- ότι δεν είχα μιλήσει για αλλά μπορεί να είναι πραγματικά εξοργιστικό το πρώτο φορά που έχετε ένα από αυτά τα λάθη, και η δεύτερη και η τρίτη και η τέταρτη φορά που έχετε ένα αυτά τα λάθη. Python, ανέφερα ότι χρησιμοποιεί το λευκό κενό να σας πω ποιο επίπεδο εσοχής και τι λειτουργικό τμήμα είστε μέσα, αντιμετωπίζει καρτέλες και χώρους με διαφορετικό τρόπο. Έτσι, αν καρτέλα πάνω από τέσσερα, και στη συνέχεια, Η επόμενη γραμμή έχει τέσσερις χώρους, ακόμη και αν εμφανίζονται ως ο ίδιο ποσό στον επεξεργαστή σας, Python δεν τους συμπεριφερόμαστε με τον ίδιο. Στην πραγματικότητα, η Python αντιμετωπίζει καρτέλες και χώρους όπως το λάδι και το νερό. Είναι απλά τα πράγματα διαφορετικά. Δεν υπάρχει κανένας ιδιαίτερος μήκος, που είναι μία γλωττίδα, έτσι δεν είναι σαν μια καρτέλα ισούται με 8 χώρους, και έτσι θα πάρει γύρω από αυτό από εκεί. Όπως, όταν λέει, τι επίπεδο του κενού χώρου είμαι σε, είναι πραγματικά ψάχνει για μια μοτίβο των χώρων και τις καρτέλες. Και έτσι, ο καλύτερος τρόπος για να ασχοληθεί με αυτό είναι να χρησιμοποιείτε πάντα χώρους όλη την ώρα. Και στην πραγματικότητα, στην Cloud9 IDE και το CS50 IDE, ένθετα πλήκτρο Tab σας τέσσερις χώρους σε αντί μιας καρτέλας, η οποία είναι εξαιρετικά χρήσιμη. Αν και πάλι, αν έγραψε ένα Python πρόγραμμα με καρτέλες που θα ήταν μια χαρά, είναι ακριβώς αν κάποιος πήγε και προσπάθησε να προσθέσετε μια ενιαία γραμμή στο πρόγραμμά σας ότι είχε τέσσερις χώρους για κάθε καρτέλα, θα σπάσει. Και θα σπάσει κατά τρόπο ότι δεν είναι πραγματικά ορατό. Αν και το πραγματικό σφάλμα μήνυμα που ρίχνει έχει να κάνει με το νέο εσοχή δεν αναμένεται εδώ, or-- αν είναι να μιλάμε για περιπτώσεις και μοιάζει να είναι λάθος, είναι πιθανώς επειδή υπάρχει ένα πρόβλημα στην καρτέλα χώρο. Είναι εξοργιστικό ακόμα για τον εντοπισμό σφαλμάτων. Το μεγαλύτερο σε ολόκληρη την αυτή η συζήτηση, η οποία δεν το έκανα φτάσετε στο γιατί είναι πραγματικά μια πολύπλοκη, λεπτή θέμα, και δεν ήταν απαραίτητο να κάνει οποιαδήποτε από τα πράγματα που έχουμε κάνει μέχρι τώρα, είναι μια έννοια που ονομάζεται πλειάδες. Είναι πολύ εκεί, όπως η συστοιχίες που δεν μπορείτε να τροποποιήσετε. Παίρνουν χρησιμοποιούνται σε όλη τη χώρα, διότι αυτές είναι χρήσιμες για πολλά πράγματα ότι συστοιχίες δεν είναι χρήσιμα για. Αλλά αν θέλετε να κάνετε μια σειρά, και τότε υποσχεθεί στον διερμηνέα που εσείς δεν πρόκειται ποτέ να θέλετε να τροποποιήσετε ότι thing-- στην πραγματικότητα, αν θέλετε να τροποποιήσετε, θα κάνει ένα νέο με το νέο τιμές σε it-- αυτά είναι πλειάδες. Αντί παραγωγή τους με αγκύλες, μπορείτε να τα παράγουν με παρενθέσεως. Γιατί θα πρέπει να χρησιμοποιήσετε αυτά τα πράγματα, Είναι ένα μικρό κομμάτι από ένα θέμα. . Το μόνο πράγμα που εγώ θα πω γι 'αυτό είναι εσύ μπορεί να χρησιμοποιήσει ως πλειάδες δείκτες λεξικά. Δεν μπορείτε να χρησιμοποιήσετε ως συστοιχίες δείκτες λεξικά. Και γιατί είναι, και πάλι, την τεχνική και Είμαι δεν πρόκειται να τρέξει σε αυτό. Η PSET που δεν έχω αγγίξει σχετικά σε αυτή την ομιλία είναι pset6. Τόσο εδώ είναι πώς θα ήσουν εφαρμογή a-- εδώ πώς θα εφαρμόσουν pset6 στην Python. Λαμβάνοντας υπόψη την Python κύκλο σχεδιασμού, το πρώτο πράγμα ότι κάνεις όταν είσαι προγραμμάτων είναι επιταγή για να δείτε αν κάποιος έχει κάνει ήδη. Στην πραγματικότητα, αν θέλετε να serve-- Apache 50 κάνει περίπου αυτό, εκτός από αυτό δεν έρχεται πρότυπο εγκατασταθεί σε συστήματα Linux. Python κάνει, και η Python απλή διακομιστή http κάνει επίσης. Εάν είστε ποτέ σε μια μηχανή Linux, ή το εξωτερικό Cloud9 IDE του CS50 και θα θέλατε να εξυπηρετήσει αυτό το ρεύμα καταλόγου σε μια συγκεκριμένη θύρα, python-m SimpleHTTPServer λιμάνι εξυπηρετεί αυτό. Μπορείτε επίσης να εισαγάγετε η απλή διακομιστή http και θα έχεις πολλή λειτουργικότητα, αν θέλετε να το προσαρμόσετε, ή να το αλλάξετε, ή να τρέξει it-- τη θέσει στην υπηρεσία εκτελέσετε το δικό σας διακομιστή υπηρεσιών. Έτσι, αυτό είναι Python με λίγα λόγια. Και αυτό ήταν CS50. Ευχαριστώ.