Skip to main content

Python Dersleri & İnceleme -2 | Arduino & Python Dersleri

PYTHON VERİ YAPILARI NEDİR ? 

Python veri yapıları nedir ? Listeler , tuples , sets , dictionaries nedir ? Pythonda kullanılan bu yapılar ne işe yarar ?  Bu ve benzeri sorulara yanıt aradığımız Python Veri Yapıları Nedir adlı yazımızla karşınızdayız.

Arduino kodlamaya başlamadan önce pythonu tanımaya devam edelim.

Başlayalım.

PYTHON VERİ YAPILARI

Veri yapıları

Python dört ana veri yapısını destekler (list, tuple, set ve dictionary) ve bu veri yapılarının çevresinde bir dizi önemli method vardır.

Listeler

Listeler, tekli veya çoklu veri tiplerinin değerlerini birlikte gruplamak için kullanılır.

Liste yapısı köşeli parantez içindeki değerleri virgül (,) tarafından ayırıcı olarak atanabilir.

>>> myList = [‘a’ , 2 , ‘b’ , 12.0 , 5 , 2]

>>> myList

[‘a’ , 2 , ‘b’ , 12.0 , 5 , 2]

Dizeler gibi, bir listedeki değerlere 0’dan başlayan dizin numaraları kullanılarak erişilebilir.

Slicing (Dilimleme) adı verilen bir özellik ,Python tarafından sütun operatörünü kullanarak veri yapısının belirli bir alt kümesini veya öğesini elde etmek için kullanılır.

Standart bir formatta, myList [start: end: increment] notasyonu kullanılarak slicing işlemi belirtilebilir.

Dilimleme kavramını daha iyi anlamak için birkaç örneği beraber inceleyelim;

Listedeki tek bir öğeye aşağıdaki gibi erişebilirsiniz:

>>> myList [0]

‘a‘

Listedeki tüm öğelere boş başlangıç ​​ve bitiş değerlerine göre erişebilirsiniz:

>>> myList [:]

[‘a’ , 2 , ‘b’ , 12.0 , 5 , 2]

Listenin belirli bir alt kümesini elde etmek için başlangıç ​​ve bitiş endeksi değerleri sağlayabilirsiniz:

>>> myList [1:5]

[2 , ‘b’ , 12.0 , 5]

Dizin numarasına sahip eksi sembolünün kullanılması,interpreter adına bu dizin numarasını geriye doğru kullanmasını söyler.Aşağıdaki örnekte, -1 geriye doğru aslında 5 dizin numarasını gösterir:

>>> myList [1 : -1]

[2 , ‘b’ , 12.0 , 5 ]

Artış değerini başlangıç ​​ve bitiş değerleri ile sağlayarak listenin diğer tüm öğelerini elde edebilirsiniz:

>>> myList [0:5:2]

[‘a’ ,‘b’ , 5 ]

python arduino dersleri

Bir liste değişkeninin uzunluğunu len() yöntemini kullanarak kontrol edebilirsiniz.Bu yöntemin kullanımı ilerleyen derslerde bahsedilecek projelerde kullanışlı olacaktır:

>>> len (myList)

6

Ayrıca, mevcut listeye eleman eklemek veya silmek için çeşitli işlemler de yapabilirsiniz. Örneğin, listenin sonuna bir öğe eklemek istiyorsanız, append () yöntemini kullanabiliriz.

>>> myList.append(10)

>>> myList

[‘a’ , 2 , ‘b’ , 12.0 , 5 , 2 , 10]

Belirli bir yere öğe eklemek için, insert (i, x) yöntemini kullanabilirsiniz.Burada i index değerini ifade ederken x ise gerçek değeri ifade eder.

>>> myList.insert(5 , ‘hello’)

>>> myList

[‘a’ , 2 , ‘b’ , 12.0 , 5 ,’hello’, 2 , 10]

Benzer şekilde, bir öğeyi listeden kaldırmak için pop() komutunu kullanabilirsiniz.Basit bir pop () işlevi listenin son öğesini kaldırır.

>>> myList.pop()

10

