Πώς να μάθετε τη γλώσσα προγραμματισμού python. Γλώσσα προγραμματισμού Python - από πού να ξεκινήσετε

Από τότε που ξεκίνησα να διδάσκω Python το 2011, έχω βρει αρκετούς πόρους που χρησιμοποιώ τακτικά. Όταν άρχισα να μαθαίνω τη γλώσσα, εξεπλάγην με το πόσο φιλόξενη ήταν η κοινότητα της Python. Απόδειξη αυτού είναι η τεράστια ποσότητα δωρεάν, υψηλής ποιότητας διαθέσιμου υλικού. Παρακάτω θα δώσω παραδείγματα αυτών των πόρων που απλά δεν θα υπήρχαν χωρίς την υποστήριξη της κοινότητας.

1. Επινοήστε τα δικά σας παιχνίδια υπολογιστή με την Python

Μπορεί να έχετε ήδη το δικό σας αγαπημένο βιβλίο Python, αλλά σας ενθαρρύνω να διαβάσετε αυτό. Μπορείτε να το αγοράσετε, να το διαβάσετε online ή να το κατεβάσετε δωρεάν σε PDF. Μου αρέσει η ίδια δομή των κεφαλαίων: πρώτα τίθεται το πρόβλημα και μετά υπάρχουν παραδείγματα λύσεων στα προβλήματα με λεπτομερείς επεξηγήσεις. Ο ίδιος συγγραφέας έγραψε άλλα 3 υπέροχα βιβλία.

2. Γλυπτό

Έχω εργαστεί σε σχολεία όπου για τον έναν ή τον άλλο λόγο (συνήθως λόγους ασφαλείας) η Python δεν ήταν διαθέσιμη. Το Skulpt εκτελεί σενάρια Python στο πρόγραμμα περιήγησης και περιλαμβάνει πολλά παραδείγματα. Το πρώτο χρησιμοποιεί τη μονάδα Turtle για να εμφανίζει γεωμετρικά σχήματα. Το χρησιμοποιώ συχνά για να δοκιμάσω τις γνώσεις των μαθητών.

3. Μαντέψτε τον αριθμό

8. Τυχαίο

Η Python έχει πολλές χρήσιμες ενσωματωμένες λειτουργίες, όπως εκτύπωση και εισαγωγή. Η τυχαία μονάδα, από την άλλη πλευρά, πρέπει να εισαχθεί πριν από τη χρήση. Επιτρέπει στους μαθητές να προσθέσουν λίγο απρόβλεπτο στα έργα τους.

Εισαγωγή τυχαίου νομίσματος = ['κεφαλές', 'ουρές'] flip = random.choice(coin) print(flip)

9.Anti Gravity

Χρησιμοποιώ σπάνια τη μονάδα anti gravity. Αλλά όταν πρέπει να το κάνω αυτό, ρωτάω τους μαθητές τι θα γίνει όταν το εισάγουν. Συνήθως παίρνω πολλές διαφορετικές απαντήσεις, μερικές φορές μάλιστα προτείνουν ότι θα ξεκινήσει η πραγματική επίδραση της έλλειψης βαρύτητας - πιστεύουν ότι η Python είναι τόσο ισχυρή :) Μπορείτε να το δοκιμάσετε μόνοι σας και να το προσφέρετε στους μαθητές σας.

Εισαγωγή αντιβαρύτητας

10. Σαμποτάζ

Η μεγαλύτερη πρόκληση για μένα ως καθηγητή ήταν να βρω συντακτικά λάθη στα προγράμματα των μαθητών. Ευτυχώς, πριν καώ εντελώς από την εξάντληση, κατέληξα

Το πρόγραμμα είναι ένα σύνολο αλγορίθμων που διασφαλίζουν ότι εκτελούνται οι απαραίτητες ενέργειες. Συμβατικά, ένας απλός άνθρωπος μπορεί να προγραμματιστεί με τον ίδιο τρόπο γράφοντας ακριβείς εντολές έτσι ώστε, για παράδειγμα, να ετοιμάζει τσάι. Εάν η τελευταία επιλογή χρησιμοποιεί φυσική ομιλία (ρωσικά, ουκρανικά, αγγλικά, κορεάτικα κ.λπ.), τότε ο υπολογιστής θα χρειαστεί μια ειδική γλώσσα προγραμματισμού. Η Python είναι ένα από αυτά. Το περιβάλλον προγραμματισμού θα μεταφράσει στη συνέχεια τις εντολές και θα εκπληρωθεί ο ανθρώπινος στόχος για τον οποίο δημιουργήθηκε ο αλγόριθμος. Η Python έχει τη δική της σύνταξη, η οποία θα συζητηθεί παρακάτω.

Ιστορία της γλώσσας

Η ανάπτυξη ξεκίνησε τη δεκαετία του 1980 και τελείωσε το 1991. Η γλώσσα Python δημιουργήθηκε από τον Guido van Rossum. Αν και το κύριο σύμβολο του Python είναι ένα φίδι, πήρε το όνομά του από την αμερικανική κωμική παράσταση.

Κατά τη δημιουργία της γλώσσας, ο προγραμματιστής χρησιμοποίησε ορισμένες εντολές που δανείστηκαν από τα υπάρχοντα Pascal, C και C++. Μετά την κυκλοφορία της πρώτης επίσημης έκδοσης στο διαδίκτυο, μια ολόκληρη ομάδα προγραμματιστών συμμετείχε στη βελτίωση και τη βελτίωσή της.

Ένας από τους παράγοντες που επέτρεψαν στην Python να γίνει αρκετά διάσημη είναι ο σχεδιασμός της. Αναγνωρίζεται από πολλούς ιδιαίτερα επιτυχημένους ειδικούς ως ένας από τους καλύτερους.

Χαρακτηριστικά της Python

Η γλώσσα προγραμματισμού Python θα είναι ένας εξαιρετικός δάσκαλος για αρχάριους. Έχει μια αρκετά απλή σύνταξη. Θα είναι εύκολο να κατανοήσετε τον κώδικα, επειδή δεν περιλαμβάνει πολλά βοηθητικά στοιχεία και η ειδική δομή της γλώσσας θα σας διδάξει πώς να κάνετε εσοχή. Φυσικά, ένα καλοσχεδιασμένο πρόγραμμα με μικρό αριθμό εντολών θα είναι άμεσα κατανοητό.

Πολλά συντακτικά συστήματα δημιουργήθηκαν χρησιμοποιώντας αντικειμενοστραφή προγραμματισμό. Η Python δεν αποτελεί εξαίρεση. Γιατί ακριβώς γεννήθηκε; Θα διευκολύνει τη μάθηση για αρχάριους και θα βοηθήσει τους ήδη καταρτισμένους υπαλλήλους να θυμούνται ορισμένα στοιχεία.

Σύνταξη γλώσσας

Όπως ήδη αναφέρθηκε, ο κώδικας είναι αρκετά εύκολος και απλός στην ανάγνωση. Η Python έχει διαδοχικές εντολές που είναι ακριβείς στην εκτέλεση. Κατ 'αρχήν, οι χειριστές που χρησιμοποιούνται δεν θα φαίνονται δύσκολοι ακόμη και σε αρχάριους. Αυτό είναι που κάνει την Python διαφορετική. Η σύνταξή του είναι εύκολη και απλή.

Παραδοσιακοί χειριστές:

  • Όταν ορίζετε μια συνθήκη, θα πρέπει να χρησιμοποιείτε την κατασκευή if-else. Εάν υπάρχουν πάρα πολλές τέτοιες γραμμές, μπορείτε να εισαγάγετε την εντολή elif.
  • Η τάξη είναι για την κατανόηση της τάξης.
  • Ένας από τους απλούς τελεστές είναι το pass. Δεν κάνει τίποτα, ταιριάζει σε άδεια μπλοκ.
  • Οι κυκλικές εντολές είναι ενώ και για.
  • Η λειτουργία, η μέθοδος και η γεννήτρια ορίζονται χάρη στο def.

Εκτός από μεμονωμένες λέξεις, η γλώσσα προγραμματισμού Python σάς επιτρέπει να χρησιμοποιείτε εκφράσεις ως τελεστές. Χρησιμοποιώντας αλυσίδες συμβολοσειρών, μπορείτε να μειώσετε τον αριθμό των ξεχωριστών εντολών και παρενθέσεων. Χρησιμοποιούνται επίσης οι λεγόμενοι lazy υπολογισμοί, δηλαδή αυτοί που εκτελούνται μόνο όταν η κατάσταση το απαιτεί. Αυτά περιλαμβάνουν και και ή.

Διαδικασία συγγραφής προγράμματος

