A409 Astronomide Sayısal Çözümleme

Slides:



Advertisements
Benzer bir sunumlar
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Advertisements

OPERATÖRLER.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Değişken , Veri Türleri ve Operatörler
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Değişkenler ve bellek Değişkenler
JavaScript Birinci Hafta.
OPERATÖRLER Programlama dillerinde tanımlanmış sabit ve değişkenler üzerinde işlemler yapmayı sağlayan karakter ya da karakter topluluklarına operatör.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Nedir? Türkiye PHP Grubu – Dokuz Eylül Üniversitesi
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
switch - case Yapısı Döngü Yapıları
Bölüm 4 – Kontrol İfadeleri:1.kısım
Bölüm 2: Program Denetimi
MATLAB’İN SAYI YUVARLAMA FONKSİYONLARI
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Karar ifadeleri ve Döngüler
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 3 – Yapısal Programlama
DÖNGÜ İFADELERİ.
Yapısal Program Geliştirme – if, if-else
Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)
AST409 Astronomide Sayısal Çözümleme
6. HAFTA
Operatörler ve Denetim Yapıları
BPR152 ALGORİTMA VE PROGRAMLAMA - II
İşletim Sistemleri Tanım: Kullanıcı ile bilgisayar donanımı arasında bağlantıyı sağlayan özel bir yazılımdır.
WEB PROGRAMLAMA PHP Temelleri 2 Dr. Erman Yukselturk.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Döngü Yapıları.
DEĞİŞKENLER, VERİ TÜRLERİ VE OPERATÖRLER
Koşul İfadeleri ve Akış Kontrolü Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir akış kontrolü oluşturabilmek için koşul ifadelerini.
Akış Kontrol Mekanizmaları
İnternet Programlama PHP.
Chapter 6: Using Arrays.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
 2006 Pearson Education, Inc. All rights reserved Kontrol İfadeleri: 2. Bölüm.
DEĞİŞKENLER.
Çoklu dallanma seçimi: switch
Mantıksal Operatörler ve Denetim Yapıları
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
PHP.
JAVA’DA DİZİLER Dr.Galip AYDIN.
BİL 102 BİLGİSAYAR PROGRAMLAMA
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
PROGRAM DENETİM DEYİMLERİ
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
Python Aslı Ergün.
C++ Ders Notları 4.Ders (Kontrol ve Döngüler)
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
İKMAP İnternet 1 Ders Notu
Görsel C# ile Windows Programlama
Akış Kontrolü ve Döngüler
PHP.
BISON (YACC) (Yet Another Compiler Compiler)
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları 1.
7. HAFTA.
C Programlama Dili Bilgisayar Mühendisliği.
Bilgisayar Programlamasına ve Veri Analizine Giriş - IV
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
Excel’de VBA Programlama (Visual Basic Application)
Bilgisayar Programlamasına ve Veri Analizine Giriş
Bilgisayar Programlamasına ve Veri Analizine Giriş
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Python ile Bilimsel Hesaplama
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Bilgisayar Bilimi Problem Çözme Süreci-2.
Bilgisayar Programlamasına ve Veri Analizine Giriş
Sunum transkripti:

A409 Astronomide Sayısal Çözümleme Uygulama I. Python'a Giriş

Python Nedir, Ne İşe Yarar? “Python işlerinizi hızlı, sisteminize entegre ve etkin bir şekilde yapmanızı sağlayan bir programlama dilidir.” (python.org) Python Windows, Linux / Unix ve Mac-OS üzerinde çalışmasının yanı sıra Java ve .NET sanal makinelerine de port edilmiş durumdadır. Python açık kaynak kod lisanslı özgür (free to use & modify) ve ücretsiz (cost free) bir yazılımdır. Python nesne yönelimli programlama, fonksiyonel ya da yapısal programlama gibi birden fazla programlama paradigmasını destekleyen bir programlama dilidir. Çalıştırılabilir dosyalar şeklinde paketlenebilen programlardan (stand- alone), betikler (script) yazmaya kadar farklı amaçlarla kullanılabilir. Guido van Rossum

