Python Aralığı nedir?
Python range (), Python (3.x) 'den Python ile kullanılabilen yerleşik bir işlevdir ve verilen başlangıç ve bitiş indeksine göre bir sayı dizisi verir. Başlangıç indeksinin verilmemesi durumunda indeks 0 olarak kabul edilir ve değeri durma indeksine kadar 1 arttırır.
Örneğin range (5) size 0,1,2,3,4 değerleri verir. Python range () çok kullanışlı bir komuttur ve çoğunlukla for döngüsünü kullanarak yinelemeniz gerektiğinde kullanılır.
Bu eğitimde şunları öğreneceksiniz:
- Python Aralığı nedir?
- Sözdizimi
- Python range () İşlev ve geçmiş
- Aralığı kullanılıyor ()
- Aralıkta () start ve stop kullanma
- Başlatma, durdurma ve adımı kullanma
- Pozitif bir adım kullanarak aralıktaki değerleri artırmak.
- Ters Aralık: Negatif adım kullanarak değerleri azaltma.
- Python aralığında () kayan sayılar kullanma
- Python aralığı () ile for-döngü kullanma
- Python aralığını () liste olarak kullanma
- Python aralığındaki () karakterleri kullanma
- Menzil Öğelerine Nasıl Erişilir
- Örnek: range () kullanarak çift sayıları alın
- İki aralıklı () çıktıları birleştirme
- NumPy ile range () kullanma
Sözdizimi
range(start, stop, step)
Parametreler
- başlangıç: (isteğe bağlı) Başlangıç dizini bir tamsayıdır ve belirtilmezse varsayılan değer 0'dır.
- stop: Stop indeksi, aralık fonksiyonunun durması gereken değere karar verir. Aralık işlevi için zorunlu bir giriştir. Son değer her zaman durdurma değerinden 1 küçük olacaktır.
- adım: (isteğe bağlı) Adım değeri, bir sonraki sayının aralığın artırılması gereken sayıdır, varsayılan olarak 1'dir.
Geri dönüş değeri:
Dönüş değeri, verilen baştan sona dizinden bir sayı dizisidir.
Python range () İşlev ve geçmiş
Python range (), xrange () işlevinden önce python sürüm 3'ten tanıtıldı.
Hem range hem de xrange (), bir sayı dizisi üretmek için kullanılır.
Range ve xrange () arasındaki fark aşağıdadır:
Aralık() | xrange () |
Range (), sayı dizisini verir ve bir sayı listesi döndürür. | Xrange () işlevi, değerleri almak için bir döngü içinde döngüye alınması gereken bir jeneratör nesnesi verir. |
Range () bir liste döndürür. | xrange (), bir jeneratör nesnesi döndürür. |
Xrange () ile karşılaştırıldığında döndürülen listenin depolanması gerektiğinden range () yöntemi daha fazla bellek kullanır. | Xrange () bir jeneratör nesnesi döndürdüğünden, değerleri anında vermez ve değerleri almak için for-döngüsü içinde kullanılması gerekir. |
Bellek kullanımı daha fazladır, bu nedenle çok büyük bir veri kümesi üzerinde çalışırken kod yürütme yavaştır. | Xrange () kullanarak kod yürütme daha hızlıdır. |
Aralığı kullanılıyor ()
Bu örnek, range () kullanarak 0-9 arasındaki değerlerin nasıl yazdırılacağını gösterir.
Aralıkta kullanılan değer 10'dur, dolayısıyla çıkış 0 1 2 3 4 5 6 7 8 9
Başlangıç verilmediği için başlangıç 0 kabul edilir ve son değer 9'a kadar verilir. Son değer verilen değerden her zaman 1 küçüktür, yani stop-1.
for i in range(10):print(i, end =" ")
Çıktı:
0 1 2 3 4 5 6 7 8 9
Aralıkta () start ve stop kullanma
Kodda, başlangıç değeri 3 ve bitiş değeri 10'dur. Burada başlangıç indeksi 3'tür, bu nedenle sayı dizisi 3'ten bitiş değerine kadar başlayacaktır. Sıradaki son değer, 10-1 = 9 durdurma değerinden 1 küçük olacaktır.
for i in range(3, 10):print(i, end =" ")
Çıktı:
3 4 5 6 7 8 9
Başlatma, durdurma ve adımı kullanma
Başlangıç değeri 3'tür, bu nedenle sayı dizisi 3'ten başlayacaktır. Durdurma değeri 10'dur, bu nedenle sayı dizisi (10-1), yani 9. Adım 2'dir, bu nedenle dizideki her bir değer 2 artırılmalıdır. Adım değeri belirtilmezse, adım değeri varsayılan olarak 1'dir.
for i in range(3, 10, 2):print(i, end =" ")
Çıktı:
3 5 7 9
Şimdiye kadar, range () fonksiyonunun verilen durdurma değeri için artırılmış değeri nasıl verdiğini gördük. Şimdi verilen aralıkta azaltılmış değeri elde etmek için bir örnek deneyelim.
Pozitif bir adım kullanarak aralıktaki değerleri artırmak.
Range () içindeki parametre adımı, değerleri artırmak / azaltmak için kullanılabilir. Varsayılan olarak, pozitif bir değer 1'dir. Bu nedenle, her zaman artırılmış değerler verecektir.
Çıktı olarak artan değerleri istediğinizde adım değeri pozitif olmalıdır.
for i in range(1, 30, 5):print(i, end =" ")
Çıktı:
1 6 11 16 21 26
Ters Aralık: Negatif adım kullanarak değerleri azaltma.
Range () 'de negatif değere sahip parametre adımı, azaltılmış değerler elde etmek için kullanılabilir. Aşağıdaki örnekte adım değeri negatiftir, bu nedenle çıktı verilen aralık değerinden düşürülür.
for i in range(15, 5, -1):print(i, end =" ")
Çıktı:
15 14 13 12 11 10 9 8 7 6
Başlangıç değeri 15, durdurma değeri 5 ve adım değeri negatif sayı, yani -1'dir. Yukarıdaki girişlerle range () fonksiyonu değeri 15'ten itibaren durdurma değerine ulaşana kadar azaltacaktır, ancak burada fark son değer durdurma + 1 olacaktır.
Python aralığında () kayan sayılar kullanma
Şimdi kayan noktalı sayıları kullanarak range () üzerinde çalışalım.
Misal:
for i in range(10.5):print(i, end =" ")
Yukarıdaki örnekte stop değerini 10.5 olarak kullandık.
Çıktı:
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 () işlevi başlangıç, durdurma ve adım için kayan nokta sayılarını desteklemediğinden bir hata verir.
Python aralığı () ile for-döngü kullanma
Bu örnekte bir dizi sayı kullanacağız ve aralık () kullanarak diziyi for-döngü içinde yinelemeyi nasıl kullanacağımızı görelim.
Misal:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")
Çıktı:
MysqlMongodb PostgreSQL Firebase
Yukarıdaki örnekte, durdurma değeri olarak len (arr_list) kullandık. For döngüsü durma değerine, yani dizinin uzunluğuna kadar yinelenecek ve arr_list'te dört öğe olduğu için bu 4 olacaktır. Başlangıç değeri 0 olacak ve adım 1 olacaktır. Dolayısıyla değerler 0'dan başlayacak ve 3'te duracaktır, yani dizi -1 uzunluğu 4 -1 = 3 anlamına gelir.
Python aralığını () liste olarak kullanma
Bu örnekte, aralıktaki çıktının bir liste olarak nasıl kullanılacağını göreceğiz.
Misal:
print(list(range(10)))
Çıktı:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Çıktının bir liste formatı olduğunu görebilirsiniz. Range () döngüsüne gerek yoktu ve list () yöntemini kullanarak çıktıyı doğrudan aralıktan liste biçimine dönüştürebilirdik.
Python aralığındaki () karakterleri kullanma
Şimdiye kadar python range () 'de tamsayılar kullandık. Ayrıca kayan nokta sayılarının python aralığında desteklenmediğini gördük. Karakterleri kullandığımızda ne olduğuna dair çıktıyı deneyelim ve görelim.
Misal:
for c in range ('z'):print(c, end =" ")
Çıktı:
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
Bir dizenin tamsayı olarak yorumlanamayacağını söyleyen bir hata atar.
Alfabelerin listesini almak için kodu özelleştirebilir ve aşağıda gösterildiği gibi istediğiniz çıktıları alabilirsiniz:
Misal:
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)))
Çıktı:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Menzil Öğelerine Nasıl Erişilir
Aralıktan değerleri almak için bir for-döngüsünü kullanabilir veya range () öğesinden öğelere erişmek için dizini kullanabilirsiniz.
For-loop kullanma
Misal:
for i in range(6):print(i)
Çıktı:
012345
Dizini kullanma
Dizin, o konumda mevcut olan değeri elde etmek için range ile birlikte kullanılır. Aralık değeri 5 ise, başlangıç değerini almak için aralık (5) [0] ve sonraki değer aralığını (5) [1] vb. Kullanabilirsiniz.
Misal:
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)
Çıktı:
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)
Listeyi kullanarak ()
Bu yöntem, range () 'deki tüm öğeleri yazdıracaktır. List () kullanarak, range () 'deki öğeleri liste biçiminde döndürür.
Misal:
print(list(range(10)))
Çıktı:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Verilen aralık için liste çıktısını verir.
Örnek: range () kullanarak çift sayıları alın
Range () kullanmak, girdi olarak verilen aralıktaki çift sayıların listesini alacaktır. Range () için parametreler, başlangıç 2, bitiş 20 ve adım 2'dir, bu nedenle değerler 2 artırılacak ve stop-2'ye kadar çift sayılar verecektir.
Misal:
for i in range(2, 20, 2):print(i, end =" ")
Çıktı:
2 4 6 8 10 12 14 16 18
İki aralıklı () çıktıları birleştirme
Bu örnekte, itertools module chain () işlevi yardımıyla 2 range () işlevi birleştirilecektir.
Misal:
from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")
Çıktı:
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 ile range () kullanma
NumPy modülü, çalışan ve range () gibi benzer çıktılar veren bir arange () işlevine sahiptir. Düzenlemek (), range () gibi aynı parametreleri alır.
Sözdizimi:
arange(start, stop, step)
NumPy ile çalışmak için aşağıda verilen adımları izleyin.
Adım 1 : NumPy modülünü içe aktarın
import numpy
Yürütme sırasında, numpy modülü bulunamadı diyen bir hata veriyor, modülü 2. adımda gösterildiği gibi yüklemeniz gerekiyor.
Adım 2 : NumPy'yi Kurun
pip install numpy
Adım 3 : NumPy kullanarak arange () 'nin Çalışma Örneği
import numpy as npfor i in np.arange(10):print(i, end =" ")
Çıktı:
0 1 2 3 4 5 6 7 8 9
NumPy arange () kullanarak kayan nokta numaraları
Range () kullanarak kayan nokta dizisini elde etmek mümkün değildir, ancak NumPy arange () kullanılarak mümkündür.
Misal:
İstediğimiz aralık 0,5 ile 1,5 arasındadır. Değer 0,2 artacaktır.
import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")
Çıktı:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Elde ettiğimiz çıktı biraz garip, bazı kayan sayılar 16 ondalık basamakla gösteriliyor. Bu, ondalık kayan sayıları ikili biçimde depolamanın karmaşıklığı nedeniyle olur. Ayrıca gerekirse değerleri yuvarlayabilir ve ihtiyacınız olan ondalık basamaklarla sınırlayabilirsiniz.
Özet:
- Python range (), Python (3.x) 'den Python ile kullanılabilen yerleşik bir işlevdir ve verilen başlangıç ve bitiş indeksine göre bir sayı dizisi verir. Başlangıç indeksinin verilmemesi durumunda indeks 0 olarak kabul edilir ve değeri durma indeksine kadar artıracaktır.
- Python range (), xrange () işlevinden önce python sürüm 3'ten getirilmiştir.
- Range (), sayı dizisini verir ve bir sayı listesi döndürür. Xrange () işlevi, değerleri almak için bir döngü içinde döngüye alınması gereken bir jeneratör nesnesi verir.
- Range () içindeki parametre adımı, değerleri artırmak / azaltmak için kullanılabilir. Varsayılan olarak, pozitif bir değer 1'dir. Bu nedenle, her zaman artırılmış değerler verecektir.
- Range () işlevi yalnızca tam sayı değerlerini desteklediğinden, Python kayan nokta sayıları için bir hata verir.
- Range () 'deki değerlere for-loop kullanılarak, index ve list () kullanılarak erişilebilir
- NumPy modülü, çalışan ve range () gibi benzer çıktılar veren bir arange () işlevine sahiptir. Arange (), range () ile aynı parametreleri alır.
- Range () kullanılarak desteklenmeyen kayan nokta dizisi NumPy arange () elde edilebilir.