Ο διερμηνέας λειτουργεί σε έναν μόνο μηχανισμό: όταν γράφετε μια γραμμή (μετά την οποία βάζετε "Enter"), εκτελείται αμέσως και ένα άτομο μπορεί ήδη να δει κάποιο αποτέλεσμα. Αυτό θα σας φανεί χρήσιμο και θα είναι αρκετά βολικό για αρχάριους ή όσους θέλουν να δοκιμάσουν ένα μικρό κομμάτι κώδικα. Σε μεταγλωττισμένα περιβάλλοντα, θα πρέπει πρώτα να γράψετε ολόκληρο το πρόγραμμα, μόνο στη συνέχεια να το εκτελέσετε και να ελέγξετε για σφάλματα.

Η γλώσσα προγραμματισμού Python (για αρχάριους, όπως έχει ήδη γίνει σαφές, είναι ιδανική) στο λειτουργικό σύστημα Linux σας επιτρέπει να εργάζεστε απευθείας στην ίδια την κονσόλα. Θα πρέπει να γράψετε το όνομα του κώδικα Python στα αγγλικά στη γραμμή εντολών. Δεν θα είναι δύσκολο να δημιουργήσετε το πρώτο σας πρόγραμμα. Πρώτα απ 'όλα, αξίζει να ληφθεί υπόψη ότι ο διερμηνέας μπορεί να χρησιμοποιηθεί εδώ ως αριθμομηχανή. Επειδή οι νέοι και αρχάριοι ειδικοί συχνά δεν αισθάνονται άνετα με τη σύνταξη, μπορείτε να γράψετε τον αλγόριθμο ως εξής:

Μετά από κάθε γραμμή πρέπει να βάλετε "Enter". Η απάντηση θα εμφανιστεί αμέσως αφού κάνετε κλικ σε αυτήν.

Δεδομένα που χρησιμοποιούνται από την Python

Τα δεδομένα που χρησιμοποιούν οι υπολογιστές (και οι γλώσσες προγραμματισμού) διατίθενται σε διάφορους τύπους, και αυτό είναι αρκετά προφανές. Οι αριθμοί μπορεί να είναι κλασματικοί, ακέραιοι, μπορεί να αποτελούνται από πολλά ψηφία ή μπορεί να είναι αρκετά μεγάλοι λόγω του κλασματικού μέρους. Για να διευκολυνθεί ο διερμηνέας να συνεργαστεί μαζί τους και για να κατανοήσει με τι έχει να κάνει, θα πρέπει να καθοριστεί ένας συγκεκριμένος τύπος. Επιπλέον, είναι απαραίτητο οι αριθμοί να χωρούν στο εκχωρημένο κελί μνήμης.

Οι πιο συνηθισμένοι τύποι δεδομένων που χρησιμοποιούνται από τη γλώσσα προγραμματισμού Python είναι:

  • Ακέραιος αριθμός. Μιλάμε για ακέραιους που έχουν και αρνητικές και θετικές τιμές. Σε αυτόν τον τύπο περιλαμβάνεται και το μηδέν.
  • Για να καταλάβει ο διερμηνέας ότι δουλεύει με κλασματικά μέρη, ο τύπος θα πρέπει να ρυθμιστεί σε float point. Κατά κανόνα, χρησιμοποιείται όταν χρησιμοποιούνται αριθμοί με διαφορετικό σημείο. Θα πρέπει να θυμόμαστε ότι όταν γράφετε ένα πρόγραμμα, πρέπει να τηρείτε τη σημείωση "3.25" και να μην χρησιμοποιείτε το κόμμα "3.25".
  • Στην περίπτωση προσθήκης συμβολοσειρών, η γλώσσα προγραμματισμού Python σας επιτρέπει να προσθέσετε έναν τύπο συμβολοσειράς. Συχνά λέξεις ή φράσεις περικλείονται σε ενιαία ή

Μειονεκτήματα και πλεονεκτήματα

Τις τελευταίες δεκαετίες, οι άνθρωποι ενδιαφέρονται περισσότερο να αφιερώνουν περισσότερο χρόνο για να μάθουν δεδομένα και λιγότερο χρόνο να τα επεξεργάζονται από υπολογιστές. Η γλώσσα για την οποία υπάρχουν μόνο θετικά πράγματα είναι ο υψηλότερος κωδικός.

Η Python δεν έχει ουσιαστικά κανένα μειονέκτημα. Το μόνο σοβαρό μειονέκτημα είναι η βραδύτητα της εκτέλεσης του αλγορίθμου. Ναι, αν το συγκρίνετε με το "C" ή το "Java", είναι, ειλικρινά μιλώντας, μια χελώνα. Αυτό εξηγείται από το γεγονός ότι αυτό

Ο προγραμματιστής φρόντισε να προσθέσει τα καλύτερα πράγματα στην Python. Επομένως, όταν το χρησιμοποιείτε, μπορείτε να παρατηρήσετε ότι έχει απορροφήσει τα καλύτερα χαρακτηριστικά άλλων ανώτερων γλωσσών προγραμματισμού.

Εάν η ιδέα που υλοποιείται από τον διερμηνέα δεν είναι εντυπωσιακή, τότε θα είναι δυνατό να το κατανοήσουμε σχεδόν αμέσως, αφού γράψουμε αρκετές δεκάδες γραμμές. Εάν το πρόγραμμα αξίζει τον κόπο, τότε το κρίσιμο τμήμα μπορεί να βελτιωθεί ανά πάσα στιγμή.

Επί του παρόντος, περισσότερες από μία ομάδες προγραμματιστών εργάζονται για τη βελτίωση της Python, επομένως δεν είναι γεγονός ότι ο κώδικας γραμμένος σε C++ θα είναι καλύτερος από αυτόν που δημιουργείται με χρήση Python.

Με ποια έκδοση είναι καλύτερο να δουλέψετε;

Σήμερα, δύο εκδόσεις ενός τέτοιου συντακτικού συστήματος όπως η γλώσσα Python χρησιμοποιούνται ευρέως. Για αρχάριους, η επιλογή μεταξύ τους θα είναι αρκετά δύσκολη. Σημειωτέον ότι το 3.x είναι ακόμα σε εξέλιξη (αν και κυκλοφορεί στις μάζες), ενώ το 2.x είναι μια πλήρως ολοκληρωμένη έκδοση. Πολλοί άνθρωποι συμβουλεύουν τη χρήση του 2.7.8, καθώς πρακτικά δεν καθυστερεί ή συντριβεί. Δεν υπάρχουν ριζικές αλλαγές στην έκδοση 3.x, ώστε να μπορείτε να μεταφέρετε τον κώδικα σας στο περιβάλλον προγραμματισμού με μια ενημέρωση ανά πάσα στιγμή. Για να κατεβάσετε το απαραίτητο πρόγραμμα, θα πρέπει να μεταβείτε στον επίσημο ιστότοπο, να επιλέξετε το λειτουργικό σας σύστημα και να περιμένετε μέχρι να ολοκληρωθεί η λήψη.

Μια φορά κι έναν καιρό, σε ένα κλειστό φόρουμ, προσπάθησα να διδάξω Python. Γενικά τα πράγματα έχουν κολλήσει εκεί. Λυπήθηκα για τα γραπτά μαθήματα, και αποφάσισα να τα δημοσιεύσω στο ευρύ κοινό. Μέχρι στιγμής το πρώτο, το πιο απλό. Αυτό που θα συμβεί στη συνέχεια είναι πιο ενδιαφέρον, αλλά ίσως δεν θα είναι ενδιαφέρον. Σε γενικές γραμμές, αυτή η ανάρτηση θα είναι δοκιμαστικό μπαλόνι, αν σας αρέσει, θα το δημοσιεύσω περαιτέρω.

Python για αρχάριους. Κεφάλαιο πρώτο. "Για τι πράγμα μιλάμε"