>>> myList

[‘a’ , 2 , ‘b’ , 12.0 , 5 ,’hello’ , 2]

>>> myList.pop(5)

‘hello’

>>> myList

[‘a’ , 2 , ‘b’ , 12.0 , 5 , 2 ]

Tuples(Demetler)

Tuples , Python tarafından desteklenen değişmez veri yapılarıdır (listelerin değişken yapılarından farklıdır).Değişmez bir veri yapısı, tuple veri yapısına öğe ekleyemeyeceğiniz veya çıkaramayacağınız anlamına gelir.

Değişmez özelliklerinden dolayı, tuples listelerle karşılaştırıldığında daha hızlıdır ve çoğunlukla hiç değişmeyen sabit bir değer kümesini depolamak için kullanılır.

Tuple veri yapısı liste şeklinde fakat parantez kullanarak veya parantez olmadan bildirilir:

>>> tupleA = 1 , 2 , 3

>>> tupleA

(1 , 2 , 3)

>>> tupleB = (1 , ‘a’ , 3)

>>> tupleB

(1 , ‘a’ , 3)

Bir liste veri yapısında olduğu gibi, dizgideki değerlere dizin numaraları kullanılarak erişilebilir:

>>> tupleB [1]

‘a’

Tuples değişmez olduğu için, append (), insert () ve pop () gibi manipülasyon metotları listeleme adına tuples için geçerli değildir.

Sets

Python’daki set veri yapısı, matematiksel küme işlemlerini desteklemek için uygulanmıştır.Set veri yapısı, yinelenmeyen öğelerin sıralanmamış bir koleksiyonunu içerir.

Matematiksel kullanım durumlarıyla, bu veri yapısı çoğunlukla listedeki kopyaları bulmak için kullanılır, çünkü listeyi set () işlevini kullanarak bir kümeye dönüştürmek kopyaları listeden kaldırır:

>>> listA = [1,2,3,1,5,2]

>>> setA = set(listA)

>>> setA

set ([1,2,3,5])

Dictionaries

Dict veri yapısı, diğer dizilerde ortak diziler, hashes veya hashmaps olarak da bilinen anahtarlarla indekslenen anahtar-değer çiftlerini depolamak için kullanılır. Diğer veri yapılarının aksine, dict değerleri ilişkili anahtarlar kullanılarak elde edilebilir:

>>> boards = {‘uno’ : 328 , ‘mega’ : 2560 , ‘lily’ : ‘128’}

>>> boards[‘lily’]

‘128’

>>> boards.keys()

[‘lily’ , ‘mega’ , ‘uno’]

PYTHON VERİ YAPILARI NEDİR SONUÇ : 

Bugün Python Veri Yapıları Nedir adlı yazımızla karşınızdaydık.Umuyorum pythonu tanımak adına faydalı olmuştur ki bu yazılarımızla ara vermeden devam edeceğiz.

İyi Çalışmalar

Python Dersleri & İnceleme | Arduino & Python Dersleri

PYTHON OPERATÖRLERİ NEDİR ? 

Python operatörleri nedir ? Python ile arduino nasıl kullanılır ? Python programlama nedir ve nasıl programlanır ? Bu ve benzeri sorulara yanıt aradığımız Python Operatörleri Nedir adlı yazımızla karşınızdayız.

Başlayalım.

PYTHON OPERATÖRLERİ

Şimdi Python ile ilgili kısa bir fikrimiz olduğuna göre, temel Python komutlarından bazılarına beraber bakalım.

Burada ki örnek uygulamalar için Python interaktif bilgi istemiyle açılan Python IDLE’yi kullanacağız.Büyük ve karmaşık kod yazarken kod bölümlerini, görevleri ve yorumları tanımlamak için bir yöntem gerekir.

