Özgür Yazılım A.Ş. Al Ruby'i Vur Python'a Python Tutorial'ı Üzerinde Gezintiler Erek Göktürk – Onur Küçük.

Slides:



Advertisements
Benzer bir sunumlar
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
EKRAN ÇIKTISI.
Bilgisayar Programlama Güz 2011
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
JavaScript Birinci Hafta.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
OOP UYGULAMA 5.
SQL de Değişken Tanımlama
Fonksiyonlar ve Alt Programlar
Excel’de VBA programlama (Visual Basic Application) Ders 4
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Nesne Tabanlı Programlama
Erişim Denetimi, Fonksiyon
Fonksiyonlar.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : LİSTELERE.
.Net teknolojisi ve C# Yasin Gedik Dokuz Eylül Üniversitesi (4. Sınıf) Microsoft Danışman Öğrenci
SQL de Değişken Tanımlama
LINQ (Language Integrated Query)
Görsel C# Programlama Güz 2009 (6. Hafta).
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Nesne Yönelimli Programlama Dersi
FONKSİYONLAR.
SABİT NESNE VE ELEMAN FONKSİYONLAR VE ELEMAN NESNELER
Akış Kontrol Mekanizmaları
INTERNET TABANLI PROGRAMLAMA
BM-103 Programlamaya Giriş Güz 2014 (8. Sunu)
DÖNGÜ YAPILARI.
JAVA’DA DİZİLER Dr.Galip AYDIN.
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
BM-103 Programlamaya Giriş Güz 2014 (9. Sunu)
Python Aslı Ergün.
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
KOŞUL İFADELERİ.
Debugging-Hata Giderme
Simulink Örnekleri Örnek1: Aşağıdaki denklemi simülasyonda çalıştırınız Kullanılacak Bloklar:
İnternet Programlama-I
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Fonksiyonlar.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
“ THERE IS MORE THAN ONE WAY TO DO IT” Hazırlayan: Cemal İNANÇ.
PHP H YPERTEXT P REPROCESSOR Özcan ÇAĞIRICI CSE341 Programming Languages Özcan ÇAĞIRICI.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
Gürer Özen pardus.org.tr ile Python gibi kod yazma.
Python Programlama Dili R. Emre Başar 5 Ocak 2005 Guido Van Rossum da kim oluyor?
P y t h o n Gürer Özen Yüksek düşünceler için yüksek bir dil gerekir. -- Aristophanes Herşeyi optimize edersiniz,
7. HAFTA.
PHP'de Program Denetimi
Fonksiyonlar ve Diziler
Bilgisayar Programlamasına ve Veri Analizine Giriş - IV
8086 Programlama – Kısım III Prosedürler
BÖLÜM 5 POINTER’LER (İŞARETÇİLER)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 5: Fonksiyonlar
ACTIONSCRIPT TEMELLER İ SAVAŞ TUNÇER
Excel’de VBA Programlama (Visual Basic Application)
Bilgisayar Programlama
4- OPERATÖR – koşul - döngü Nesne Yönelimli Programlama - i
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
Bilgisayar Programlamasına ve Veri Analizine Giriş
FONKSİYONLAR İbrahim Onur Sığırcı.
1.) Bellekteki A= , B=0.01, C= değerleri WRITE (6 ,10) A,B,C 10 FORMAT (1X,E11.5,5X,E8.2/1X,e13.6) ile yazdırılırsa çıkış görüntüsü nasıl.
Bilgisayar Bilimi Fonksiyon Yazma.
Bilgisayar Bilimi Döngüler.
Karakter dizi fonksiyonları
Bilgisayar Bilimi Fonksiyonlar-2.
Bilgisayar Programlamasına ve Veri Analizine Giriş - VI
Sunum transkripti:

Özgür Yazılım A.Ş. Al Ruby'i Vur Python'a Python Tutorial'ı Üzerinde Gezintiler Erek Göktürk – Onur Küçük

Özgür Yazılım A.Ş. Çalıştırma ● Etkileşimli: irb ● Argümanlar: ARGV[n] ● Etkileşimli: python ● Argümanlar: sys.argv[n]

Özgür Yazılım A.Ş. Karmaşık Sayılar ● Özel bir sözdizimi yok. Complex sınıfı var: Complex('4+3i') ● Sözdizimi: 4+3j Hatta: 1+1j*3 = 3+3j !!!