Για κάθε ενδεχόμενο, λίγο βαρετός «ευαγγελισμός». Αν τον έχετε βαρεθεί, μπορείτε να παραλείψετε μερικές παραγράφους.
Η Python (προφέρεται "Python" αντί "python") είναι μια γλώσσα σεναρίου που αναπτύχθηκε από τον Guido van Rossum ως μια απλή γλώσσα που είναι εύκολο να μάθουν οι αρχάριοι.
Σήμερα, η Python είναι μια ευρέως χρησιμοποιούμενη γλώσσα που χρησιμοποιείται σε πολλούς τομείς:
- Ανάπτυξη λογισμικού εφαρμογών (για παράδειγμα, βοηθητικά προγράμματα Linux yum, pirut, system-config-*, πρόγραμμα-πελάτης Gajim IM και πολλά άλλα)
- Ανάπτυξη διαδικτυακών εφαρμογών (ο ισχυρότερος διακομιστής εφαρμογών Zope και ο CMS Plone που αναπτύχθηκε βάσει του, στον οποίο, για παράδειγμα, λειτουργεί ο ιστότοπος της CIA, και πολλά πλαίσια για γρήγορη ανάπτυξη εφαρμογών Plones, Django, TurboGears και πολλά άλλα)
- Χρήση ως ενσωματωμένη γλώσσα σεναρίου σε πολλά παιχνίδια, και όχι μόνο (στη σουίτα γραφείου OpenOffice.org, Blender 3d editor, Postgre DBMS)
- Χρήση σε επιστημονικούς υπολογισμούς (με τα πακέτα SciPy και numPy για υπολογισμούς και PyPlot για τη σχεδίαση γραφημάτων, η Python γίνεται σχεδόν συγκρίσιμη με πακέτα όπως το MatLab)

Και αυτό, φυσικά, δεν είναι μια πλήρης λίστα έργων που χρησιμοποιούν αυτήν την υπέροχη γλώσσα.