Bilgisayarıma nasıl Python kurar ve çalıştırırım? Mac-OS ve Linux / Unix kullanıcılarının yapmaları gereken hiçbir şey yoktur. Python zaten hazır gelir! MS Windows'ta ise bir iki tık kurulum için yeterli! Bu dersin örnekleri Python 2.7 ile hazırlanmış olup, pek çoğu Python 2.x ile çalıştırılabilir. Python'u zenginleştiren pek çok modül bulunmaktadır. NumPy, SciPy, Matplotlib, math, astropy bunlardan en sık kullanacaklarımız... Modül kurmak gayet basit: İndirdikten sonra terminalden “python setup.py install” komutunu vermeniz yeterli! Şimdi python'u nasıl kullanabiliriz ona bakalım!

Python’u nasıl kullanırız? Terminalden hesap makinesi gibi kullanabiliriz $ python Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 14:13:39) [GCC 4.0.1 (Apple Inc. build 5493)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 2*(10**2) / 4 50 Favori editörümüzle kaydettikten sonra çalıştırabiliriz print 2 * (10**2) / 4 ifadesini ilkdeneme.py isimli bir metin dosyasına kaydedelim Bu dosyanın bulunduğu klasörünü içinden aşağıdaki komutu verelim Macintosh-3:Downloads pi$ python ilkdeneme.py Programımızı Py2exe ya da Pyinstaller gibi bir modülle çalıştırılabilir bir dosyaya (executable -exe-) dönüştürerek çalıştırabiliriz

Python’u Nasıl Kullanırız? Internet üzerinde Python misafir eden web sitelerini kullanabiliriz https://www.pythonanywhere.com http://www.codeskulptor.org Arayüzü olan geliştirme ortamlarını (Integrated Development Environments – IDEs with Graphical User Interfaces – GUIs) kullanabilirsiniz. Spider, IDLE, skulpt … Bazı paketleri hazır olarak içeren çeşitli Python dağıtımlarını kullanabiliriz. Anaconda (https://store.continuum.io/cshop/anaconda/) Enthought Canopy (https://www.enthought.com/products/canopy/) WinPtyhon (http://winpython.sourceforge.net/) Bu derste WinPython 2.7.6.4 versiyonunu bilgisayarımıza kuracağız. Dersin alıştırmaları bu paketteki IDLE geliştirme ortamı kullanılarak yapılacak. WinPython 2.7.6.4 sürümünü http://sourceforge.net/projects/winpython/files/WinPython_2.7/2.7.6.4/ sitesinden bilgisayarınızın işletim sistemi ve işlemci mimarisine uygun olan seçenekten indirip, kolaylıkla kurabilirsiniz.

Python'da Değişkenler Diğer programlama dillerinden farklı olarak Python'da değişkenler için hafızada boyut sabitlemek üzere önceden tür tanımlaması yapılmaz sayac = 100 # Tam sayı değişken toplam = 1000.0 # Reel sayı değişken ad = "astronomi" # Metin (string) değişken print sayac → 100 print toplam → 1000.0 print ad → astronomi Birden fazla değişkenin değerini aynı anda belirleyebilirsiniz a = b = c = 1 sayac, toplam, ad = 100, 1000.0, “astronomi” Bir Python değişkeni bir kez tanımlandıktan sonra sayı (number), metin (string), liste (list), demet (tuple), ya da sözlük (dictionary) türlerinden birini alır

Python'da Sayı ve Metin Değişkenler Python 4 çeşit sayı türünü destekler: - İşaretli tam sayılar (signed integers) - Uzun tam sayılar (long integers) - Reel sayılar (kayan noktalı sayılar : floating point numbers) - Karmaşık sayılar (complex numbers) tam uzun reel karmaşık 10 51924361L 0.0 3.14j 100 -0x19323L 15.20 45.j -786 0122L -21.9 9.322e-36j 080 0xDEFABCECBl 32.3+e18 .876j -0490 535633629843L -90. -.6545+0J -0x260 -052318172735L -32.54e100 3e+26J 0x69 -4721885298529L 70.2-E12 4.53e-7j Python'da metin değişkenler “ ” ya da ' ' kullanılarak tanımlanır: str = 'Merhaba Dunya!' print str # Tüm değişkeni yazdırır → Merhaba Dunya! print str[0] # Değişkenin ilk harfini yazdırır → M print str[2:5] # 3 ile 5. karakter arasındaki karakterleri yazdırır → rha print str[2:] # 3. karakterden başlayarak sona kadar yazdırır → rhaba Dunya! print str[-1] # Metin değişkenin son karakterini yazdırır → ! print str * 2 # Metin değişkeni iki kez yazdırır → Merhaba Dunya!Merhaba Dunya! print str + "TEST" # Değişkenlerin birleşimini yazdırır → Merhaba Dunya!TEST

Python'da Listeler Listeler (lists) '[' ile ']' karakterleri arasında yer alan, birbirinden virgülle ayrılan ve aynı türde olması gerekmeyen “şeyler”den (item) oluşur. >>> liste = [ 'abcd', 786 , 2.23, 'astronomi', 70.2 ] >>> kucukliste = [123, 'astronomi'] >>> print liste # Tüm listeyi yazdırır ['abcd', 786, 2.23, 'astronomi', 70.200000000000003] >>> print liste[0] # Listenin ilk elemanını yazdırır abcd >>> print liste[1:3] # Listenin 2. elemanından 3. elemanına kadar olanları yazdırır [786, 2.23] >>> print liste[2:] # Listenin 3. elemandan itibaren tüm elemanlarını yazdırır [2.23, 'astronomi', 70.200000000000003] >>> print kucukliste * 2 # Listeyi iki kez yazdırır [123, 'astronomi', 123, 'astronomi'] >>> print liste + kucukliste # Listelerin birleşimini yazdırır ['abcd', 786, 2.23, 'astronomi', 70.200000000000003, 123, 'astronomi']

Python'da Demetler (Tuples) ve Sözlükler (Dictionaries) Demetler (tuples) '(' ile ')' karakterleri arasında yer alan ve “salt okunur” listeler olarak tanımlanabilecek değişkenlerdir. >>> demet = ( 'abcd', 786 , 2.23, 'astronomi', 70.2 ) >>> kucukdemet = (123, 'astronomi') Yukarıda listeler için verilen tüm komutlar demetler için de aynı şekilde çalışır. Fark; >>> liste = [ 'abcd', 786 , 2.23, 'astronomi', 70.2 ] >>> demet[2] = 1000 # Yanlış yazım hatası (Invalid syntax) >>> liste[2] = 1000 # Geçerli işlem liste  ['abcd', 786, 1000, 'astronomi', 70.2] Sözlükler (dictionaries) '{' ile '}' karakterleri arasında yer alan ve anahtar-değer ikililerinden oluşan değişkenlerdir. >>> dict = {} >>> dict['bir'] = "Bu bir olsun" >>> dict[2] = "Bu iki olsun" >>> tinydict = {'ad': 'astronomide sayisal cozumleme','kod':409, 'bolum'': astronomi'} >>> print dict[‘bir'] # “bir” anahtarının değerini yazdırır Bu bir olsun >>> print dict[2] # 2 anahtarının değerini yazdırır Bu iki olsun >>> print tinydict # Bütün sözlüğü yazdırır {'ad': 'astronomide sayisal cozumleme','kod':409, 'bolum'': astronomi'} >>> print tinydict.keys() # Sadece anahtarları yazdırır {'ad', 'kod', 'bolum'} >>> print tinydict.values() # Sadece değerleri yazdırır {'astronomide sayisal cozumleme', 409, 'astronomi'}

