range() Kavramı # Python

in #blog5 years ago

Bugünkü yazımda range() fonksiyonundan bahsetmek istiyorum.

Yazılarım biraz özgür oluyor ama aslında işin içine girdiğinizde direk kullanacağınız şeylerden bahsettiğimi fark edeceksiniz.


Source

Normalde diğer programlama dillerinde dizi ya da array olarak geçen kavram Python dilinde liste olarak geçiyor.

Python gerçekten sıradışı bir dil. Birçok örnek verilebilir bununla ilgili ama konumuz diziler olduğundan ondan örnek vereyim.

Normalde dizilerde dizi elemanlarının tipinin aynı olması gibi bir zorunluluk vardır.

Yani atıyorum tamsayıları tutan bir diziniz var ve bu dizi elemanlarının hepsinin tam sayı olması gerekir.

Ancak Python dilinin programlama dünyasına açtığı çığır sanırım bu tür olayında inanılmaz özgür olması.

Pythonda bir liste oluşturduğunuz zaman içerisine binbir çeşit veri tipini aynı anda atabilirsiniz. Oldukça garip değil mi.

Neyse devam edelim. Konuyu dağıtmayım. Dizi oluşturmak için birden fazla yol bulunuyor.

Mesela boş bir liste oluşturmak için ister list() fonksiyonunu kullanın ister köşeli parantezleri açıp kapayın. Fark etmiyor:

myList = list()

or

myList = []

Tabi böyle boş bir liste oluşturmak yerine içi dolu bir liste de oluşturabilirsiniz :

myList = [1,2,3,4,5,6,7]

gibi. Bazen bu listenin içeriği inanılmaz uzun olabilir. Yani manuel yazmak size eziyet gibi gelebilir. Böylesi bir durumda range() fonksiyonu devreye giriyor.

Bu fonksiyon normalde 3 parametre alır. Ancak genel kullanımında 1 veya 2 parametre aldığını görürsünüz. Çıktı olarak range isimli bir yapı oluşturur. Biz yıldız parametresini kullanarak içeriğine ulaşabiliriz.

range(1,20)

yazmanız yeterli olacaktır. İlk parametre tahmin ettiğiniz üzere başlangıcı ikinci parametre ise bitişi gösteriyor. Ancak bitiş parametresi diziye dahil edilmez.

kodunu çalıştırdığımızda çıktı olarak bize

verir. Görüldüğü gibi type() metodunu kullanarak ilk olarak tipini yazdırdık. Sonraki print() fonksiyonu ile ise içeriğini yazdırdık.

Eğer tam sayılardan oluşan bir dizi oluşturacaksanız ve bu sıfırdan başlayacaksa ilk parametreyi girmenize gerek yoktur.

range(20)

demeniz yeterli olacaktır. 3.parametre de ne derseniz o da atlama sayısı oluyor. Atıyorum 0'dan başlayıp 20 ye kadar 2 şer 2 şer atla demek için.

range(0,20,2)

range() fonksiyonu genel olarak for() dömgüsü içerisinde kullanılıyor. Örnek bir kullanım vermek istiyorum :

Bu örnekte kullanıcıdan bir parola girmesi istenmektedir. En dıştaki for döngüsü kullanıcıya 3 hak vermek için kullanılmıştır.

Burada 3 hakkı veren de aslında range(3) fonksiyonudur. For döngüsü içerisinde i karakter sırayla 0,1,2 değerlerini aldıktan sonra döngüden çıkılacaktır.

Programın ilerleyen satırlarındaki if yapısı içerisinde bulunan range(3,8) ise kullanıcının girdiği parola uzunluğunun 3-8 karakter arasında olup olmadığını sorguluyor.

Diğer kısımlar anlaşılıyordur umarım. Anlamadığınız noktaları sormaktan çekinmeyin.

ayrc.png

I appreciate your upvotes and support

thankyou-e1485835939803.png

Sort:  

You got a 100.00% promotion boost from @shares courtesy of @addo.sports! Thank you for following @Shares rules of promoting your articles.

Have a nice day.
@Shares - Keep steeming good articles to help Steem network grow.

You got a 50.00% upvote from @whalepromobot courtesy of @addo.sports!

You got a 50.00% upvote from @redlambo courtesy of @addo.sports! Make sure to use tag #redlambo to be considered for the curation post!

You got a 50.00% upvote from @whalecreator courtesy of @addo.sports! Delegate your Steem Power to earn 100% payouts.

You got a 50.00% upvote from @bid4joy courtesy of @addo.sports!

This post has received a $100.00 % upvote from @siditech thanks to: @addo.sports.
Here's a banana! banana-small.png

Thank you for using @sleepagent bid bot serves.
This post has received a 100 % upvote from @sleepagent.

you just rose a upvote from @curationhelper thanks for post promotion.

Coin Marketplace

STEEM 0.20
TRX 0.17
JST 0.031
SBD 3.04