1. Ο ίδιος ο διερμηνέας, μπορείτε να τον βρείτε εδώ (http://python.org/download/).
2. Αναπτυξιακό περιβάλλον. Δεν είναι απαραίτητο να ξεκινήσετε και το IDLE που περιλαμβάνεται στη διανομή είναι κατάλληλο για αρχάριους, αλλά για σοβαρά έργα χρειάζεστε κάτι πιο σοβαρό.
Για Windows χρησιμοποιώ το υπέροχο ελαφρύ PyScripter (http://tinyurl.com/5jc63t), για Linux χρησιμοποιώ Komodo IDE.

Αν και για το πρώτο μάθημα, μόνο το διαδραστικό κέλυφος της ίδιας της Python θα είναι αρκετό.

Απλώς εκτελέστε το python.exe. Η προτροπή εισαγωγής δεν θα αργήσει να εμφανιστεί, μοιάζει με αυτό:

Μπορείτε επίσης να γράψετε προγράμματα σε αρχεία με την επέκταση py στο αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου, το οποίο δεν προσθέτει τους δικούς του χαρακτήρες σήμανσης στο κείμενο (κανένα Word δεν θα λειτουργήσει). Είναι επίσης επιθυμητό αυτό το πρόγραμμα επεξεργασίας να μπορεί να δημιουργεί "έξυπνες καρτέλες" και να μην αντικαθιστά κενά με καρτέλες.
Για να εκκινήσετε αρχεία για εκτέλεση, μπορείτε να κάνετε διπλό κλικ σε αυτά. Εάν το παράθυρο της κονσόλας κλείνει πολύ γρήγορα, εισαγάγετε την ακόλουθη γραμμή στο τέλος του προγράμματος:

Στη συνέχεια, ο διερμηνέας θα περιμένει να πατήσετε enter στο τέλος του προγράμματος.

Ή συσχετίστε τα αρχεία py σε Μακριά με την Python και ανοίξτε πατώντας enter.

Τέλος, μπορείτε να χρησιμοποιήσετε ένα από τα πολλά βολικά IDE για την Python, τα οποία παρέχουν δυνατότητες εντοπισμού σφαλμάτων, επισήμανση σύνταξης και πολλές άλλες «ευκολίες».

Λίγη θεωρία.

Αρχικά, η Python είναι μια γλώσσα με ισχυρά δυναμικά πληκτρολόγηση. Τι σημαίνει αυτό;

Υπάρχουν γλώσσες με ισχυρή πληκτρολόγηση (pascal, java, c, κ.λπ.), στις οποίες ο τύπος μιας μεταβλητής καθορίζεται εκ των προτέρων και δεν μπορεί να αλλάξει, και υπάρχουν γλώσσες με δυναμική πληκτρολόγηση (python, ruby, vb ), στην οποία ο τύπος μιας μεταβλητής ερμηνεύεται ανάλογα με την τιμή που έχει εκχωρηθεί.
Οι δυναμικά πληκτρολογημένες γλώσσες μπορούν να χωριστούν σε 2 ακόμη τύπους. Αυστηρές, που δεν επιτρέπουν μετατροπή σιωπηρού τύπου (Python) και χαλαρές, που εκτελούν μετατροπές σιωπηρού τύπου (για παράδειγμα, VB, στην οποία μπορείτε εύκολα να προσθέσετε τη συμβολοσειρά "123" και τον αριθμό 456).
Έχοντας ασχοληθεί με την ταξινόμηση της Python, ας προσπαθήσουμε να «παίξουμε» λίγο με τον διερμηνέα.

>>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a , β (2, 1)

Έτσι, βλέπουμε ότι η ανάθεση πραγματοποιείται χρησιμοποιώντας το σύμβολο =. Μπορείτε να αντιστοιχίσετε μια τιμή σε πολλές μεταβλητές ταυτόχρονα. Όταν καθορίζετε ένα όνομα μεταβλητής στον διερμηνέα διαδραστικά, αυτός εκτυπώνει την τιμή της.

Το επόμενο πράγμα που πρέπει να ξέρετε είναι πώς κατασκευάζονται οι βασικές αλγοριθμικές μονάδες - κλάδοι και βρόχοι. Για αρχή χρειάζεται λίγη βοήθεια. Στην Python δεν υπάρχει ειδικός οριοθέτης για μπλοκ κώδικα, η εσοχή εξυπηρετεί τον ρόλο τους. Δηλαδή, αυτό που γράφεται με την ίδια εσοχή είναι ένα μπλοκ εντολών. Στην αρχή αυτό μπορεί να φαίνεται περίεργο, αλλά αφού το συνηθίσετε λίγο, συνειδητοποιείτε ότι αυτό το «αναγκαστικό» μέτρο σας επιτρέπει να αποκτήσετε πολύ ευανάγνωστο κώδικα.
Οι προϋποθέσεις λοιπόν.

Η συνθήκη καθορίζεται χρησιμοποιώντας μια δήλωση if που τελειώνει με ":". Οι εναλλακτικές προϋποθέσεις που θα πληρούνται εάν ο πρώτος έλεγχος αποτύχει καθορίζονται από τον χειριστή elif. Τέλος, το else καθορίζει έναν κλάδο που θα εκτελεστεί εάν δεν πληρούται καμία από τις προϋποθέσεις.
Σημειώστε ότι μετά την πληκτρολόγηση if, ο διερμηνέας χρησιμοποιεί την προτροπή "..." για να υποδείξει ότι περιμένει περαιτέρω εισαγωγή. Για να του πούμε ότι τελειώσαμε, πρέπει να μπούμε σε μια κενή γραμμή.

(Το παράδειγμα με κλαδιά για κάποιο λόγο σπάει τη σήμανση στο hub, παρά τους χορούς με τις προ και τις ετικέτες κωδικού. Συγγνώμη για την ταλαιπωρία, το πέταξα εδώ pastebin.com/f66af97ba, αν μου πει κάποιος τι φταίει, θα το κάνω να είσαι πολύ ευγνώμων)

Κύκλοι.

Η απλούστερη περίπτωση ενός βρόχου είναι ο βρόχος while. Παίρνει μια συνθήκη ως παράμετρο και εκτελείται εφόσον είναι αληθής.
Εδώ είναι ένα μικρό παράδειγμα.

>>> x = 0 >>> ενώ x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

Παρακαλώ σημειώστε ότι επειδή και οι δύο εκτυπώσεις x και x+=1 γράφονται με την ίδια εσοχή, θεωρούνται το σώμα του βρόχου (θυμάστε τι είπα για τα μπλοκ; ;-)).

Ο δεύτερος τύπος βρόχου στην Python είναι ο βρόχος for. Είναι παρόμοιο με τον βρόχο foreach σε άλλες γλώσσες. Η σύνταξή του είναι περίπου η εξής.

Για μεταβλητή στη λίστα:
της ομάδας

Όλες οι τιμές από τη λίστα θα εκχωρηθούν στη μεταβλητή με τη σειρά τους (στην πραγματικότητα, μπορεί να υπάρχει όχι μόνο μια λίστα, αλλά και οποιοσδήποτε άλλος επαναλήπτης, αλλά ας μην ανησυχούμε για αυτό προς το παρόν).

Εδώ είναι ένα απλό παράδειγμα. Η λίστα θα είναι μια συμβολοσειρά, η οποία δεν είναι τίποτα άλλο από μια λίστα χαρακτήρων.

>>> x = "Γεια σου, Python!" >>> για char σε x: ... εκτύπωση char ... H e l ........... !

Με αυτόν τον τρόπο μπορούμε να αποσυνθέσουμε τη συμβολοσειρά σε χαρακτήρες.
Τι να κάνουμε εάν χρειαζόμαστε έναν βρόχο που επαναλαμβάνεται ορισμένες φορές; Είναι πολύ απλό, η λειτουργία εμβέλειας θα έρθει στη διάσωση.

Στην είσοδο παίρνει από μία έως τρεις παραμέτρους, στην έξοδο επιστρέφει μια λίστα με αριθμούς που μπορούμε να «περάσουμε» με τον τελεστή for.

Ακολουθούν μερικά παραδείγματα χρήσης της συνάρτησης εύρους που εξηγούν το ρόλο των παραμέτρων της.

>>> εύρος (10) >>> εύρος (2, 12) >>> εύρος (2, 12, 3) >>> εύρος (12, 2, -2)

Και ένα μικρό παράδειγμα με βρόχο.

>>> για x στην περιοχή (10): ... εκτύπωση x ... 0 1 2 ..... 9

Εισόδου-εξόδου

Το τελευταίο πράγμα που πρέπει να γνωρίζετε πριν αρχίσετε να χρησιμοποιείτε πλήρως την Python είναι πώς πραγματοποιείται η είσοδος-έξοδος σε αυτήν.

Για έξοδο, χρησιμοποιείται η εντολή print, η οποία εκτυπώνει όλα τα ορίσματά της σε αναγνώσιμη από τον άνθρωπο μορφή.

Για την είσοδο της κονσόλας, χρησιμοποιείται η συνάρτηση raw_input(prompt), η οποία εμφανίζει μια προτροπή και περιμένει την είσοδο του χρήστη, επιστρέφοντας αυτό που ο χρήστης εισήγαγε ως τιμή.

X = int(raw_input("Εισαγάγετε έναν αριθμό:")) print "Το τετράγωνο αυτού του αριθμού είναι ", x * x

Προσοχή! Παρά την ύπαρξη της συνάρτησης input() με παρόμοια ενέργεια, δεν συνιστάται η χρήση της σε προγράμματα, καθώς ο διερμηνέας προσπαθεί να εκτελέσει συντακτικές εκφράσεις που εισάγονται χρησιμοποιώντας αυτήν, κάτι που αποτελεί σοβαρό κενό στην ασφάλεια του προγράμματος.

Αυτά για το πρώτο μάθημα.

Εργασία για το σπίτι.

1. Δημιουργήστε ένα πρόγραμμα για τον υπολογισμό της υποτείνουσας ενός ορθογωνίου τριγώνου. Το μήκος των ποδιών ζητείται από τον χρήστη.
2. Δημιουργήστε ένα πρόγραμμα για την εύρεση των ριζών μιας τετραγωνικής εξίσωσης σε γενική μορφή. Οι συντελεστές ζητούνται από τον χρήστη.
3. Δημιουργήστε ένα πρόγραμμα για να εμφανίσετε έναν πίνακα πολλαπλασιασμού με τον αριθμό M. Ο πίνακας μεταγλωττίζεται από M * a, σε M * b, όπου τα M, a, b ζητούνται από τον χρήστη. Η έξοδος πρέπει να εκτελείται σε στήλη, ένα παράδειγμα ανά γραμμή με την ακόλουθη μορφή (για παράδειγμα):
5 x 4 = 20
5 x 5 = 25
Και ούτω καθεξής.

Η Python είναι μια ευρέως χρησιμοποιούμενη γλώσσα προγραμματισμού υψηλού επιπέδου που πήρε το όνομά της από τη διάσημη βρετανική κωμική τηλεοπτική εκπομπή " Το ιπτάμενο τσίρκο των Monty Python" Η γλώσσα Python είναι απλή στη δομή, αλλά απίστευτα ευέλικτη και ισχυρή. Δεδομένου ότι ο κώδικας Python είναι εύκολος στην ανάγνωση και χωρίς να είναι πολύ άκαμπτος στη σύνταξη, πολλοί θεωρούν ότι είναι η καλύτερη εισαγωγική γλώσσα προγραμματισμού.

Python - περιγραφή της γλώσσας που δίνεται Το Foundation περιγράφει την Python:

Η Python είναι μια ερμηνευμένη, διαδραστική, αντικειμενοστραφής γλώσσα προγραμματισμού. Περιλαμβάνει ενότητες, εξαιρέσεις, δυναμική πληκτρολόγηση, τύπους δυναμικών δεδομένων υψηλού επιπέδου και κλάσεις. Η Python συνδυάζει εξαιρετική απόδοση με σαφή σύνταξη. Παρέχει διεπαφές σε πολλές κλήσεις συστήματος και βιβλιοθήκες, καθώς και σε διάφορα συστήματα παραθύρων και είναι επεκτάσιμο με C και C++. Η Python χρησιμοποιείται ως γλώσσα επέκτασης για εφαρμογές που απαιτούν διεπαφή προγραμματισμού. Τέλος, η Python είναι μια γλώσσα πολλαπλών πλατφορμών: τρέχει σε πολλές εκδόσεις Unix, Mac και υπολογιστές με MS-DOS, Windows, Windows NT και OS/2.

Ποια γλώσσα προγραμματισμού πρέπει να μάθετε πρώτα;

Μπορείτε να αρχίσετε να μαθαίνετε τη γλώσσα προγραμματισμού Python. Για να δείξετε πώς διαφέρει η Python από άλλες εισαγωγικές γλώσσες, σκεφτείτε όταν ήσασταν έφηβοι.

Το να μαθαίνεις να προγραμματίζεις με Python είναι σαν να οδηγείς το μίνι βαν των γονιών σου. Μόλις το οδηγήσετε μερικές φορές σε ένα πάρκινγκ, θα αρχίσετε να καταλαβαίνετε πώς να χειρίζεστε το αυτοκίνητο.

Προσπαθώ να μάθω προγραμματισμό χρησιμοποιώντας C ( ή ακόμα και συναρμολογητή) είναι σαν να μαθαίνεις να οδηγείς συναρμολογώντας το μίνι βαν των γονιών σου. Θα μείνετε κολλημένοι σε ένα γκαράζ για χρόνια συναρμολογώντας ανταλλακτικά και μέχρι να καταλάβετε πλήρως πώς λειτουργεί το αυτοκίνητο και να είστε σε θέση να αντιμετωπίσετε και να προβλέψετε μελλοντικά προβλήματα, θα καείτε πριν σταματήσετε ποτέ ρόδα.

Τα οφέλη της Python

Η Python είναι μια καθολική γλώσσα για αρχάριους. Μπορείτε να αυτοματοποιήσετε τις ροές εργασίας, να δημιουργήσετε ιστότοπους και να δημιουργήσετε εφαρμογές και παιχνίδια για υπολογιστές χρησιμοποιώντας Python. Παρεμπιπτόντως, η ζήτηση για προγραμματιστές Python ( PostgreSQL, OOP, Flask, Django) έχει αναπτυχθεί δραματικά τα τελευταία χρόνια σε εταιρείες όπως το Instagram, το Reddit, το Tumblr, το YouTube και το Pinterest.

Γλώσσα γενικού σκοπού υψηλού επιπέδου

Η Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου. Χρησιμοποιώντας το, μπορείτε να δημιουργήσετε σχεδόν οποιοδήποτε είδος λογισμικού. Αυτή η ευελιξία σας κρατά το ενδιαφέρον καθώς αναπτύσσετε προγράμματα και λύσεις που στοχεύουν τα ενδιαφέροντά σας αντί να κολλάτε στα ζιζάνια μιας γλώσσας που ανησυχεί για τη σύνταξή της.

Ερμηνευμένη γλώσσα

Η γλώσσα προγραμματισμού Python για αρχάριους ερμηνεύεται, πράγμα που σημαίνει ότι δεν χρειάζεται να ξέρετε πώς να μεταγλωττίζετε κώδικα. Δεδομένου ότι δεν υπάρχει βήμα μεταγλώττισης, η παραγωγικότητα αυξάνεται και ο χρόνος για επεξεργασία, δοκιμή και εντοπισμό σφαλμάτων μειώνεται σημαντικά. Απλώς κατεβάστε το IDE ( IDE), γράψτε τον κωδικό σας και κάντε κλικ στο "Εκτέλεση" ( Τρέξιμο).

Η αναγνωσιμότητα του κώδικα είναι το κλειδί

Η απλή, εύκολη στην εκμάθηση σύνταξη της Python δίνει έμφαση στην αναγνωσιμότητα και ορίζει ένα καλό στυλ προγραμματισμού. Με την Python, μπορείτε να εκφράσετε την ιδέα σας σε λιγότερες γραμμές κώδικα. Αυτή η γλώσσα σας αναγκάζει επίσης να σκεφτείτε τη λογική του προγράμματος και τους αλγόριθμους. Εξαιτίας αυτού, χρησιμοποιείται συχνά ως γλώσσα σεναρίου ή ολοκλήρωσης ( γλώσσα κόλλας) για να συνδέσετε υπάρχοντα στοιχεία μεταξύ τους και να γράψετε μεγάλους όγκους εύκολα αναγνώσιμου και εκτελούμενου κώδικα σε σύντομες χρονικές περιόδους.

Είναι απλά διασκεδαστικό

Δεν μπορείτε να ονομάσετε μια γλώσσα προγραμματισμού μετά την Monty Python χωρίς να έχετε αίσθηση του χιούμορ. Επιπλέον, πραγματοποιήθηκαν δοκιμές για να συγκριθεί ο χρόνος που απαιτείται για τη συγγραφή ενός απλού σεναρίου σε διαφορετικές γλώσσες ( Python, Java, C, J, BASIC):

...Η Python απαιτεί λιγότερο χρόνο, λιγότερες γραμμές κώδικα και λιγότερες έννοιες για να πετύχετε τον στόχο σας... Και για να τελειώσετε όλα, ο προγραμματισμός Python είναι διασκεδαστικός! Η διασκέδαση και η συχνή επιτυχία χτίζουν εμπιστοσύνη και ενδιαφέρον στους μαθητές, οι οποίοι προετοιμάζονται καλύτερα να συνεχίσουν να μαθαίνουν Python.

Μετάφραση του άρθρου “Why Learn Python? «προετοιμάστηκε από τη φιλική ομάδα του έργου.

Καλό κακό

Εισαγωγή


Λόγω της παρατηρούμενης ταχείας ανάπτυξης της τεχνολογίας προσωπικών υπολογιστών, υπάρχει μια σταδιακή αλλαγή στις απαιτήσεις για τις γλώσσες προγραμματισμού. Οι διερμηνευμένες γλώσσες αρχίζουν να παίζουν έναν ολοένα και πιο σημαντικό ρόλο, καθώς η αυξανόμενη ισχύς των προσωπικών υπολογιστών αρχίζει να παρέχει επαρκή ταχύτητα για την εκτέλεση ερμηνευμένων προγραμμάτων. Και το μόνο σημαντικό πλεονέκτημα των μεταγλωττισμένων γλωσσών προγραμματισμού είναι ο κώδικας υψηλής ταχύτητας που παράγουν. Όταν η ταχύτητα εκτέλεσης του προγράμματος δεν είναι κρίσιμη τιμή, η πιο σωστή επιλογή θα ήταν μια ερμηνευμένη γλώσσα, ως απλούστερο και πιο ευέλικτο εργαλείο προγραμματισμού.

Από αυτή την άποψη, έχει κάποιο ενδιαφέρον να εξετάσουμε τη σχετικά νέα γλώσσα προγραμματισμού Python (Python), η οποία δημιουργήθηκε από τον συγγραφέα της Guido van Rossum στις αρχές της δεκαετίας του '90.

Γενικές πληροφορίες για την Python. Πλεονεκτήματα και μειονεκτήματα


Η Python είναι μια ερμηνευμένη, εγγενώς αντικειμενοστραφής γλώσσα προγραμματισμού. Είναι εξαιρετικά απλό και περιέχει μικρό αριθμό λέξεων-κλειδιών, αλλά είναι επίσης πολύ ευέλικτο και εκφραστικό. Αυτή είναι μια γλώσσα υψηλότερου επιπέδου από την Pascal, τη C++ και, φυσικά, τη C, η οποία επιτυγχάνεται κυρίως μέσω ενσωματωμένων δομών δεδομένων υψηλού επιπέδου (λίστες, λεξικά, πλειάδες).

Πλεονεκτήματα της γλώσσας.
Ένα αναμφισβήτητο πλεονέκτημα είναι ότι ο διερμηνέας Python εφαρμόζεται σχεδόν σε όλες τις πλατφόρμες και τα λειτουργικά συστήματα. Η πρώτη τέτοια γλώσσα ήταν η C, αλλά οι τύποι δεδομένων της σε διαφορετικά μηχανήματα μπορούσαν να καταλάβουν διαφορετικές ποσότητες μνήμης και αυτό χρησίμευσε ως κάποιο εμπόδιο για τη σύνταξη ενός πραγματικά φορητού προγράμματος. Η Python δεν έχει τέτοιο μειονέκτημα.

Το επόμενο σημαντικό χαρακτηριστικό είναι η επεκτασιμότητα της γλώσσας δίνεται μεγάλη σημασία σε αυτό και, όπως γράφει ο ίδιος ο συγγραφέας, η γλώσσα θεωρήθηκε ακριβώς ως επεκτάσιμη. Αυτό σημαίνει ότι είναι δυνατό για όλους τους ενδιαφερόμενους προγραμματιστές να βελτιώσουν τη γλώσσα. Ο διερμηνέας είναι γραμμένος σε C και ο πηγαίος κώδικας είναι διαθέσιμος για οποιονδήποτε χειρισμό. Εάν είναι απαραίτητο, μπορείτε να το εισάγετε στο πρόγραμμά σας και να το χρησιμοποιήσετε ως ενσωματωμένο κέλυφος. Ή, γράφοντας τις δικές σας προσθήκες στην Python σε C και μεταγλωττίζοντας το πρόγραμμα, μπορείτε να αποκτήσετε έναν "εκτεταμένο" διερμηνέα με νέες δυνατότητες.

Το επόμενο πλεονέκτημα είναι η παρουσία μεγάλου αριθμού μονάδων συνδεδεμένων στο πρόγραμμα, παρέχοντας διάφορες πρόσθετες δυνατότητες. Τέτοιες ενότητες είναι γραμμένες σε C και Python και μπορούν να αναπτυχθούν από όλους τους επαρκώς καταρτισμένους προγραμματιστές. Τα παραδείγματα περιλαμβάνουν τις ακόλουθες ενότητες:

  • Numerical Python - προηγμένες μαθηματικές δυνατότητες όπως ο χειρισμός ακεραίων διανυσμάτων και πινάκων.
  • Tkinter - δημιουργία εφαρμογών με χρήση γραφικού περιβάλλοντος χρήστη (GUI) που βασίζεται στη διεπαφή Tk που χρησιμοποιείται ευρέως στα X-Windows.
  • OpenGL - χρήση μιας εκτεταμένης βιβλιοθήκης γραφικών μοντελοποίησης δισδιάστατων και τρισδιάστατων αντικειμένων Open Graphics Library από τη Silicon Graphics Inc. Αυτό το πρότυπο υποστηρίζεται, μεταξύ άλλων, σε κοινά λειτουργικά συστήματα όπως τα Microsoft Windows 95 OSR 2, 98 και Windows NT 4.0.
Μειονεκτήματα της γλώσσας.
Το μόνο μειονέκτημα που παρατήρησε ο συγγραφέας είναι η σχετικά χαμηλή ταχύτητα εκτέλεσης του προγράμματος Python, η οποία οφείλεται στην ερμηνευτικότητά του. Ωστόσο, κατά τη γνώμη μας, αυτό αντισταθμίζεται περισσότερο από τα πλεονεκτήματα της γλώσσας κατά τη σύνταξη προγραμμάτων που δεν είναι πολύ κρίσιμα για την ταχύτητα εκτέλεσης.

Επισκόπηση χαρακτηριστικών


1. Η Python, σε αντίθεση με πολλές γλώσσες (Pascal, C++, Java, κ.λπ.), δεν απαιτεί δηλώσεις μεταβλητών. Δημιουργούνται στον τόπο που αρχικοποιούνται, δηλ. την πρώτη φορά που εκχωρείται μια τιμή σε μια μεταβλητή. Αυτό σημαίνει ότι ο τύπος μιας μεταβλητής καθορίζεται από τον τύπο της εκχωρημένης τιμής. Από αυτή την άποψη, η Python μοιάζει με το Basic.
Ο τύπος μιας μεταβλητής δεν είναι αμετάβλητος. Οποιαδήποτε ανάθεση σε αυτήν είναι σωστή και αυτό οδηγεί μόνο στο γεγονός ότι ο τύπος της μεταβλητής γίνεται ο τύπος της νέας εκχωρημένης τιμής.

2. Σε γλώσσες όπως Pascal, C, C++, η οργάνωση λιστών παρουσίαζε κάποιες δυσκολίες. Για την υλοποίησή τους, ήταν απαραίτητο να μελετηθούν διεξοδικά οι αρχές εργασίας με δείκτες και δυναμική μνήμη. Και ακόμη και με καλά προσόντα, ο προγραμματιστής, κάθε φορά που εφαρμόζει εκ νέου τους μηχανισμούς δημιουργίας, επεξεργασίας και καταστροφής λιστών, θα μπορούσε εύκολα να κάνει ανεπαίσθητα λάθη. Ενόψει αυτού, έχουν δημιουργηθεί ορισμένα εργαλεία για την εργασία με λίστες. Για παράδειγμα, το Delphi Pascal έχει μια κλάση TList που υλοποιεί λίστες. Η βιβλιοθήκη STL (Standard Template Library) έχει αναπτυχθεί για C++, η οποία περιέχει δομές όπως διανύσματα, λίστες, σύνολα, λεξικά, στοίβες και ουρές. Ωστόσο, τέτοιες εγκαταστάσεις δεν είναι διαθέσιμες σε όλες τις γλώσσες και τις υλοποιήσεις τους.

Ένα από τα ιδιαίτερα χαρακτηριστικά της Python είναι η παρουσία τέτοιων δομών ενσωματωμένων στην ίδια τη γλώσσα όπως πλειάδες(διπλός) κονίστρα(λίστα) και λεξικά(λεξικό), που μερικές φορές ονομάζονται καρτέλλες(χάρτης). Ας τους ρίξουμε μια πιο προσεκτική ματιά.

  1. Πλειάδα . Θυμίζει κάπως πίνακα: αποτελείται από στοιχεία και έχει αυστηρά καθορισμένο μήκος. Τα στοιχεία μπορεί να είναι οποιεσδήποτε τιμές - απλές σταθερές ή αντικείμενα. Σε αντίθεση με έναν πίνακα, τα στοιχεία μιας πλειάδας δεν είναι απαραίτητα ομοιογενή. Και αυτό που διακρίνει μια πλειάδα από μια λίστα είναι ότι μια πλειάδα δεν μπορεί να αλλάξει, δηλ. δεν μπορούμε να αντιστοιχίσουμε κάτι νέο στο i-ο στοιχείο πλειάδας και δεν μπορούμε να προσθέσουμε νέα στοιχεία. Έτσι, μια πλειάδα μπορεί να ονομαστεί σταθερή λίστα. Συντακτικά, μια πλειάδα καθορίζεται παραθέτοντας όλα τα στοιχεία διαχωρισμένα με κόμματα, όλα μέσα σε παρένθεση:

  2. (1, 2, 5, 8)
    (3.14, "string", -4)
    Όλα τα στοιχεία ευρετηριάζονται από την αρχή. Για να λάβετε το i-ο στοιχείο, πρέπει να καθορίσετε το όνομα της πλειάδας ακολουθούμενο από το ευρετήριο i σε αγκύλες. Παράδειγμα:
    t = (0, 1, 2, 3, 4)
    εκτύπωση t, t[-1], t[-3]
    Αποτέλεσμα: 0 4 2
    Έτσι, μια πλειάδα θα μπορούσε να ονομαστεί σταθερό διάνυσμα αν τα στοιχεία της ήταν πάντα ομοιογενή.
  3. Λίστα . Ένα καλό, συγκεκριμένο παράδειγμα λίστας είναι η συμβολοσειρά γλώσσας Turbo Pascal. Τα στοιχεία μιας γραμμής είναι μεμονωμένοι χαρακτήρες, το μήκος της δεν είναι σταθερό, είναι δυνατή η διαγραφή στοιχείων ή, αντίθετα, η εισαγωγή τους σε οποιοδήποτε σημείο της γραμμής. Τα στοιχεία της λίστας μπορεί να είναι αυθαίρετα αντικείμενα, όχι απαραίτητα του ίδιου τύπου. Για να δημιουργήσετε μια λίστα, απλώς καταχωρίστε τα στοιχεία της χωρισμένα με κόμμα, περικλείοντάς τα όλα σε αγκύλες:


  4. ['string', (0,1,8), ]
    Σε αντίθεση με μια πλειάδα, οι λίστες μπορούν να τροποποιηθούν όπως επιθυμείτε. Η πρόσβαση στα στοιχεία πραγματοποιείται με τον ίδιο τρόπο όπως στις πλειάδες. Παράδειγμα:
    l = ]
    εκτύπωση l, l, l[-2], l[-1]
    Αποτέλεσμα: 1 s (2,8) 0
  5. Λεξικό . Θυμίζει τον τύπο εγγραφής στο Pascal ή τον τύπο δομής στο C. Ωστόσο, αντί για το σχήμα "πεδίο εγγραφής" - "τιμή", χρησιμοποιείται εδώ "κλειδί" - "τιμή". Το λεξικό είναι μια συλλογή ζευγών κλειδιών-τιμών. Εδώ το «κλειδί» είναι μια σταθερά οποιουδήποτε τύπου (αλλά χρησιμοποιούνται κυρίως συμβολοσειρές), χρησιμεύει για την ονομασία (ευρετήριο) κάποιας αντίστοιχης τιμής (η οποία μπορεί να αλλάξει).

  6. Ένα λεξικό δημιουργείται παραθέτοντας τα στοιχεία του (ζεύγη κλειδιού-τιμής διαχωρισμένα με άνω και κάτω τελεία), διαχωρισμένα με κόμματα και περικλείοντάς τα όλα σε σγουρές αγκύλες. Για να αποκτήσετε πρόσβαση σε μια συγκεκριμένη τιμή, μετά το όνομα του λεξικού, γράψτε το αντίστοιχο κλειδί σε αγκύλες. Παράδειγμα:
    d = ("α": 1, "β": 3, 5: 3,14, "όνομα": "Ιωάννης")
    d["b"] = δ
    εκτύπωση d["a"], d["b"], d, d["όνομα"]
    Αποτέλεσμα: 1 3,14 3,14 Ιωάννης
    Για να προσθέσετε ένα νέο ζεύγος κλειδιού-τιμής, απλώς αντιστοιχίστε την αντίστοιχη τιμή στο στοιχείο με το νέο κλειδί:
    d["new"] = "νέα τιμή"
    εκτύπωση δ
    Αποτέλεσμα: ("a":1, "b":3, 5:3.14, "name":"John", "new":"new value")

