Python range() Συνάρτηση: Float, List, For loop Παραδείγματα

Τι είναι Python Σειρά;

Python Το range() είναι μια ενσωματωμένη συνάρτηση που διατίθεται με Python από Python(3.x), και δίνει μια ακολουθία αριθμών με βάση τον δείκτη έναρξης και λήξης που δίνεται. Σε περίπτωση που δεν δοθεί ο δείκτης έναρξης, ο δείκτης θεωρείται ως 0 και θα αυξήσει την τιμή κατά 1 μέχρι τον δείκτη διακοπής.

Για παράδειγμα, το range(5) θα σας δώσει τιμές 0,1,2,3,4 .Το Python Το range() είναι μια πολύ χρήσιμη εντολή και χρησιμοποιείται κυρίως όταν πρέπει να επαναλάβετε χρησιμοποιώντας τον βρόχο for.

Σύνταξη

range(start, stop, step)

παράμετροι

  • αρχή: (προαιρετικό) Ο δείκτης έναρξης είναι ακέραιος και αν δεν δοθεί, η προεπιλεγμένη τιμή είναι 0.
  • να σταματήσει: Ο δείκτης διακοπής καθορίζει την τιμή στην οποία πρέπει να σταματήσει η συνάρτηση εύρους. Είναι μια υποχρεωτική είσοδος στη συνάρτηση εμβέλειας. Η τελευταία τιμή θα είναι πάντα 1 μικρότερη από την τιμή διακοπής.
  • βήμα: (προαιρετικό). Η τιμή βήματος είναι ο αριθμός με τον οποίο πρέπει να αυξηθεί το εύρος του επόμενου αριθμού, από προεπιλογή, είναι 1.

Τιμή επιστροφής

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

Python range() Λειτουργία και ιστορικό

Python Το range() εισήχθη από την έκδοση 3 της python, πριν ήταν η συνάρτηση xrange().

Τόσο το range όσο και το xrange() χρησιμοποιούνται για την παραγωγή μιας ακολουθίας αριθμών.

Ακολουθούν η διαφορά μεταξύ εμβέλειας και xrange():

εύρος() xrange ()
Το range() δίνει την ακολουθία αριθμών και επιστρέφει μια λίστα αριθμών. Η συνάρτηση xrange() δίνει ένα αντικείμενο γεννήτριας που πρέπει να τοποθετηθεί σε βρόχο for-loop για να ληφθούν οι τιμές.
Το range() επιστρέφει μια λίστα. Η xrange() επιστρέφει ένα αντικείμενο γεννήτριας.
Η μέθοδος range() χρησιμοποιεί περισσότερη μνήμη καθώς η λίστα που επιστρέφεται πρέπει να αποθηκευτεί σε σύγκριση με την xrange(). Καθώς η xrange() επιστρέφει ένα αντικείμενο γεννήτριας, δεν δίνει τιμές αμέσως και πρέπει να χρησιμοποιηθεί μέσα στο for-loop για να ληφθούν οι τιμές.
Η χρήση της μνήμης είναι μεγαλύτερη, επομένως η εκτέλεση του κώδικα είναι αργή όταν εργάζεστε σε ένα τεράστιο σύνολο δεδομένων. Η εκτέλεση του κώδικα είναι ταχύτερη χρησιμοποιώντας το xrange().

Χρήση εύρους ()

Αυτό το παράδειγμα δείχνει πώς να εκτυπώσετε τις τιμές από 0-9 χρησιμοποιώντας το range().

Η τιμή που χρησιμοποιείται στην περιοχή είναι 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 που δίνεται. Ας δοκιμάσουμε τώρα ένα παράδειγμα για να λάβουμε τη μειωμένη τιμή στο εύρος που δίνεται.

Αύξηση των τιμών στο εύρος χρησιμοποιώντας ένα θετικό βήμα.

Το βήμα της παραμέτρου στο range() μπορεί να χρησιμοποιηθεί για την αύξηση/μείωση των τιμών. Από προεπιλογή, είναι μια θετική τιμή 1. Άρα θα δίνει πάντα αυξημένες τιμές.

Η τιμή του βήματος πρέπει να είναι θετική στην περίπτωση που θέλετε να θέλετε αυξημένες τιμές ως έξοδο.

for i in range(1, 30, 5):
    print(i, end =" ")