Özgür Yazılım A.Ş. Dizgeler ● Raw string r”” yok. ● “”” ve ''' yok. Bash tipi heredoc var. ● Substring almak range nesneleri kullanarak: “abcd”[1..2] (1..2).to_a #=> [1,2] ● Substring almak split notasyonuyla (syntactic): “abcd”[1:2]

Özgür Yazılım A.Ş. Diziler ● Range ile indexleme ● Split özel sözdizimi

Özgür Yazılım A.Ş. Sözdizimi ● Anahtar kelimeler blokları sınırlıyor: if a > b sunu_bunu elsif b > c bunlar_sunlar else bunu_sunu end ● Anahtar kelimeler ve indentation blokları sınırlıyor: if a > b: sunu_bunu elif b > c: bunlar_sunlar else: bunu_sunu

Özgür Yazılım A.Ş. İterasyon ● [1,2,3].each do |x| f(x) end ● (1..3) ● (1..3).to_a ● (1..10).step(3) do |x| f x end ● for x in [1,2,3]: f(x) ● range(1,3) ● list(range(1,3)) ● for x in range(1,10,3): f(x)

Özgür Yazılım A.Ş. İterasyon - 2 ● Döngülerde “else” yok. break ve continue çok kullanılmıyor. ● Pass yok. Boş bıraksak? class A end ● Döngülerde else var: for x in [1,2,3]: if x < 0: print('neg!') break else: print('neg yok!') ● pass var: class A: pass

Özgür Yazılım A.Ş. Fonksiyonlar ● Rubydoc # işbu fonksiyon... def bufonk... end ● Global'lara değer atanabiliyor. ● Call by reference ● Return değer dönmek için zorunlu değil. ● Docstring def bufonk “işbu fonksiyon”... ● Global'lara doğrudan değer atanamıyor (?) ● Call by reference ● Return değer dönmek için zorunlu.

Özgür Yazılım A.Ş. Fonksiyonlar - 2 ● Fonksiyon diye bir veri tipi yok. def a “a” end b = a b.class #=> String b() #=> error! ● Yeniden isimlendirme: alias_method a b ● Fonksiyon diye veri tipi var. def a(): return “a” b = a b() #=> “a”

Özgür Yazılım A.Ş. Fonksiyonlar - 3 ● Parametre varsayılan değeri fonksiyon her çağrıldığında yeniden hesaplanıyor: b = “zonk” def a(p = b) p end a #=> “zonk” b = “zork” a #=> “zork” ● Parametre varsayılan değeri sadece fonksiyonun tanımlandığı noktada hesaplanıyor: b = “zonk” def a(p = b): return p a() #=> “zonk” b = “zork” a() #=> “zonk”

Özgür Yazılım A.Ş. Fonksiyonlar - 4 ● İsimlendirilmiş parametreler yok, yedirilmiş sözlükler var. def a(b, nmd)..... end a(“X”) a(:c => “XX”) #=>hata a(“X”, :c => “XX”) a(“X”, {:c => “XX”}) ● İsimlendirilmiş parametreler var. def a(b, c=”zip”):..... a(“X”) a(c=”XX”) a(“X”, “XX”)

Özgür Yazılım A.Ş. Fonksiyonlar - 5 ● Değişken sayıda argüman alan fonksiyonlar aynı. def a(b, *args).... end ● Python'da şu yok (?): def a(b, c, d).... end b = [1, 2, 3] a(*b) ● Değişken sayıda argüman alan fonksiyonlar aynı. def a(b, *args).....

Özgür Yazılım A.Ş. Lambda Fonksiyonlar ● Lambda fonksiyon'lar closure. ● Python tutorial'dan: By popular demand, a few features commonly found in functional programming languages like Lisp have been added to Python.... Semantically, they are just syntactic sugar for a normal function definition. Like nested function definitions, lambda forms can reference variables from the containing scope. ● Lambda fonksiyonlar closure.

Özgür Yazılım A.Ş. Lambda Fonksiyonlar - 2 ● def z(lmb) lmb.call(7) end y = 3 a = lambda { |x| x+y } a.call(5) #=> 8 y = 5 a[5] #=> 10 z(a) #=> 12 ● def z(lmb): return lmb(7) y = 3 a = lambda x: x+y a(5) #=> 8 y = 5 a(5) #=> 10 z(a) #=> 12

Özgür Yazılım A.Ş. Kod Yazma Stili ● Standart yok ● Indent: 2 boşluk (soft) ● Satırda maks 80 veya 120 karakter (öneririm) ● CamelCase sınıflar ● Büyük harfle başlayan her şey sabit, ama sabitler tamamen büyük harf ● Alt çizgili değişken ve fonksiyon isimleri ● PEP 8 ● Indent: 4 boşluk (soft) ● Satırda maks 79 ● CamelCase sınıflar ● Alt çizgili değişken ve fonksiyon isimleri

Özgür Yazılım A.Ş. Listeler ● Sözdizimi şekeri: %w{'hay', 'huy'} #=> ['hay', 'huy'] ● Array < Enumeration sınıfının metodları

Özgür Yazılım A.Ş. Liste Anlama :) ● a = [1,2,3] a.map {|x| x+1} #=> [2,3,4] ● a = [1,2,3] b = [1,2] a.product(b). map {|x,y| x+y} ● a = [1,2,3] [ x+1 for i in a ] #=> [2,3,4] ● a = [1,2,3] b = [1,2] [x+y for i in a for j in b] #=> [2, 3, 3, 4, 4, 5]