3. Η Python, σε αντίθεση με τις Pascal, C, C++, δεν υποστηρίζει εργασία με δείκτες, δυναμική μνήμη και αριθμητική διεύθυνση. Με αυτόν τον τρόπο είναι παρόμοιο με την Java. Όπως γνωρίζετε, οι δείκτες αποτελούν πηγή ανεπαίσθητων σφαλμάτων και η εργασία με αυτούς σχετίζεται περισσότερο με προγραμματισμό χαμηλού επιπέδου. Για μεγαλύτερη αξιοπιστία και απλότητα, δεν συμπεριλήφθηκαν στην Python.

4. Ένα από τα χαρακτηριστικά της Python είναι το πώς μια μεταβλητή εκχωρείται σε μια άλλη, δηλ. όταν σε κάθε πλευρά του χειριστή" = «Υπάρχουν μεταβλητές.

Ακολουθώντας τον Timothy Budd (), θα καλέσουμε σημασιολογία δείκτηη περίπτωση που η ανάθεση οδηγεί μόνο στην εκχώρηση αναφοράς (δείκτη), δηλ. η νέα μεταβλητή γίνεται απλώς ένα άλλο όνομα, που δηλώνει την ίδια θέση μνήμης με την παλιά μεταβλητή. Σε αυτήν την περίπτωση, η αλλαγή της τιμής που υποδηλώνεται από τη νέα μεταβλητή θα οδηγήσει σε αλλαγή της τιμής της παλιάς, επειδή στην πραγματικότητα εννοούν το ίδιο πράγμα.