Παραγωγή:

1 6 11 16 21 26

Revάλλως Εύρος: Μείωση των τιμών χρησιμοποιώντας αρνητικό βήμα

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

for i in range(15, 5, -1):
    print(i, end =" ")

Παραγωγή:

15 14 13 12 11 10 9 8 7 6

Η τιμή έναρξης είναι 15, η τιμή διακοπής είναι 5 και η τιμή βήματος είναι αρνητικός αριθμός, δηλαδή -1. Με τις παραπάνω εισόδους η συνάρτηση range() θα μειώσει την τιμή από το 15 και μετά μέχρι να φτάσει στην τιμή διακοπής, αλλά εδώ η διαφορά είναι ότι η τελευταία τιμή θα είναι stop + 1.

Χρησιμοποιώντας κυμαινόμενους αριθμούς στο Python εύρος()

Ας δουλέψουμε τώρα στο range() χρησιμοποιώντας αριθμούς κινητής υποδιαστολής.

Παράδειγμα:

for i in range(10.5):
    print(i, end =" ")

Στο παραπάνω παράδειγμα χρησιμοποιήσαμε την τιμή διακοπής ως 10.5.

Η έξοδος είναι:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for i in range(10.5):
TypeError: 'float' object cannot be interpreted as an integer

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

Χρήση for-loop με Python εύρος()

Σε αυτό το παράδειγμα θα χρησιμοποιήσουμε έναν πίνακα αριθμών και, ας δούμε πώς να χρησιμοποιήσουμε το iterate the array μέσα στο for-loop χρησιμοποιώντας το range()

Παράδειγμα:

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 θα επαναληφθεί μέχρι την τιμή stop, δηλαδή το μήκος του πίνακα και θα είναι 4, καθώς έχουμε τέσσερα στοιχεία στη arr_list. Η τιμή έναρξης θα είναι 0 και το βήμα θα είναι 1. Άρα οι τιμές θα ξεκινούν από το 0 και θα σταματήσουν στο 3, δηλαδή το μήκος του πίνακα -1 που σημαίνει 4 -1 = 3.

Χρησιμοποιώντας Python range() ως λίστα

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

Παράδειγμα:

print(list(range(10)))

Παραγωγή:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Μπορείτε να δείτε ότι η έξοδος είναι μια μορφή λίστας. Δεν ήταν απαραίτητο να κάνουμε βρόχο το range() και χρησιμοποιώντας τη μέθοδο list() μπορούσαμε να μετατρέψουμε απευθείας την έξοδο από το range σε list format.

Χρήση χαρακτήρων στο εύρος python()

Μέχρι στιγμής, έχουμε χρησιμοποιήσει ακέραιους αριθμούς στο python range(). Είδαμε επίσης ότι οι αριθμοί κινητής υποδιαστολής δεν υποστηρίζονται στην περιοχή python. Ας προσπαθήσουμε να δούμε την έξοδο ως προς το τι συμβαίνει όταν χρησιμοποιούμε χαρακτήρες.

Παράδειγμα:

for c in range ('z'):
        print(c, end =" ")

Παραγωγή:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for 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 για να λάβετε τις τιμές από το εύρος ή να χρησιμοποιήσετε το ευρετήριο για να αποκτήσετε πρόσβαση στα στοιχεία από το range().

Χρήση for-loop

Παράδειγμα:

for i in range(6):
    print(i)

Παραγωγή:

0
1
2
3
4
5

Χρήση ευρετηρίου

Ο δείκτης χρησιμοποιείται με εύρος για να ληφθεί η διαθέσιμη τιμή σε αυτήν τη θέση. Εάν η τιμή εύρους είναι 5, για να λάβετε την τιμή έναρξης, μπορείτε να χρησιμοποιήσετε το range(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)

Παραγωγή:

The first element in range is =  0
The second element in range is =  1
The first element in range is =  4

Χρήση λίστας()

Αυτή η μέθοδος θα εκτυπώσει όλα τα στοιχεία από το range(). Χρησιμοποιώντας τη λίστα() θα επιστρέψει τα στοιχεία από το range() σε μορφή λίστας.

Παράδειγμα:

print(list(range(10)))

Παραγωγή:

 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Δίνει την έξοδο της λίστας για το εύρος που δίνεται.

Παράδειγμα: Λάβετε ζυγούς αριθμούς χρησιμοποιώντας το range()

