Python range() Fonksiyonu: Float, List, For döngüsü Örnekleri
Nedir? Python Menzil?
Python range(), aşağıdakilerle kullanılabilen yerleşik bir işlevdir: Python itibaren Python(3.x) ve verilen başlangıç ve bitiş indeksine göre bir sayı dizisi verir. Başlangıç indeksi verilmediği takdirde, indeks 0 olarak kabul edilir ve bitiş indeksine kadar değeri 1 artırır.
Örneğin range(5) size 0,1,2,3,4 değerlerini verecektir. Python range() çok kullanışlı bir komuttur ve çoğunlukla for döngüsünü kullanarak yineleme yapmanız gerektiğinde kullanılır.
Sözdizimi
range(start, stop, step)
parametreler
- başlatın: (isteğe bağlı) Başlangıç dizini bir tamsayıdır ve belirtilmezse varsayılan değer 0'dır.
- durdurmak: Durdurma dizini, aralık fonksiyonunun durması gereken değere karar verir. Menzil fonksiyonuna zorunlu bir giriştir. Son değer her zaman stop değerinden 1 eksik olacaktır.
- adım: (isteğe bağlı). Adım değeri, aralıktaki bir sonraki sayının artırılması gereken sayıdır; varsayılan olarak 1'dir.
Geri dönüş değeri
Dönüş değeri, verilen başlangıçtan bitiş dizinine kadar olan bir sayı dizisidir.
Python range() İşlev ve tarihçe
Python range() fonksiyonu Python 3. versiyondan itibaren kullanılmaya başlandı, ondan önce xrange() fonksiyonu kullanılıyordu.
Hem range hem de xrange() bir sayı dizisi oluşturmak için kullanılır.
Aşağıda range ve xrange() arasındaki farklar listelenmiştir:
Aralık() | xaralık() |
---|---|
range(), sayıların sırasını verir ve sayıların bir listesini döndürür. | xrange() fonksiyonu, değerleri almak için for döngüsünde döndürülmesi gereken bir üreteç nesnesi verir. |
range() bir liste döndürür. | xrange() bir üreteç nesnesi döndürür. |
range() yöntemi, döndürülen listenin xrange() yöntemine kıyasla saklanması gerektiğinden daha fazla bellek kullanır. | xrange() bir üreteç nesnesi döndürdüğü için değerleri anında vermez ve değerleri almak için for döngüsü içerisinde kullanılması gerekir. |
Bellek kullanımı daha fazla olduğundan, büyük bir veri kümesi üzerinde çalışırken kod yürütmesi yavaşlar. | Kod yürütme xrange() kullanılarak daha hızlıdır. |
range() kullanımı
Bu örnek, range() kullanılarak 0-9 arası değerlerin nasıl yazdırılacağını gösterir.
Aralıkta kullanılan değer 10'dur, yani çıktı 0 1 2 3 4 5 6 7 8 9'dur
Start verilmediğinden start 0 olarak kabul edilir ve 9'a kadar son değer verilir. Son değer her zaman verilen değerden 1 eksik yani stop-1 olur.
for i in range(10): print(i, end =" ")
Çıktı:
0 1 2 3 4 5 6 7 8 9
Range() içinde başlatma ve durdurmayı kullanma
Kodda başlangıç değeri 3, bitiş değeri 10'dur. Burada başlangıç indeksi 3 olduğundan sayı dizisi 3'ten başlayıp bitiş değerine kadar devam edecektir. Sıradaki son değer stop değerinden 1-10 = 1'dan 9 eksik olacaktır.
for i in range(3, 10): print(i, end =" ")
Çıktı:
3 4 5 6 7 8 9
Başlat, durdur ve adımı kullanma
Başlangıç değeri 3 olduğundan sayı dizisi 3'ten başlayacaktır. Bitiş değeri 10 olduğundan sayı dizisi (10-1) yani 9'da duracaktır. Adım 2 olduğundan dizideki her değer 2 artırılır. Adım değeri verilmediği takdirde adım değeri varsayılan olarak 1 olur.
for i in range(3, 10, 2): print(i, end =" ")
Çıktı:
3 5 7 9
Şu ana kadar range() fonksiyonunun verilen stop değeri için artan değeri nasıl verdiğini gördük. Şimdi verilen aralıkta azaltılan değeri elde etmek için bir örnek deneyelim.
Pozitif bir adım kullanarak aralıktaki değerlerin artırılması.
range() içindeki parametre adımı değerleri artırmak/azaltmak için kullanılabilir. Varsayılan olarak pozitif bir değer olan 1'dir. Bu nedenle her zaman artan değerler verecektir.
Artan değerlerin çıktı olarak olmasını istiyorsanız adım değerinin pozitif olması gerekir.
for i in range(1, 30, 5): print(i, end =" ")
Çıktı:
1 6 11 16 21 26
Reverse Range: Negatif adım kullanarak değerlerin azaltılması
range() içindeki 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 negatif olduğundan çıkış verilen aralık değerinden azaltılacaktı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, bitiş değeri 5 ve adım değeri negatif sayı yani -1'dir. Yukarıdaki girişlerle range() işlevi, değeri 15'ten itibaren stop değerine ulaşana kadar azaltacaktır, ancak burada fark, son değerin stop + 1 olacağıdır.
Yüzen sayıların kullanımı Python Aralık()
Şimdi kayan noktalı sayıları kullanarak range() üzerinde çalışalım.
Örnek:
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, in <module> for i in range(10.5): TypeError: 'float' object cannot be interpreted as an integer
Python range() fonksiyonu başlangıç, bitiş ve adım için kayan nokta sayılarını desteklemediğinden hata veriyor.
for döngüsünün kullanılması Python Aralık()
Bu örnekte bir sayı dizisi kullanacağız ve for-döngüsü içindeki diziyi range() kullanarak yinelemenin nasıl kullanılacağını görelim.
Örnek:
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 durma değeri olarak len(arr_list)'i kullandık. For döngüsü durma değerine, yani dizinin uzunluğuna kadar yinelenecektir ve arr_list'te dört öğemiz olduğundan bu 4 olacaktır. Başlangıç değeri 0 ve adım 1 olacaktır. Yani değerler 0'dan başlayacak ve 3'te duracaktır; yani -1 dizisinin uzunluğu 4 -1 = 3 anlamına gelir.
kullanma Python range() bir liste olarak
Bu örnekte range çıktısının bir liste halinde nasıl kullanılacağını göreceğiz.
Örnek:
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() işlevini döngüye almak gerekli değildi ve list() yöntemini kullanarak çıktıyı doğrudan aralıktan liste biçimine dönüştürebildik.
Python aralığındaki karakterleri kullanma()
Şu ana kadar python range()'da tamsayıları kullandık. Python aralığında kayan noktalı sayıların desteklenmediğini de gördük. Karakterleri kullandığımızda ne olacağına dair çıktıyı deneyelim ve görelim.
Örnek:
for c in range ('z'): print(c, end =" ")
Çıktı:
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
Bir dizenin tam sayı olarak yorumlanamayacağını söyleyen bir hata veriyor.
Alfabelerin listesini almak için kodu özelleştirebilir ve aşağıda gösterildiği gibi istediğiniz çıktıyı alabilirsiniz:
Örnek:
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 for döngüsünden yararlanabilir veya range() öğesinden öğelere erişmek için dizini kullanabilirsiniz.
For döngüsünü kullanma
Örnek:
for i in range(6): print(i)
Çıktı:
0 1 2 3 4 5
Dizini kullanma
İndeks, 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 elde etmek için aralık(5)[0] ve sonraki değer aralığı(5)[1] vb.'yi kullanabilirsiniz.
Örnek:
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ı:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
list()'i kullanma
Bu yöntem range()'daki tüm öğeleri yazdıracaktır. list() işlevini kullanarak range() öğesindeki öğeleri liste biçiminde döndürür.
Örnek:
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() işlevini kullanarak çift sayıları elde edin
range() işlevini kullanmak, giriş olarak verilen aralıktaki çift sayıların listesini alacaktır. range() parametreleri start 2, stop 20 ve step 2 olduğundan değerler 2 artırılacak ve stop-2'ye kadar çift sayılar verilecektir.
Örnek:
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ın birleştirilmesi
Bu örnekte 2 range() fonksiyonunu itertools modül zinciri() fonksiyonunun yardımıyla birleştireceğiz.
Örnek:
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=" ")
Çıktı:
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
NumPy ile range() işlevini kullanma
NumPy modülü, range() işlevine benzer şekilde çalışan ve benzer çıktılar veren arange() işlevine sahiptir. düzenleme(), range() ile aynı parametreleri alır.
Sözdizimi:
arange(start, stop, step)
NumPy ile çalışmak için aşağıdaki adımları izleyin.
1. Adım: NumPy modülünü içe aktar
import numpy
Yürütme sırasında numpy modül bulunamadı diyen bir hata verirse, modülü 2. adımda gösterildiği gibi kurmanız gerekir.
2. Adım: NumPy'yi yükleyin
pip install numpy
3. Adım: NumPy kullanılarak arange()'ın Çalışma Örneği
import numpy as np for i in np.arange(10): print(i, end =" ")
Çıktı:
0 1 2 3 4 5 6 7 8 9
NumPy arange() kullanarak kayan nokta sayıları
Range() kullanarak kayan nokta dizisini elde etmek mümkün değildir, ancak NumPy arange() kullanılarak mümkündür.
Örnek:
İstediğimiz aralık 0.5 ila 1.5 arasındadır. Değer 0.2 oranında artırılacaktır.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Çıktı:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Aldığımız çıktı biraz garip, bazı ondalık sayılar 16 ondalık basamakla gösteriliyor. Bu, ondalık ondalık sayıları ikili formatta depolamanın karmaşıklığından kaynaklanıyor. Gerekirse değerleri yuvarlayabilir ve bunları ihtiyacınız olan ondalık basamaklarla sınırlayabilirsiniz.
ÖZET
- Python range(), aşağıdakilerle kullanılabilen yerleşik bir işlevdir: Python itibaren Python(3.x) ve verilen başlangıç ve bitiş indeksine göre bir sayı dizisi verir. Başlangıç indeksi verilmediği takdirde, indeks 0 olarak kabul edilir ve bitiş indeksine kadar değeri artırır.
- Python range()'dan tanıtıldı piton sürüm 3, bundan önce xrange() işleviydi.
- range() sayı dizisini verir ve bir sayı listesi döndürür. xrange() fonksiyonu değerleri almak için for döngüsünde döngüye alınması gereken bir üreteç nesnesi verir.
- range() içindeki parametre adımı değerleri artırmak/azaltmak için kullanılabilir. Varsayılan olarak pozitif bir değer olan 1'dir. Bu nedenle her zaman artan değerler verecektir.
- Python range() fonksiyonu yalnızca tam sayı değerlerini desteklediğinden kayan noktalı sayılar için hata verir.
- range() değerlerine for-loop, index ve list() kullanılarak erişilebilir.
- NumPy modülü, range() işlevine benzer şekilde çalışan ve benzer çıktılar veren arange() işlevine sahiptir. arange(), range() ile aynı parametreleri alır.
- range() kullanılarak desteklenmeyen kayan nokta dizisini NumPy arange() elde etmek mümkündür.