Τι είναι το Python Range;
Το εύρος Python () είναι μια ενσωματωμένη λειτουργία διαθέσιμη με το Python από το Python (3.x), και δίνει μια ακολουθία αριθμών με βάση τον δείκτη έναρξης και διακοπής που δίνεται. Σε περίπτωση που ο δείκτης εκκίνησης δεν δοθεί, το ευρετήριο θεωρείται ως 0 και θα αυξήσει την τιμή κατά 1 έως το ευρετήριο διακοπής.
Για παράδειγμα, το εύρος (5) θα σας δώσει τιμές 0,1,2,3,4. Το εύρος Python () είναι μια πολύ χρήσιμη εντολή και χρησιμοποιείται κυρίως όταν πρέπει να επαναλάβετε τη χρήση για βρόχο.
Σε αυτό το σεμινάριο, θα μάθετε:
- Τι είναι το Python Range;
- Σύνταξη
- Εύρος Python () Λειτουργία και ιστορικό
- Χρήση εύρους ()
- Χρήση έναρξης και διακοπής στο εύρος ()
- Χρησιμοποιώντας την αρχή, το σταμάτημα και το βήμα
- Αύξηση των τιμών στο εύρος χρησιμοποιώντας ένα θετικό βήμα.
- Reverse Range: Μείωση των τιμών χρησιμοποιώντας αρνητικό βήμα.
- Χρήση κυμαινόμενων αριθμών στην περιοχή Python ()
- Χρήση για βρόχο με εύρος Python ()
- Χρησιμοποιώντας το εύρος Python () ως λίστα
- Χρήση χαρακτήρων σε εύρος python ()
- Τρόπος πρόσβασης σε στοιχεία εύρους
- Παράδειγμα: Λάβετε ζυγούς αριθμούς χρησιμοποιώντας εύρος ()
- Συγχώνευση εξόδων δύο σειρών ()
- Χρήση εύρους () με το NumPy
Σύνταξη
range(start, stop, step)
Παράμετροι
- έναρξη: (προαιρετικό) Το ευρετήριο εκκίνησης είναι ακέραιος και, εάν δεν δοθεί, η προεπιλεγμένη τιμή είναι 0.
- stop: Ο δείκτης διακοπής αποφασίζει την τιμή στην οποία πρέπει να σταματήσει η λειτουργία εύρους. Είναι μια υποχρεωτική είσοδος στη λειτουργία εύρους. Η τελευταία τιμή θα είναι πάντα 1 μικρότερη από την τιμή διακοπής.
- βήμα: (προαιρετικό). Η τιμή βήματος είναι ο αριθμός με τον οποίο ο επόμενος αριθμός πρέπει να αυξηθεί, από προεπιλογή, είναι 1.
Τιμή επιστροφής:
Η τιμή επιστροφής είναι μια ακολουθία αριθμών από το δεδομένο δείκτη έναρξης έως διακοπής.
Εύρος Python () Λειτουργία και ιστορικό
Το εύρος Python () έχει εισαχθεί από την έκδοση 3 του python, πριν από αυτό το xrange () ήταν η συνάρτηση.
Τόσο το εύρος όσο και το xrange () χρησιμοποιούνται για την παραγωγή μιας ακολουθίας αριθμών.
Ακολουθούν οι διαφορές μεταξύ εύρους και xrange ():
εύρος() | xrange () |
Το εύρος () δίνει την ακολουθία των αριθμών και επιστρέφει μια λίστα αριθμών. | Η συνάρτηση xrange () δίνει ένα αντικείμενο γεννήτριας που πρέπει να περιτυλιχθεί σε έναν βρόχο για να πάρει τις τιμές. |
Το εύρος () επιστρέφει μια λίστα. | Το xrange () επιστρέφει ένα αντικείμενο γεννήτριας. |
Η μέθοδος range () χρησιμοποιεί περισσότερη μνήμη καθώς η λίστα που επιστρέφεται πρέπει να αποθηκευτεί σε σύγκριση με το xrange (). | Καθώς το xrange () επιστρέφει ένα αντικείμενο γεννήτριας, δεν δίνει τιμές αμέσως και πρέπει να χρησιμοποιηθεί στο εσωτερικό για το βρόχο για να πάρει τις τιμές. |
Η χρήση της μνήμης είναι περισσότερο εξ ου και η εκτέλεση του κώδικα είναι αργή όταν εργάζεστε σε ένα τεράστιο σύνολο δεδομένων. | Η εκτέλεση κώδικα είναι ταχύτερη χρησιμοποιώντας xrange (). |
Χρήση εύρους ()
Αυτό το παράδειγμα δείχνει πώς να εκτυπώσετε τις τιμές από 0-9 χρησιμοποιώντας εύρος ().
Η τιμή που χρησιμοποιείται στο εύρος είναι 10, επομένως η έξοδος είναι 0 1 2 3 4 5 6 7 8 9
Δεδομένου ότι η αρχή δεν δίνεται, η αρχή θεωρείται ως 0 και η τελευταία τιμή δίνεται έως τις 9. Η τελευταία τιμή είναι πάντα 1 μικρότερη από τη δεδομένη τιμή, δηλαδή stop-1.
for i in range(10):print(i, end =" ")
Παραγωγή:
0 1 2 3 4 5 6 7 8 9
Χρήση έναρξης και διακοπής στο εύρος ()
Στον κώδικα, η τιμή έναρξης είναι 3 και η τιμή διακοπής είναι 10. Εδώ ο δείκτης έναρξης είναι 3, οπότε η ακολουθία των αριθμών θα ξεκινήσει από 3 έως την τιμή διακοπής. Η τελευταία τιμή στην ακολουθία θα είναι 1 μικρότερη από την τιμή διακοπής 10-1 = 9.
for i in range(3, 10):print(i, end =" ")
Παραγωγή:
3 4 5 6 7 8 9
Χρησιμοποιώντας την αρχή, το σταμάτημα και το βήμα
Η τιμή έναρξης είναι 3, οπότε η ακολουθία των αριθμών θα ξεκινήσει στο 3. Η τιμή διακοπής είναι 10, οπότε η ακολουθία των αριθμών θα σταματήσει στο (10-1) δηλ. 9. Το βήμα είναι 2, οπότε κάθε τιμή στην ακολουθία θα αυξάνεται κατά 2. Εάν η τιμή βήματος δεν δοθεί, η τιμή για το βήμα είναι προεπιλεγμένη στο 1.
for i in range(3, 10, 2):print(i, end =" ")
Παραγωγή:
3 5 7 9
Μέχρι στιγμής, έχουμε δει πώς η λειτουργία range () δίνει την αυξημένη τιμή για την τιμή stop. Ας δοκιμάσουμε τώρα ένα παράδειγμα για να λάβουμε τη μειωμένη τιμή στο εύρος που δίνεται.
Αύξηση των τιμών στο εύρος χρησιμοποιώντας ένα θετικό βήμα.
Το βήμα της παραμέτρου στο εύρος () μπορεί να χρησιμοποιηθεί για την αύξηση / μείωση των τιμών. Από προεπιλογή, είναι μια θετική τιμή 1. Επομένως, θα δίνει πάντα αυξημένες τιμές.
Η τιμή του βήματος πρέπει να είναι θετική, εάν θέλετε να αυξήσετε τις τιμές ως ouput.
for i in range(1, 30, 5):print(i, end =" ")
Παραγωγή:
1 6 11 16 21 26
Reverse Range: Μείωση των τιμών χρησιμοποιώντας αρνητικό βήμα.
Το βήμα της παραμέτρου με αρνητική τιμή στο εύρος () μπορεί να χρησιμοποιηθεί για τη λήψη μειωμένων τιμών. Στο παρακάτω παράδειγμα η τιμή του βήματος είναι αρνητική, οπότε η έξοδος θα μειωθεί από την τιμή εύρους που δίνεται.
for i in range(15, 5, -1):print(i, end =" ")
Παραγωγή:
15 14 13 12 11 10 9 8 7 6
Η τιμή έναρξης είναι 15, η τιμή διακοπής είναι 5 και η τιμή βήματος είναι αρνητικός αριθμός, δηλαδή -1. Με τις παραπάνω εισόδους, η συνάρτηση εύρους () μειώνει την τιμή από 15 και μετά μέχρι να φτάσει στην τιμή διακοπής, αλλά εδώ η διαφορά είναι η τελευταία τιμή θα είναι στάση +1.
Χρήση κυμαινόμενων αριθμών στην περιοχή Python ()
Ας εργαστούμε τώρα στο εύρος () χρησιμοποιώντας αριθμούς κινητής υποδιαστολής.
Παράδειγμα:
for i in range(10.5):print(i, end =" ")
Στο παραπάνω παράδειγμα χρησιμοποιήσαμε την τιμή στάσης ως 10.5.
Η έξοδος είναι:
Traceback (most recent call last):File "python_range.py", line 1, infor i in range(10.5):TypeError: 'float' object cannot be interpreted as an integer
Η Python δίνει σφάλμα καθώς η συνάρτηση range () δεν υποστηρίζει αριθμούς κινητής υποδιαστολής για έναρξη, διακοπή και βήμα.
Χρήση για βρόχο με εύρος Python ()
Σε αυτό το παράδειγμα θα χρησιμοποιήσουμε μια σειρά αριθμών και, ας δούμε πώς να χρησιμοποιήσουμε τον επαναλαμβανόμενο πίνακα μέσα στο βρόχο χρησιμοποιώντας εύρος ()
Παράδειγμα:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")
Παραγωγή:
MysqlMongodb PostgreSQL Firebase
Στο παραπάνω παράδειγμα χρησιμοποιήσαμε το len (arr_list) ως τιμή διακοπής. Το for loop θα επαναληφθεί μέχρι την τιμή διακοπής, δηλαδή το μήκος του πίνακα και θα είναι 4, καθώς έχουμε τέσσερα στοιχεία στη arr_list. Η τιμή έναρξης θα είναι 0 και το βήμα θα είναι 1. Έτσι οι τιμές θα ξεκινήσουν από το 0 και θα σταματήσουν στο 3, δηλαδή το μήκος του πίνακα -1 που σημαίνει 4 -1 = 3.
Χρησιμοποιώντας το εύρος Python () ως λίστα
Σε αυτό το παράδειγμα θα δείτε πώς να χρησιμοποιήσετε την έξοδο από εύρος ως λίστα.
Παράδειγμα:
print(list(range(10)))
Παραγωγή:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Μπορείτε να δείτε ότι η έξοδος είναι μια μορφή λίστας. Δεν ήταν απαραίτητο να βρούμε το εύρος () και χρησιμοποιώντας τη μέθοδο list () θα μπορούσαμε να μετατρέψουμε απευθείας την έξοδο από εύρος σε μορφή λίστας.
Χρήση χαρακτήρων σε εύρος python ()
Μέχρι στιγμής, έχουμε χρησιμοποιήσει ακέραιους αριθμούς στο εύρος python (). Έχουμε επίσης δει ότι οι αριθμοί κινητής υποδιαστολής δεν υποστηρίζονται στο εύρος python. Ας προσπαθήσουμε να δούμε την έξοδο ως προς το τι συμβαίνει όταν χρησιμοποιούμε χαρακτήρες.
Παράδειγμα:
for c in range ('z'):print(c, end =" ")
Παραγωγή:
Traceback (most recent call last):File "python_range.py", line 1, infor c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer
Ρίχνει ένα σφάλμα λέγοντας ότι μια συμβολοσειρά δεν μπορεί να ερμηνευθεί ως ακέραιος.
Για να λάβετε τη λίστα των αλφαβήτων, μπορείτε να προσαρμόσετε τον κώδικα και να λάβετε τα επιθυμητά αποτελέσματα όπως φαίνεται παρακάτω:
Παράδειγμα:
def get_alphabets(startletter, stopletter, step):for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):yield chr(c)print(list(get_alphabets("a", "h", 1)))
Παραγωγή:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Τρόπος πρόσβασης σε στοιχεία εύρους
Μπορείτε να χρησιμοποιήσετε ένα for-loop για να λάβετε τις τιμές από το εύρος ή να χρησιμοποιήσετε το ευρετήριο για πρόσβαση στα στοιχεία από το εύρος ().
Χρήση για βρόχο
Παράδειγμα:
for i in range(6):print(i)
Παραγωγή:
012345
Χρήση ευρετηρίου
Το ευρετήριο χρησιμοποιείται με εύρος για να πάρει την τιμή διαθέσιμη σε αυτήν τη θέση. Εάν η τιμή εύρους είναι 5, για να λάβετε την αρχική τιμή, μπορείτε να χρησιμοποιήσετε το εύρος (5) [0] και το επόμενο εύρος τιμών (5) [1] και ούτω καθεξής.
Παράδειγμα:
startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)
Παραγωγή:
startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)
Χρήση λίστας ()
Αυτή η μέθοδος θα εκτυπώσει όλα τα στοιχεία από το εύρος (). Χρησιμοποιώντας τη λίστα () θα επιστρέψει τα στοιχεία από το εύρος () σε μορφή λίστας.
Παράδειγμα:
print(list(range(10)))
Παραγωγή:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Δίνει την έξοδο λίστας για το δεδομένο εύρος.
Παράδειγμα: Λάβετε ζυγούς αριθμούς χρησιμοποιώντας εύρος ()
Χρησιμοποιώντας το εύρος () θα εμφανιστεί η λίστα των ζυγών αριθμών στην περιοχή που δίνεται ως είσοδος. Οι παράμετροι για το εύρος () είναι, η έναρξη είναι 2, η διακοπή είναι 20 και το βήμα είναι 2, οπότε οι τιμές θα αυξηθούν από το 2 και θα δώσουν ζυγοί αριθμούς μέχρι το stop-2.
Παράδειγμα:
for i in range(2, 20, 2):print(i, end =" ")
Παραγωγή:
2 4 6 8 10 12 14 16 18
Συγχώνευση εξόδων δύο σειρών ()
Σε αυτό το παράδειγμα θα συνενωθούν 2 λειτουργίες εύρους () με τη βοήθεια της λειτουργίας αλυσίδας λειτουργικών μονάδων itertools ().
Παράδειγμα:
from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")
Παραγωγή:
Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Χρήση εύρους () με το NumPy
Η μονάδα NumPy έχει λειτουργία arange () που λειτουργεί και δίνει παρόμοια έξοδο όπως εύρος (). Η διάταξη () λαμβάνει τις ίδιες παραμέτρους όπως το εύρος ().
Σύνταξη:
arange(start, stop, step)
Για να εργαστείτε με το NumPy ακολουθήστε τα παρακάτω βήματα.
Βήμα 1 : Εισαγωγή μονάδας NumPy
import numpy
Σε περίπτωση κατά την εκτέλεση, δίνει ένα σφάλμα που λέει ότι η μονάδα numpy δεν βρέθηκε, πρέπει να εγκαταστήσετε τη μονάδα όπως φαίνεται στο βήμα 2
Βήμα 2 : Εγκαταστήστε το NumPy
pip install numpy
Βήμα 3 : Παράδειγμα εργασίας του arange () χρησιμοποιώντας το NumPy
import numpy as npfor i in np.arange(10):print(i, end =" ")
Παραγωγή:
0 1 2 3 4 5 6 7 8 9
Αριθμοί κυμαινόμενου σημείου με χρήση NumPy
Δεν είναι δυνατή η λήψη της ακολουθίας κινούμενου σημείου χρησιμοποιώντας εύρος (), αλλά είναι δυνατή η χρήση της σειράς NumPy ().
Παράδειγμα:
Το εύρος που θέλουμε είναι από 0,5 έως 1,5. Η τιμή θα αυξηθεί κατά 0,2.
import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")
Παραγωγή:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Η έξοδος που έχουμε είναι λίγο περίεργη, μερικοί από τους αριθμούς float εμφανίζονται με 16 δεκαδικά ψηφία. Αυτό συμβαίνει λόγω της πολυπλοκότητας της αποθήκευσης δεκαδικών κυμαινόμενων αριθμών σε δυαδική μορφή. Μπορείτε επίσης να στρογγυλοποιήσετε τις τιμές εάν απαιτείται και να τις περιορίσετε στα δεκαδικά ψηφία που χρειάζεστε.
Περίληψη:
- Το εύρος Python () είναι μια ενσωματωμένη λειτουργία διαθέσιμη με το Python από το Python (3.x), και δίνει μια ακολουθία αριθμών με βάση τον δείκτη έναρξης και διακοπής που δίνεται. Σε περίπτωση που ο δείκτης εκκίνησης δεν δοθεί, το ευρετήριο θεωρείται ως 0 και θα αυξήσει την τιμή μέχρι το ευρετήριο διακοπής.
- Το εύρος Python () έχει εισαχθεί από την έκδοση 3 του python, πριν από αυτό το xrange () ήταν η συνάρτηση.
- Το εύρος () δίνει την ακολουθία των αριθμών και επιστρέφει μια λίστα αριθμών. Η συνάρτηση xrange () δίνει ένα αντικείμενο γεννήτριας που πρέπει να περιτυλιχθεί σε έναν βρόχο για να πάρει τις τιμές.
- Το βήμα της παραμέτρου στο εύρος () μπορεί να χρησιμοποιηθεί για την αύξηση / μείωση των τιμών. Από προεπιλογή, είναι μια θετική τιμή 1. Επομένως, θα δίνει πάντα αυξημένες τιμές.
- Η Python δίνει ένα σφάλμα για αριθμούς κινητής υποδιαστολής καθώς η συνάρτηση range () υποστηρίζει μόνο ακέραιες τιμές.
- Οι τιμές από το εύρος () είναι προσβάσιμες με χρήση για βρόχο, χρησιμοποιώντας ευρετήριο και λίστα ()
- Η μονάδα NumPy έχει λειτουργία arange () που λειτουργεί και δίνει παρόμοια έξοδο όπως εύρος (). Το arange () λαμβάνει τις ίδιες παραμέτρους με το εύρος ().
- Είναι δυνατή η λήψη της ακολουθίας κυμαινόμενου σημείου NumPy arange () που δεν υποστηρίζεται χρησιμοποιώντας εύρος ().