Όταν μια ανάθεση οδηγεί στη δημιουργία ενός νέου αντικειμένου (εδώ ένα αντικείμενο - με την έννοια ενός κομματιού μνήμης για την αποθήκευση μιας τιμής κάποιου τύπου) και την αντιγραφή των περιεχομένων της εκχωρημένης μεταβλητής σε αυτό, ονομάζουμε αυτή την περίπτωση αντιγραφή σημασιολογίας. Έτσι, εάν η σημασιολογία αντιγραφής ισχύει κατά την αντιγραφή, τότε οι μεταβλητές σε κάθε πλευρά του συμβόλου "=" θα σημαίνουν δύο ανεξάρτητα αντικείμενα με το ίδιο περιεχόμενο. Και εδώ, μια μεταγενέστερη αλλαγή σε μια μεταβλητή δεν θα επηρεάσει την άλλη με κανέναν τρόπο.

Η ανάθεση στην Python λειτουργεί ως εξής: if αποδοτέοςτο αντικείμενο είναι μια παρουσία τέτοιων τύπων όπως αριθμοί ή συμβολοσειρές, τότε εφαρμόζεται η σημασιολογία αντιγραφής, αλλά εάν στη δεξιά πλευρά υπάρχει μια παρουσία μιας κλάσης, λίστας, λεξικού ή πλειάδας, τότε εφαρμόζεται η σημασιολογία δείκτη. Παράδειγμα:
a = 2; b = a; b = 3
print "copy semantics: a=", a, "b=", b
a = ; b = a; b = 3
print "pointer semantics: a=", a, "b=", b
Αποτέλεσμα:
αντιγραφή σημασιολογίας: a= 2 b= 3
σημασιολογία δείκτη: a= b=