Değişkenler Arası Dönüşümler int(x [,base]) : x'i tam sayıya çevirir, x metin değişkense base kullanılacak tabanı belirler long(x [,base]) : x'i uzun sayıya çevirir, x metin değişkense base kullanılacak tabanı belirler float(x) : x'i reel sayıya çevirir complex(real [,imag]) : Reel kısmı “real”, imajiner kısmı “imag” olan karmaşık sayı yaratır str(x) : x'i metin değişkene çevirir repr(x) : x’i yazdırılabilir bir formata çevirir. örn: x = ‘foo’; print repr(x)  “’foo’”; print str(x)  foo eval(str) : Metin şeklindeki bir ifadeyi çalıştırarak uygun nesneye dönüştürür. örn: x = 1; print eval(‘x+1’)  2 tuple(s) : s’i demet (tuple) değişkene çevirir. list(s) : s’i liste değişkene çevirir. set(s) : s demet (tuple) değişkenini bir kümeye dönüştürür. dict(d) : (anahtar,değer) çiftlerinden oluşan bir demet değişkenini sözlük değişkene çevirir. frozenset(s) : frozenset (donuk küme) kümenin elemanları değiştirilemeyen bir çeşididir. chr(x) : 0-255 arasındaki bir tam sayının ASCII kodu olarak karakter karşılığını verir. örn: chr(97)  “a” unichr(x) : 0-255 arasındaki bir tam sayının UNICODE olarak karakter karşılığını verir. örn: unichr(97)  u“a” ord(x) : Tek bir karakterin tam sayı karşılığını verir (chr’nin tersi). örn: ord(“a”)  97 hex(x) : Tam sayı olan x’i onaltılık sisteme çevirir. örn: hex(97)  61, hex(205)  CD, hex(1016)  3F8 oct(x) : Tam sayı olan x’i sekizlik sisteme çevirir. örn: oct(97)  141, oct(205)  315, oct(1016)  1770