Χρησιμοποιώντας το range() θα λάβετε τη λίστα των ζυγών αριθμών στο εύρος που δίνεται ως είσοδος. Οι παράμετροι για το range() είναι, το start είναι 2, το stop είναι 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 συναρτήσεις range() με τη βοήθεια της συνάρτησης itertools module chain().

Παράδειγμα:

from itertools import chain 

print("Merging two range into one") 
frange =chain(range(10), range(10, 20, 1))
for i in frange: 
    print(i, end=" ")

Παραγωγή:

Merging two range into one
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Χρήση range() με NumPy

Η λειτουργική μονάδα NumPy έχει συνάρτηση arange() που λειτουργεί και δίνει παρόμοια έξοδο όπως το range(). Το arrange() λαμβάνει τις ίδιες παραμέτρους όπως το range().

Σύνταξη:

arange(start, stop, step)

Για να εργαστείτε με το NumPy ακολουθήστε τα παρακάτω βήματα.

Βήμα 1: Εισαγωγή μονάδας NumPy

import numpy

Σε περίπτωση που κατά την εκτέλεση, εμφανίζεται ένα σφάλμα λέγοντας ότι η numpy module δεν βρέθηκε, πρέπει να εγκαταστήσετε τη μονάδα όπως φαίνεται στο βήμα 2.

Βήμα 2: Εγκαταστήστε το NumPy

pip install numpy

Βήμα 3: Παράδειγμα εργασίας του arange() χρησιμοποιώντας το NumPy

import numpy as np 

for  i in np.arange(10):
   print(i, end =" ")        

Παραγωγή:

0 1 2 3 4 5 6 7 8 9

Αριθμοί κινητής υποδιαστολής χρησιμοποιώντας το NumPy arange()

Δεν είναι δυνατό να ληφθεί η ακολουθία κινητής υποδιαστολής χρησιμοποιώντας το range(), αλλά είναι δυνατό χρησιμοποιώντας το NumPy arange().

Παράδειγμα:

Το εύρος που θέλουμε είναι από 0.5 έως 1.5. Η τιμή θα αυξηθεί κατά 0.2.

import numpy as np 

for  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 Το range() είναι μια ενσωματωμένη συνάρτηση που διατίθεται με Python από Python(3.x), και δίνει μια ακολουθία αριθμών με βάση τον δείκτη έναρξης και λήξης που δίνεται. Σε περίπτωση που δεν δοθεί ο δείκτης έναρξης, ο δείκτης θεωρείται ως 0 και θα αυξήσει την τιμή μέχρι τον δείκτη διακοπής.
  • Python Το range() έχει εισαχθεί από python έκδοση 3, πριν από αυτό το xrange() ήταν η συνάρτηση.
  • Το range() δίνει την ακολουθία αριθμών και επιστρέφει μια λίστα αριθμών. Η συνάρτηση xrange() δίνει ένα αντικείμενο γεννήτριας που πρέπει να τοποθετηθεί σε βρόχο for-loop για να ληφθούν οι τιμές.
  • Το βήμα της παραμέτρου στο range() μπορεί να χρησιμοποιηθεί για την αύξηση/μείωση των τιμών. Από προεπιλογή, είναι μια θετική τιμή 1. Άρα θα δίνει πάντα αυξημένες τιμές.
  • Python δίνει ένα σφάλμα για αριθμούς κινητής υποδιαστολής καθώς η συνάρτηση range() υποστηρίζει μόνο ακέραιες τιμές.
  • Μπορείτε να προσπελάσετε τις τιμές από το range() χρησιμοποιώντας το for-loop, χρησιμοποιώντας το index και το list()
  • Η λειτουργική μονάδα NumPy έχει συνάρτηση arange() που λειτουργεί και δίνει παρόμοια έξοδο όπως το range(). Το arange() έχει τις ίδιες παραμέτρους με το range().
  • Είναι δυνατό να λάβετε την ακολουθία κινητής υποδιαστολής NumPy arange() που δεν υποστηρίζεται χρησιμοποιώντας το range().

Ημερήσιο ενημερωτικό δελτίο Guru99

Ξεκινήστε τη μέρα σας με τις πιο πρόσφατες και πιο σημαντικές ειδήσεις για την Τεχνητή Νοημοσύνη, τώρα.