9 κόλπα με την Python REPL

9 κόλπα με την Python REPL

Φυσικά, η Pi στο Raspberry Pi προέρχεται από την Python, μια από τις πιο δημοφιλείς γλώσσες προγραμματισμού στον κόσμο και ιδιαίτερα δημοφιλής μεταξύ των μαστόρων και των κατασκευαστών. Σε αυτή τη δημοσίευση, θέλω να σας δώσω 9 κόλπα και συμβουλές με την Python REPL - αλλά μην ανησυχείτε αν δεν είστε εξαιρετικά εξοικειωμένοι με την Python ή το REPL.

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

Τι είναι το REPL;

Το REPL ή Read-Evaluate-Print Loop (Βρόχος ανάγνωσης-εκτίμησης-εκτύπωσης) είναι ένας τρόπος για να αλληλεπιδράσετε άμεσα με τον διερμηνέα της Python. Ονομάζεται REPL, επειδή διαβάζει, αξιολογεί και εκτυπώνει την είσοδο και στη συνέχεια επιστρέφει με βρόχο στην αρχή, επιτρέποντάς σας να εισαγάγετε μια άλλη εντολή.

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

>>>

Εδώ μπορείτε να τοποθετήσετε την εισήγησή σας.

Αξίζει να αναφερθεί ότι

Οι όροι "Python Shell" και "Python Interpreter" χρησιμοποιούνται μερικές φορές εναλλακτικά, αλλά υπάρχει μια λεπτή διαφορά μεταξύ τους. Ο διερμηνέας Python αναφέρεται στο πραγματικό πρόγραμμα ή λογισμικό που εκτελεί κώδικα Python. Το κέλυφος Python, ωστόσο, είναι η διεπαφή που σας επιτρέπει να αλληλεπιδράσετε με τον διερμηνέα σε πραγματικό χρόνο.

Εκτός από τα τυπικά Python και Python3 Shells, πολλοί χρησιμοποιούν επίσης τα IPython και bpython, τα οποία είναι προγράμματα γραμμής εντολών που προσφέρουν μοναδικά χαρακτηριστικά, όπως η επισήμανση σύνταξης.

Python REPL

Μπορείτε να δείτε ότι το IPython και το bpython είναι πιο όμορφα από προεπιλογή (παρακάτω θα δούμε πώς να κάνουμε και το τυπικό REPL πιο όμορφο).

Αξίζει επίσης να σημειωθεί ότι το REPL της IPython αριθμεί τις γραμμές εισόδου "In [1]", "In [2]", κλπ.

Σε αντίθεση με την IPython, η bpython διατηρεί τη διάταξη >>>.

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

Αυτό καθιστά το REPL ένα ανεκτίμητο εργαλείο για όποιον θέλει να ασχοληθεί με το Raspberry Pi.

Τώρα που έχετε ενημερωθεί για το τι είναι το REPL, ας εξερευνήσουμε μερικά κόλπα για τη χρήση του:

Κόλπο 1: Βρείτε τεκμηρίωση

Μπορείτε να βρείτε την τεκμηρίωση για οποιοδήποτε αντικείμενο ή ενότητα της Python απευθείας από το REPL χρησιμοποιώντας την εντολή help() λειτουργία.

Για παράδειγμα, πληκτρολογώντας help(str) θα εμφανίσει την τεκμηρίωση για το αντικείμενο string. Μπορείτε επίσης να προσθέσετε ένα συγκεκριμένο όνομα μεθόδου ή συνάρτησης για να λάβετε λεπτομερείς πληροφορίες, όπως

 help(str.upper)

Αν το πληκτρολογήσετε αυτό, θα δείτε τα εξής:

Python REPL εύρεση τεκμηρίωσης

Κόλπο 2: Χρησιμοποιήστε την καρτέλα Ολοκλήρωση

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

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

Συμπλήρωση καρτέλας Python REPL

Κόλπο 3: Δημιουργία δηλώσεων πολλαπλών γραμμών

Επιπλέον, το REPL θα σας επιτρέπει να γράφετε εντολές πολλών γραμμών χρησιμοποιώντας συνέχεια γραμμής.

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

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

# example 1: using backslash for a multi-line statement

name = 'Fatima'
age = 46
country = 'Germany'

message = 'Hi, ' + \
          name + \
          '! You are ' + \
          str(age) + \
          ' years old and from ' + \
          country + '.'

print(message)

# the message will be 'Hi, Fatima! You are 46 years old and from Germany.'

# example 2: using parentheses for a multi-line statement

total = (1 + 2 + 3 +
         4 + 5 + 6 +
         7 + 8 + 9)

print("The total is:", total)

# the message will be 'The total is: 45'