Python’da Operatörler Aritmetik Operatörler a = 10, b = 20, c = 9, d = 2 Operatör Tanım Örnek + Toplama a + b = 30 - Çıkarma a - b = -10 * Çarpma a * b = 200 / Bölme b / a = 2 % Mod b % a = 0 ** Üs c ** d = 81 // Tam sayı bölme (aşağı yuvarlama) c // d = 4 Karşılaştırma Operatörleri == Eşittir a == b  False != Eşit değildir a != b  True <> Farklı a <> b  True > Büyüktür a > b  False < Küçüktür a < b  True >= Büyük ya da eşittir a >= b  False <= Küçük ya da eşittir a <= b  True

Python’da Operatörler İkili Operatörler a = 60 (00111100), b = 13 (00001101) Operatör Tanım Örnek & Bit-bit karşılaştırma (ve) yapar a & b  00001100 (12) | Bit-bit karşılaştırma (veya) yapar a | b  00111101 (61) ^ Bit-bit karşılaştırma (xor) yapar a ^ b  00110001 (49) ~ Bit-bit değil operatörü ~a = 110000011 (-61) << İkili sola kaydırma operatörü a << 2  11110000 (240) >> İkili sağa kaydırma operatörü a << 2  00001111 (15) Üyelik Operatörleri in içinde operatörü x in y not in içinde değil operatörü x not in y

Python’da Döngü Yapıları (For Döngüsü) for x in range(baslangic,son,adim) yapısı >>> for i in range(0,10,2): print i 2 4 6 8 for s in “string” yapısı >>> for harf in 'Python': print ‘Harf :’, harf Harf : P Harf : y Harf : t Harf : h Harf : o Harf : n for item in list yapısı >>> yildizlar = [‘rigel’, ‘betelgeuse’, ‘bellatrix’] >>> for yildiz in yildizlar: print ‘Yildiz :’, yildiz Yildiz : rigel Yildiz : betelgeus Yildiz : bellatrix

Python’da Döngü Yapıları (For Döngüsü) İndeks Kullanarak For Döngüsü İterasyonu >>> yildizlar = [‘rigel', ‘betelgeuse', ‘bellatrix'] >>> for indeks in range(len(yildizlar)): print ‘Yildiz :', yildizlar[indeks] Yildiz : rigel Yildiz : betelgeuse Yildiz : bellatrix İç-içe For Döngüleri (Nested Loops) >>> for x in xrange(1, 11): for y in xrange(1, 11): print '%d * %d = %d' % (x, y, x*y) Sonuç : 1’den 10’a çarpım tablosu! For – else yapısı >>> for x in xrange(3): print x else: print 'Final x = %d' % (x) For döngüsünden çıkış if x == 1: break

Python’da Döngü Yapıları (While Döngüsü) Klasik While Döngü Yapısı >>> sayac = 0 >>> while (sayac < 3): print ‘Sayac = ', sayac sayac = sayac + 1 # ya da sayac += 1 Sayac = 0 Sayac = 1 Sayac = 2 While – else yapısı >>> while sayac < 3: print sayac, " 3ten kucuktur" sayac += 1 else: print sayac, " 3ten kucuk degildir” 0 3ten kucuktur 1 3ten kucuktur 2 3ten kucuktur 3 3ten kucuk degildir

Python’da Şartlı Yapılar (Conditionals) Klasik if – elif – else yapısı Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> x = int(raw_input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: x = 0 print ‘Negatif sayi 0 ile degistirildi!' elif x == 0: print ‘Sifir' elif x == 1: print ‘x bire esit‘ else: print ‘x birden buyuk bir sayi’