Για όσους από εσάς θέλετε να μάθετε τι συμβαίνει εδώ, θα σας δώσω μια διαφορετική άποψη για την εργασία στην Python. Εάν σε γλώσσες όπως Basic, Pascal, C/C++ ασχοληθήκαμε με μεταβλητές «χωρητικότητας» και σταθερές που είναι αποθηκευμένες σε αυτές (αριθμητική, συμβολική, συμβολοσειρά - δεν πειράζει), και η λειτουργία ανάθεσης σήμαινε «εισαγωγή» στη σταθερά στην εκχωρημένη μεταβλητή , τότε στην Python πρέπει ήδη να δουλέψουμε με τις μεταβλητές "name" και τα αντικείμενα που ονομάζουν. (Παρατηρήστε κάποιες αναλογίες με τη γλώσσα Prolog;) Τι είναι ένα αντικείμενο στην Python; Αυτό είναι ό,τι μπορεί να δοθεί ένα όνομα: αριθμοί, συμβολοσειρές, λίστες, λεξικά, στιγμιότυπα κλάσεων (που στο Object Pascal ονομάζονται αντικείμενα), οι ίδιες οι κλάσεις (!), συναρτήσεις, λειτουργικές μονάδες κ.λπ. Έτσι, όταν εκχωρούμε μια μεταβλητή σε ένα αντικείμενο, η μεταβλητή γίνεται το «όνομά» της και το αντικείμενο μπορεί να έχει όσα τέτοια «ονόματα» επιθυμείτε και είναι όλα ανεξάρτητα το ένα από το άλλο.

Τώρα, τα αντικείμενα χωρίζονται σε τροποποιήσιμα (μεταβλητά) και αμετάβλητα. Μεταβλητά - αυτά που μπορούν να αλλάξουν το «εσωτερικό τους περιεχόμενο», για παράδειγμα, λίστες, λεξικά, παρουσίες κλάσεων. Και αμετάβλητες - όπως αριθμοί, πλειάδες, συμβολοσειρές (ναι, και συμβολοσειρές, μπορείτε να αντιστοιχίσετε μια νέα συμβολοσειρά που λαμβάνεται από μια παλιά σε μια μεταβλητή, αλλά δεν μπορείτε να τροποποιήσετε την ίδια την παλιά συμβολοσειρά).