Κόλπο 4: Πρόσβαση σε κώδικα που έχει πληκτρολογηθεί προηγουμένως

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

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

Κόλπο 5: Χρησιμοποιήστε τη μεταβλητή Underscore

Η μεταβλητή υπογράμμισης (_) περιέχει το αποτέλεσμα της τελευταίας έκφρασης που αξιολογήθηκε στο REPL.

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

Μεταβλητή υπογράμμισης Python REPL

Κόλπο 6: Εκτέλεση εντολών συστήματος και μαγικών εντολών (IPython)

Στην IPython (συντομογραφία του "Interactive Python"), μπορείτε να εκτελέσετε εντολές του συστήματος απευθείας, προτάσσοντας μια γραμμή κώδικα με ένα θαυμαστικό (!).

Μαζί με το IPython's μαγικές εντολές, like %cd to change directory, you’re able to use the Python REPL for seamless integration!

Για παράδειγμα, !ls σε συστήματα που βασίζονται σε Unix ή !dir στα Windows θα εμφανίσει τα περιεχόμενα του τρέχοντος καταλόγου.

Μαγικές εντολές Python REPL

Κόλπο 7: Πειραματιστείτε με εισαγωγές

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

Δείτε πώς μπορείτε να χρησιμοποιήσετε το Python REPL για να πειραματιστείτε με τις εισαγωγές:

>>> import math
>>> math.sqrt(16)
4.0

Σε αυτό το παράδειγμα, χρησιμοποιούμε το sqrt() συνάρτηση από το math ενότητα για τον υπολογισμό της τετραγωνικής ρίζας του 16.

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

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

Κόλπο 8: Προσαρμόστε την προτροπή REPL

Δεν σας αρέσει το >>> ως κύρια προτροπή και το ... ως δευτερεύουσα προτροπή;

Είστε τυχεροί, γιατί μπορείτε να προσαρμόσετε την προτροπή που εμφανίζεται από το Python REPL.

Τροποποιώντας το sys.ps1 και sys.ps2 μεταβλητές, μπορείτε να αλλάξετε την κύρια και τη δευτερεύουσα προτροπή, αντίστοιχα.

Απλά τρέξτε:

import sys

sys.ps1 = 'primary'
sys.ps2 = 'secondary'

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

Με αυτόν τον τρόπο θα επηρεαστεί μόνο η τρέχουσα σύνοδος REPL. Αν θέλετε να κάνετε τα πράγματα λίγο πιο μόνιμα, τότε θα πρέπει να βρείτε το αρχείο ".pyrc" και να επεξεργαστείτε τις προτροπές εκεί.

Θυμάστε τις βαρετές, άσχημες προτροπές μου στα REPLs μου παραπάνω; Ας αλλάξουμε το χρώμα.

Αν χρησιμοποιείτε Linux, τότε μπορείτε να συνδέσετε τα ακόλουθα στο τερματικό σας:

tee ~/.pyrc <<E0F
import sys
sys.ps1='\x01\x1b[1;34;40m\x02>>>\x01\x1b[0m\x02'
sys.ps2='\x01\x1b[1;35;40m\x02...\x01\x1b[0m\x02'
E0F

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

Μόλις το κάνετε αυτό, φροντίστε να το εξάγετε:

export PYTHONSTARTUP=~/.pyrc

Τώρα οι προτροπές σας θα πρέπει να μοιάζουν κάπως έτσι:

Python REPL Προσαρμογή προτροπής

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

Κόλπο 9: Εξερευνήστε ενότητες και αντικείμενα

Αν θέλετε να συμπληρώσετε την εύρεση τεκμηρίωσης και να χρησιμοποιήσετε τη συμπλήρωση καρτελών, τότε αυτό είναι το τέχνασμα που ολοκληρώνει το πακέτο!

Μπορείτε να εξερευνήσετε τα περιεχόμενα μιας ενότητας (ή ενός αντικειμένου) χρησιμοποιώντας την εντολή dir() λειτουργία.

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

Για παράδειγμα:

import math
print (dir(math))

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

Python REPL εξερευνήστε ενότητες & αντικείμενα

Τέτοια τεχνάσματα μπορούν να συμβάλουν στην απρόσκοπτη ροή εργασίας σας.

Μόλις μάθετε αυτά τα 9 κόλπα, θα μπορείτε να χρησιμοποιείτε το REPL πιο αποτελεσματικά.

Αυτό θα κάνει την αποσφαλμάτωση και τη δοκιμή του κώδικά σας πολύ πιο ομαλή.

Πείτε μας τι κόλπα REPL έχετε στα σχόλια παρακάτω!

Αφήστε ένα σχόλιο