Python’da ondalık adımlarla range() nasıl kullanılır?

0 ile 1 arasında 0.

0 ile 1 arasında 0.1 adım atarak sayıları elde etmenin bir yolu var mı?

Aşağıdaki gibi yapabileceğimizi düşünsek de bu kod başarısız olacak:

for i in range(0, 1, 0.1):
    print(i)

Adım argümanı sıfır olamaz şeklinde bir hata alacağız.

Python’un random() fonksiyonu ondalıklı sayıları değil, yalnızca tamsayıları alabilir. Bu örnek için bunun bir liste üreteci kullanabiliriz:

[x * 0.1 for x in range(0, 10)]

Daha genel bir durum için, özel bir işlev veya üreteç yazmak isteyebiliriz.

ya da;

Doğrudan ondalık adım kullanmak yerine, bunu kaç adım istediğimiz açısından ifade etmek çok daha güvenli olacaktır. Aksi takdirde, ondalıklı sayıların yuvarlaması ile elde edeceğimiz hata bize yanlış bir sonuç verebilir.

NumPy kitaplığından (standart kitaplığın bir parçası olmayan ancak elde etmesi nispeten kolay olan) linspace işlevini kullanabiliriz. linspace döndürülecek noktaların bilgisini alır ve ayrıca uç noktaları dahil edip etmeyeceğimizi de belirtmemizi sağlar:

>>> np.linspace(0,1,11)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ])
>>> np.linspace(0,1,10,endpoint=False)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])

Bunun yanında, argüman olarak da ondalıklı sayı kullanmak istiyorsanız numpy.arange kullanabilirsiniz.

>>> import numpy as np
>>> np.arange(0.0, 1.0, 0.1)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])

Ancak, ondalıklı sayı yuvarlama hatası yine de sorunlara neden olur. Aşağıdaki kod parçasında yuvarlama hatası nedeniyle aslında 3 sayı üretmesi gerekirken bir 4 sayılı bir dizi ürettiğini görebilirsiniz:

>>> numpy.arange(1, 1.3, 0.1)
array([1. , 1.1, 1.2, 1.3])
Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

String Metotları

String nesneleri değişmezdir, yani bir listenin yapabildiği gibi yerinde değiştirilemezler.

Python’da bir işlevin özel bir durum (exception) oluşturmasını nasıl sınarız?

Python işlevinin bir özel durum oluşturmasını nasıl sınarsınız? Yalnızca bir işlev beklenen bir özel durum oluşturmadığında başarısız olan bir testi nasıl yazarsınız? Kısa Cevap: self.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.