Çalıştırılmayacak içerik, herhangi bir programlama dilinde yorum olarak adlandırılır ve Python’da, (#) hashtag karakteriyle başlar.

>>> # Python

>>> # İlk Yorum

>>> isim = “Mustafa” # İsmin

>>> print (isim)

Mustafa

IDLE kullanmak yerine, Python etkileşimli istemine de terminalden, yani pythonun terminal ıdle’ı diyebileceğimiz kısımdan da kodlarınızı yazabilirsiniz.Terminalden Python’u kullanırken, girintiye uygun şekilde kodlarınızı yazdığınızdan emin olmalısınız.

arduino ile python programlama

Operatörler

Python, (+, -, * ,/ ) gibi temel matematiksel operatörlerin doğrudan yorumlayıcıdan kullanılmasını destekler.

Bu operatörleri kullanarak, aşağıdaki örneklerde gösterildiği gibi bilgi isteminde temel hesaplamaları yapabilirsiniz.

>>> 2 + 2

4

>>> (2*3) +1

7

 >>> (2*3) /5

1

Not  : Python ile çalışırken, popüler olarak PEP-8 veya pep8 olarak da bilinen Python Kodu için Stil Kılavuzunu izlemeniz önerilir.

Python, dinamik olarak yazılmış bir dildir, yani değişkenleri başlatırken açık bir şekilde bildirmeniz gerekmez.Bir değişkene bir değer atadığınızda, Python yorumlayıcısı veri türünü otomatik olarak çıkarır.

Örneğin, aşağıdaki örneğe bakalım  ;

 >>> ağırlık = boy = 5

 >>> ağırlık * boy

25

 >>> type (ağırlık)

< type ‘int’>

Ağırlık değişkenine değer atarken, veri türünü belirlemedik, ancak Python yorumlayıcısı ‘integer’ bir ifade olduğunu biliyor.

Interpreter, sayısal değerin herhangi bir ondalık sayı içermemesi nedeniyle int türüne atandı. Şimdi, ondalık basamak içeren bir değere sahip bir değişken tanımlayalım.

>>> uzunluk = 6.0

>>> ağırlık * boy * uzunluk

150,0

>>> type (uzunluk)

 <type ‘float’>

Gördüğünüz gibi, yorumlayıcı veri türünü kayan nokta , float değer olarak atar.Interpreter ayrıca aşağıdaki örneklerde gösterildiği gibi karmaşık sayı türlerini de nokta(.) kullanarak çıkarabilir.

Nokta (.) operatörünü kullanarak karmaşık bir sayının gerçek ve hayali değerine, ardından real ve imag komutuna erişebilirsiniz:

>>> val = 2.0 + 3.9j

>>> val.real

2.0

>>> val.imag

3.9

Yalnızca karmaşık sayılarla daha fazla oynamak için, aşağıdaki örneklerde gösterildiği gibi abs () ve round () işlevlerini deneyelim. Sırasıyla mutlak değeri ve yuvarlanan sayıyı elde etmek için yerleşik Python işlevlerine sahiptirler:

>>> abs (val)

4,382921400162225

 >>> round (val.imag)

4.0

Sayılar gibi Python yorumlayıcısı da dize veri tipleri bildirimini otomatik olarak tanımlayabilir.Python’da dize değerleri, değerin etrafındaki tek veya çift tırnak işaretleri kullanılarak atanır.Interpreter, tırnak içine alınmış herhangi bir değeri gördüğünde, onu bir dize olarak kabul eder.

Python, + operatörü dizeleri birleştirmek için kullanımını destekler:

>>> s1 = “Merhaba”

>>> s2 = “Dünya!”

>>> s1 + s2

‘MerhabaDünya!’

>>> s1 + ”  ” + s2

‘Merhaba   Dünya!’

Bir karakter tipi bir büyüklükte bir dizedir ve bir dizenin tek tek karakterlerine indeks numaraları kullanılarak erişilebilir.

Bir dizenin ilk karakteri 0 olarak dizine eklenir.

Python’da indekslemeyi anlamak için aşağıdaki komutlarla bakalım:

>>> s1 [0]

‘H ‘

>>> s1 [: 2]

‘He’

>>> s1 + s2 [5:]

 ‘Helo!’

Not : Varsayılan gösterimi >>> olan ana istemde olduğu gibi, Python IDLE da terminalden kullanıldığında üç nokta (…) kullanan ikincil bir istemde bulunur.

İkincil bilgi istemini kullanırken IDLE’deki üç noktayı göremezsiniz. İkincil bilgi istemi, sürekli çizgiler gerektiren çok hatlı bir yapı için kullanılır.

Aşağıdaki komutları yorumlayıcıya manuel olarak yazarak uygulayın ve if ifadesinden sonra sekme içeren bir sonraki satıra girmeyi unutmayın:

>>> yaş = 14

>>> if yaş> 10 or yaş <20:

     … print (teen)

teen

PYTHON OPERATÖRLERİ NEDİR SONUÇ : 

Bugün Python & Arduino Dersleri ile ilgili ikinci yazımızı sizlerle paylaştık.Öncelikle python ile ilgili programlama derslerini tamamlayacağız ki ardından arduino ile devam edip birleştireceğiz.

Umuyorum faydalı bilgiler edinmişsinizdir.

Saygılarımla

Python’a Giriş | Arduino & Python Dersleri

PYTHON & ARDUINO DERSLERİ -1

Arduino ile python nasıl kullanılır ? Python programlama ile arduino uygulamaları nedir ? Arduino ve python programlama nedir ? Bu ve benzeri sorulara yanıt aradığımız Python & Arduino Dersleri -1 adlı yazımızla karşınızdayız.

Başlayalım.

PYTHON & ARDUINO GİRİŞ

Python , 1991 yılında Guido van Rossum tarafından piyasaya sunulduğundan bu yana, en yaygın kullanılan, genel amaçlı, yüksek seviye programlama dillerinden biri haline geldi ve en büyük açık kaynak geliştirici topluluklarından biri tarafından desteklenmiştir.

Python, birçok destekleyici kütüphaneyi içeren açık kaynaklı bir programlama dilidir.Bu kütüphaneler Python’un en iyi özelliğidir ve onu en genişleyen platformlardan biri yapmıştır.

Python dinamik bir programlama dilidir ve çalıştırılabilir byte kodları derlemek ve oluşturmak için bir derleyici kullanmak yerine kodu çalıştırma sırasında kod çalıştırmak için bir interpreter kullanır.

Python’un geliştirilmesinin ardındaki felsefe, kavramları kolayca ifade etmek için esnek, okunabilir ve açık kodlar oluşturmaktı.

Beyaz boşluk girintisini benzersiz bir şekilde kullanmaya verilen önem Python’u diğer popüler üst düzey dillerden farklı kılar.Python, otomatik bellek yönetimi ile işlevsel, zorunlu ve nesne yönelimli programlamayı destekler.

python & arduino dersleri

Neden Python kullanıyoruz?

Python, ilk kez programcılar için öğrenmesi en kolay dillerden biri olarak kabul edilir. C ++ ve Java gibi diğer popüler nesne yönelimli dillerle karşılaştırıldığında Python, programcılar için aşağıdaki ana avantajlara sahiptir:

Okumak ve anlamak kolaydır

Hızlı prototipleme sağlar ve geliştirme süresini azaltır

Çok sayıda ücretsiz kütüphane paketine sahiptir.

Python, Python’un bir programlama dili olarak sürekli olarak geliştirilmesi için çaba gösteren büyük bir açık kaynak topluluğuna sahiptir.

Python topluluğu ayrıca, dinamik web sitelerinden karmaşık veri analizi uygulamalarına kadar uzanan uygulamalar oluşturmak için kullanılabilecek çok sayıda açık kütüphane paketinin geliştirilmesinden ve grafiksel grafik oluşturmak için basit GUI tabanlı uygulamaların geliştirilmesinden, karmaşık matematik fonksiyonlarından vb. sorumludur.

Python kütüphane paketlerinin çoğu, düzenli olarak güncellemelerle topluluktan elde edilen kodu sistematik olarak korumuştur. En çok Python paketini endeksleyen fiili depo PyPI’dir (pypi.python.org).

PyPI ayrıca, işletim sisteminize, gelecek bölümde ele alınacak olan çeşitli paketleri kurmak için basit yollar sunar.

Donanımsal bir platformda çalışırken, donanım ile geliştirme için kullandığınız bilgisayar arasında bazı iletişim araçlarının olması gerekir.

Genel olarak bilgisayardan donanıma arabirim yöntemleri arasında seri port tabanlı iletişim, en popüler olanıdır ve özellikle Arduino platformu için kurulması gerçekten basittir.

Python, seri portu bağlamak için kullanımı gerçekten kolay ve hızlı olan pySerial adlı bir kütüphane sağlar.Proje fikirlerinizi hızla test etmek ve uygulamak için benzer kütüphaneleri ve Python’un etkileşimli programlama yeteneklerini kullanmak gerçekten basittir.

Günümüzde, karmaşık Nesnelerin İnterneti (IoT) uygulamaları için sadece seri iletişim desteği gerekli değildir

, ancak aynı zamanda işletim sistemleri için grafiksel kullanıcı arayüzleri (GUI’ler), uzaktan erişim için web arayüzleri, veri görselleştirme için grafikler, veri analizi için araçlar, veri depolama için arayüzler vb. gibi ilave üst düzey özelliklere ihtiyaçları vardır.

Herhangi birini kullanarak C ++ veya Java gibi diğer programlama dili, bu özelliklerin geliştirilmesi, destek araçlarının dağıtılmış ve örgütlenmemiş doğası nedeniyle büyük miktarda programlama çabası gerektirecektir.Oysa ki, Python bu tür uygulamalara yıllardır destek sağlamada çok başarılı olmuştur.

Python, burada belirtilen ve PyPI aracılığıyla erişilebilen özelliklerin her birinin gelişimini destekleyen bir dizi kütüphaneye sahiptir. Bu kütüphaneler açık kaynaklıdır, kullanımı kolaydır ve topluluk tarafından geniş ölçüde desteklenir.

Bu, Python’u IoT uygulamaları için tercih edilen bir dil haline getirir.Ek olarak, Python ayrıca özel olarak oluşturulmuş uygulamalarınızı kitaplık olarak oluşturma ve gönderme, böylece diğerlerinin de projelerinde kullanabilmeleri için destek sunar.

Bu, kendi donanım ürünleriniz için özel protokoller, API’ler veya algoritmalar geliştiriyorsanız yararlı bir özelliktir.

Diğer Programlama Dillerini Ne Zaman Kullanırız ?

Peki Python’u projelerimiz için ne zaman kullanmamalıyız? Daha önce de belirtildiği gibi Python, geliştirme süresini azaltan dinamik bir dildir, ancak aynı zamanda kodunuzun yürütülmesini C, C ++ ve Java gibi diğer statik üst düzey dillere kıyasla daha yavaş yapar.

Bu statik diller, kodu derlemek ve çalışma zamanı sırasında çalıştırılan ikili dosyaları oluşturmak için bir derleyici kullanır ve böylece çalışma zamanı performansını artırır.

Kodun performansı daha uzun bir geliştirme süresi ve daha yüksek maliyetlerden daha önemli olduğunda, bu statik dilleri göz önünde bulundurmalısınız.Python’un diğer bazı sakıncaları arasında hafızanın ağır olması, iş parçacığı için uygun desteğe sahip olmaması ve veri koruma özelliklerinin bulunmaması bulunmaktadır.

Kısacası, Python hızlı prototipleme için daha hızlı ve kolay yöntemler sunsa da, prototipimizi test ettikten ve ürünümüzü göndermeye hazır olduktan sonra, geliştirme için diğer statik yüksek seviye dilleri göz önünde bulundurmamız gerektiğini söyleyebiliriz. Günümüzde, bu senaryo hızla değişmekte ve şirketler endüstriyel ürünleri için Python’u kullanmaya başlamışlardır.

PYTHON & ARDUINO DERSLERİ -1 SONUÇ : 

Bugün Python & Arduino Dersleri -1 adlı yazımızı sizlerle paylaştık.Umuyorum faydalı bir giriş ve yazı olmuştur.

İyi Çalışmalar