Έτσι, αν γράψουμε a = ; b = a; b = 3, η Python το ερμηνεύει ως εξής:

  • δώστε στο αντικείμενο μια "λίστα" " Ονομα ένα ;
  • δώστε σε αυτό το αντικείμενο άλλο όνομα - σι ;
  • τροποποιήστε το μηδενικό στοιχείο ενός αντικειμένου.

  • Έτσι παίρνουμε την «ψευδο» σημασιολογία των δεικτών.

    Κάτι τελευταίο να πούμε σχετικά: αν και δεν είναι δυνατή η αλλαγή της δομής της πλειάδας, τα μεταβλητά στοιχεία που περιέχει εξακολουθούν να είναι διαθέσιμα για τροποποίηση:

    T = (1, 2, , "string") t = 6 # αυτό δεν είναι δυνατό del t # επίσης ένα σφάλμα t = 0 # επιτρέπεται, τώρα το τρίτο στοιχείο είναι μια λίστα t = "S" # σφάλμα: οι συμβολοσειρές δεν είναι ευμετάβλητος

    5. Ο τρόπος με τον οποίο η Python ομαδοποιεί τους τελεστές είναι πολύ πρωτότυπος. Στο Pascal, αυτό γίνεται χρησιμοποιώντας αγκύλες χειριστή αρχή-τέλος, σε C, C++, Java - σγουρά άγκιστρα (), στο Basic, χρησιμοποιούνται κλεισίματα δομών γλώσσας (NEXT, WEND, END IF, END SUB).
    Στην Python, όλα είναι πολύ πιο απλά: η επιλογή ενός μπλοκ εντολών πραγματοποιείται μετατοπίζοντας την επιλεγμένη ομάδα κατά ένα ή περισσότερα κενά ή χαρακτήρες καρτελών προς τα δεξιά σε σχέση με την κεφαλή της δομής στην οποία θα ανήκει το συγκεκριμένο μπλοκ. Για παράδειγμα:

    αν x > 0: εκτύπωση ' x > 0 ' x = x - 8 άλλο: εκτύπωση ' x<= 0 ’ x = 0 Έτσι, ένα καλό στυλ γραφής προγραμμάτων, που ζητούν οι καθηγητές των γλωσσών Pascal, C++, Java κ.λπ., αποκτάται εδώ από την αρχή, αφού απλά δεν θα λειτουργήσει αλλιώς.

    Περιγραφή της γλώσσας. Δομές ελέγχου



    Χειρισμός Εξαίρεσης


    δοκιμάστε:
    <оператор1>
    [εκτός[<исключение> [, <переменная>] ]:
    <оператор2>]
    [αλλού <оператор3>]
    Εκτελέστηκε<оператор1>, εάν προκύψει εξαίρεση<исключение>, τότε εκπληρώνεται<оператор2>. Αν<исключение>έχει τιμή, εκχωρείται<переменной>.
    Με την επιτυχή ολοκλήρωση<оператора1>, εκτελέστηκε<оператор3>.
    δοκιμάστε:
    <оператор1>
    τελικά:
    <оператор2>
    Εκτελέστηκε<оператор1>. Εάν δεν υπάρχουν εξαιρέσεις, τότε εκτελέστε<оператор2>. Διαφορετικά εκτελείται<оператор2>και αμέσως εγείρεται εξαίρεση.
    υψώνω <исключение> [<значение>] Βάζει μια εξαίρεση<исключение>με παράμετρο<значение>.

    Εξαιρέσεις είναι μόνο οι χορδές. Παράδειγμα:

    My_ex = 'bad index' try: if bad: raise my_ex, bad εκτός my_ex, value: print 'Error', value

    Δήλωση Λειτουργίας



    Δήλωση τάξης



    Κατηγορία cMyClass: def __init__(self, val): self.value = val # def printVal(self): print ' value = ', self.value # # end cMyClass obj = cMyClass (3.14) obj.printVal() obj.value = " χορδή τώρα" obj.printVal () !} Αποτέλεσμα:
    τιμή = 3,14
    τιμή = συμβολοσειρά τώρα

    Τελεστές για όλους τους τύπους ακολουθιών (λίστες, πλειάδες, συμβολοσειρές)


    Χειριστές για λίστες (λίστα)


    s[i] = x Το i-ο στοιχείο s αντικαθίσταται από το x.
    s = t μέρος των στοιχείων s από i έως j-1 αντικαθίσταται από t (το t μπορεί επίσης να είναι λίστα).
    dels αφαιρεί το τμήμα s (ίδιο με το s = ).
    s.append(x) προσθέτει το στοιχείο x στο τέλος του s.
    s.count(x) επιστρέφει τον αριθμό των στοιχείων s ίσο με x.
    s.index(x) επιστρέφει το μικρότερο i έτσι ώστε s[i]==x.
    s.insert(i,j) το μέρος του s, που ξεκινά από το i-ο στοιχείο, μετατοπίζεται προς τα δεξιά και το s[i] εκχωρείται στο x.
    s.remove(x) ίδιο με το del s[ s.index(x) ] - αφαιρεί το πρώτο στοιχείο του s ίσο με x.
    s.reverse() γράφει μια συμβολοσειρά με αντίστροφη σειρά
    s.sort() ταξινομεί τη λίστα με αύξουσα σειρά.

    Χειριστές για λεξικά


    Αντικείμενα αρχείου


    Δημιουργήθηκε από μια ενσωματωμένη λειτουργία Άνοιξε()(δείτε την περιγραφή παρακάτω). Για παράδειγμα: f = open('mydan.dat','r').
    Μέθοδοι:

    Άλλα στοιχεία γλώσσας και ενσωματωμένες λειτουργίες


    = ΑΝΑΘΕΣΗ ΕΡΓΑΣΙΑΣ.
    Τυπώνω [ < c1 > [, < c2 >]* [, ] ] εμφανίζει τιμές< c1 >, < c2 >στην τυπική έξοδο. Τοποθετεί ένα κενό μεταξύ ορισμάτων. Εάν δεν υπάρχει κόμμα στο τέλος της λίστας ορισμάτων, μεταφέρεται σε νέα γραμμή.
    κοιλιακοί (x) επιστρέφει την απόλυτη τιμή του x.
    ισχύουν(φά , <аргументы>) καλεί τη συνάρτηση (ή τη μέθοδο) f με< аргументами >.
    chr(i) επιστρέφει μια συμβολοσειρά ενός χαρακτήρα με κωδικό ASCII i.
    cmp(x,y) επιστρέφει αρνητικό, μηδέν ή θετικό εάν, αντίστοιχα, x<, ==, или >από το y.
    divmod (α, β) επιστρέφει πλειάδα (a/b, a%b), όπου a/b είναι div b (το ακέραιο μέρος του αποτελέσματος διαίρεσης), a%b είναι mod b (το υπόλοιπο της διαίρεσης).
    ισοτιμία(α)
    επιστρέφει το αντικείμενο που καθορίζεται στο s ως συμβολοσειρά. Το S μπορεί να περιέχει οποιαδήποτε δομή γλώσσας. Το S μπορεί επίσης να είναι αντικείμενο κώδικα, για παράδειγμα: x = 1 ; incr_x = eval("x+1") .
    float(x) επιστρέφει μια πραγματική τιμή ίση με τον αριθμό x.
    εξάγωνο(x) επιστρέφει μια συμβολοσειρά που περιέχει τη δεκαεξαδική παράσταση του x.
    εισαγωγή(<строка>) οθόνες<строку>, διαβάζει και επιστρέφει μια τιμή από τυπική είσοδο.
    int(x) επιστρέφει την ακέραια τιμή του x.
    φακός) επιστρέφει το μήκος (αριθμός στοιχείων) ενός αντικειμένου.
    long (x) επιστρέφει μια μεγάλη ακέραια τιμή x.
    μέγ., λεπτά(α) επιστρέφει το μεγαλύτερο και το μικρότερο στοιχείο της ακολουθίας s (δηλαδή, το s είναι συμβολοσειρά, λίστα ή πλειάδα).
    oct(x) επιστρέφει μια συμβολοσειρά που περιέχει μια αναπαράσταση του αριθμού x.
    Άνοιξε(<имя файла>, <режим>='r' ) επιστρέφει ένα αντικείμενο αρχείου που έχει ανοίξει για ανάγνωση.<режим>= 'w' - άνοιγμα για γραφή.
    ord(c) επιστρέφει τον κωδικό ASCII ενός χαρακτήρα (συμβολοσειρά μήκους 1) γ.
    Pow(x, y) επιστρέφει την τιμή του x στη δύναμη του y.
    εύρος(<начало>, <конец>, <шаг>) επιστρέφει μια λίστα ακεραίων αριθμών μεγαλύτερους ή ίσους με<начало>και λιγότερο από<конец>, που δημιουργείται με δεδομένο<шагом>.
    raw_input( [ <текст> ] ) οθόνες<текст>στην τυπική έξοδο και διαβάζει μια συμβολοσειρά από την τυπική είσοδο.
    γύρος (x, n=0) επιστρέφει το πραγματικό x στρογγυλεμένο στο ν ο δεκαδικό ψηφίο.
    str(<объект>) επιστρέφει μια παράσταση συμβολοσειράς<объекта>.
    τύπος(<объект>) επιστρέφει τον τύπο του αντικειμένου.
    Για παράδειγμα: if type(x) == type(‘’): print ‘This is a string’
    xrange (<начало>, <конец>, <шаг>) είναι παρόμοιο με το εύρος, αλλά προσομοιώνει μόνο μια λίστα χωρίς να τη δημιουργεί. Χρησιμοποιείται σε βρόχο for.

    Ειδικές λειτουργίες για εργασία με λίστες


    φίλτρο (<функция>, <список>) επιστρέφει μια λίστα με αυτά τα στοιχεία<спиcка>, για το οποίο<функция>παίρνει την τιμή "αληθής".
    χάρτης(<функция>, <список>) ισχύει<функцию>σε κάθε στοιχείο<списка>και επιστρέφει μια λίστα αποτελεσμάτων.
    μειώνω (φά , <список>,
    [, <начальное значение> ] )
    επιστρέφει την τιμή που προκύπτει από "μείωση"<списка>συνάρτηση f. Αυτό σημαίνει ότι υπάρχει κάποια εσωτερική μεταβλητή p που έχει αρχικοποιηθεί<начальным значением>, στη συνέχεια, για κάθε στοιχείο<списка>, η συνάρτηση f καλείται με δύο παραμέτρους: το p και το στοιχείο<списка>. Το αποτέλεσμα που επιστρέφεται από το f εκχωρείται στο p. Αφού πέρασε από όλα<списка>μειώστε τις αποδόσεις σελ.
    Χρησιμοποιώντας αυτή τη συνάρτηση μπορείτε, για παράδειγμα, να υπολογίσετε το άθροισμα των στοιχείων μιας λίστας: def func (κόκκινο, el): επιστροφή red+el sum = μείωση (func, , 0) # now sum == 15
    λάμδα [<список параметров>] : <выражение> Μια "ανώνυμη" συνάρτηση που δεν έχει όνομα και γράφεται εκεί που ονομάζεται. Αποδέχεται τις παραμέτρους που καθορίζονται στο<списке параметров>και επιστρέφει την τιμή<выражения>. Χρησιμοποιείται για φίλτρο, μείωση, χάρτη. Για παράδειγμα: >>>φίλτρο εκτύπωσης (λάμδα x: x>3, ) >>>εκτύπωση χάρτη (λάμδα x: x*2, ) >>>p=reduce (λάμδα r, x: r*x, , 1) >>> εκτύπωση σελ 24

    Εισαγωγή Ενοτήτων



    Τυπική ενότητα μαθηματικών


    Μεταβλητές: πι, μι.
    Λειτουργίες(παρόμοια με τις συναρτήσεις της γλώσσας C):

    acos(x) cosh(x) ldexp(x,y) sqrt(x)
    asin(x) exp(x) ημερολόγιο (x) μαύρισμα (x)
    atan(x) fabs(x) sinh(x) frexp(x)
    atan2(x,y) όροφος (x) Pow(x,y) modf(x)
    ανώτατο όριο (x) fmod(x,y) αμαρτία (x)
    cos(x) log10(x) tanh(x)

    μονάδα συμβολοσειράς


    Λειτουργίες:

    συμπέρασμα


    Λόγω της απλότητας και της ευελιξίας της γλώσσας Python, μπορεί να προταθεί σε χρήστες (μαθηματικούς, φυσικούς, οικονομολόγους κ.λπ.) που δεν είναι προγραμματιστές, αλλά χρησιμοποιούν τεχνολογία υπολογιστών και προγραμματισμό στην εργασία τους.
    Τα προγράμματα στην Python αναπτύσσονται κατά μέσο όρο μιάμιση έως δύο (και μερικές φορές δύο έως τρεις) φορές πιο γρήγορα από ό,τι σε μεταγλωττισμένες γλώσσες (C, C++, Pascal). Επομένως, η γλώσσα μπορεί να έχει μεγάλο ενδιαφέρον για επαγγελματίες προγραμματιστές που αναπτύσσουν εφαρμογές που δεν είναι κρίσιμες για την ταχύτητα εκτέλεσης, καθώς και προγράμματα που χρησιμοποιούν πολύπλοκες δομές δεδομένων. Συγκεκριμένα, η Python έχει αποδειχθεί καλά στην ανάπτυξη προγραμμάτων για εργασία με γραφήματα και δημιουργία δέντρων.

    Βιβλιογραφία


    1. Budd T. Αντικειμενοστραφής προγραμματισμός. - Αγία Πετρούπολη: Peter, 1997.
    2. Guido van Rossum. Εκμάθηση Python. (www.python.org)
    3. Κρις Χόφμαν. Μια γρήγορη αναφορά Python. (www.python.org)
    4. Guido van Rossum. Αναφορά βιβλιοθήκης Python. (www.python.org)
    5. Guido van Rossum. Εγχειρίδιο αναφοράς Python. (www.python.org)
    6. Guido van Rossum. Εργαστήριο προγραμματισμού Python. (http://sultan.da.ru)


    Έχετε ερωτήσεις;

    Αναφέρετε ένα τυπογραφικό λάθος

    Κείμενο που θα σταλεί στους συντάκτες μας: