AST415 Astronomide Sayısal Çözümleme - I. 8. Python'da Dosya Yönetimi Metin (String) ve Sözlük (Dictionary) Değişkenler
|
|
- Erol Cihan
- 6 yıl önce
- İzleme sayısı:
Transkript
1 AST415 Astronomide Sayısal Çözümleme - I 8. Python'da Dosya Yönetimi Metin (String) ve Sözlük (Dictionary) Değişkenler
2 Bu derste neler öğreneceksiniz? Dosyalarla İşlemlere Giriş Veri Dosyalarını Açmak Veri Dosyalarının İçeriğini Listelere Almak Veri Dosyalarının İçeriğini Satır Satır Okumak Metin ve Sayıların Birlikte Bulunduğu Dosyaları Okumak Sözlük Değişken Türü (Dictionaries) Sözlükler (Dictionaries) Örnek 1: Tam Sayı Anahtarlar ve Polinomlar Örnek 2: Sözlük ve Dosya Verisi Örnek 3: İçiçe Sözlükler ve Dosya Verisi Metin Değişken Türü (Strings) Metinler (Strings) Örnek 1: Dosyadan Koordinat Okuma Dosyaya Yazmak
3 Bir Veri Dosyasını Açmak ve Okumak İlk olarak var olan basit bir veri dosyasındaki (data1.txt) verileri okuyup, ortalamasını alan bir program yazmaya çalışalım. Ancak öncelikle veri dosyamızın içeriğine bir salt metin editörü (notepad, idle, vi, emacs ) ile bakalım Amacımız bu dosyada bir sütunda verilen sayıları teker teker okumak, bir toplam degiskenine sayı değerini ekleyerek ilerlemek ve en sonda toplam değişkeninin değerini satır sayısına bölerek ortalamayı almak olsun. >>> dosya = open('data1.txt', 'r') >>> toplam = 0 >>> satir_sayisi = 0 >>> for satir in dosya: toplam += float(satir) satir_sayisi += 1 >>> ortalama = toplam / satir_sayisi >>> print '{:d} satirdaki verilerin ortalamasi {:.2f} tir'.format(satir_sayisi,ortalama) 6 satirdaki verilerin ortalamasi tir Gördüğünüz gibi dosyayı okumak için adini verdikten sonra (eğer okuyacağınız dosya python'u çalıştırdığınız klasörün altında değilse buraya tam yerini (path) vermelisiniz), r parametresiyle okuyacağımız (read) belirttik. Daha sonra data1.txt dosyasını satır satır okumak için for satir in dosya döngüsünü çalıştırdık. Döngünün içerisinde dosyadan okuduğumuz her şey bir metindir (string), bu nedenle matematiksel bir işlem yapmak istiyorsak aldığımız her sayıyı reel sayıya (float) dönüştürmeliyiz. Bu dönüşümü yaptıktan sonraki kodun ne yaptığını daha önceki derslerden biliyor olmalısınız!
4 Bir Veri Dosyasının İçeriğini Bir Listeye Almak Her bir satırı tek tek okumak yerine tüm satırları tek bir kerede okuyup, bir listeye de alabiliriz. Bunu için readlines() fonksiyonu kullanılır. (ortalama1.py) >>> dosya = open('data1.txt', 'r') >>> satirlar = dosya.readlines() >>> print satirlar ['21.8\n', '18.1\n', '19\n', '23\n', '26\n', '17.8\n'] Bu yazımla, baştan bir liste oluşturup, dosyayı satır satır okurken her bir satırı bu listeye eklemek arasında bir fark yoktur. Bunun bir başka alternatifi de daha önce öğrendiğiniz hızlı liste özelliklerini (list comprehensions) kullanmaktır. (satirlar = [satir for satir in dosya]) >>> dosya = open('data1.txt', 'r') >>> satirlar = [] >>> for satir in dosya: satirlar.append(satir) >>> print satirlar ['21.8\n', '18.1\n', '19\n', '23\n', '26\n', '17.8\n'] Ancak bu yazımlarda gördüğünüz gibi her bir liste elemanı sonunda satır sonu karakter dizisi (\n) bulunan bir metin nesnesidir. Dolayısı ile bu nesnelerle matematiksel işlemler yapmak için mutlaka reel sayııya dönüşüme ihtiyaç duyulur. (ortalama2.py) >>> dosya = open('data1.txt', 'r') >>> sayilar = [float(satir) for satir in dosya.readlines()] >>> dosya.close() # artik dosyayla isimiz bittigine gore kapatabiliriz. >>> ortalama = sum(sayilar) / len(sayilar) # ortalama almak icin kolay bir yontem! >>> print {:d} satirdaki verilerin ortalamasi {:.2f} tir'.format(satir_sayisi,ortalama) 6 satirdaki verilerin ortalamasi tir
5 Bir Veri Dosyasının İçeriğini Satır Satır Okumak Her bir satırı tek tek okumanın bir başka yolu readline() fonksiyonunu kullanmaktır. Bu fonksiyon dosyada bulunulan satırı okur ve içeriğini bir metin değişkenine aktarır. Ortalamayı bu şekilde bütün dosya okunana kadar while döngüsünün içinde de hesaplayabiliriz. Ancak bu kez dosya bittiği vakit döngünden çıkmamaız gerekir. (ortalama3.py) dosya = open('data1.txt', 'r') ortalama = 0 n = 0 while True: satir = dosya.readline() if not satir: break ortalama += float(satir) n += 1 ortalama = ortalama/float(n) print "Dosya icindeki {:d} sayinin ortalamasi {:.2f} tir".format(n,ortalama) Bu kodda satir değişkeni değerini dosyanın ilk satırında alacağı için while döngüsünün bir koşulu olmadan her durumda çalıştığına (True!), ancak satir dosyanin sonuna geldiğinde boş bir metin değeri alacağı için not satir ifadesi True değeri alacak ve break komutu döngüden çıkılmasını sağlayacaktır. Böylece dosya sonuna kadar okunmuş olur!
6 Metin ve Sayıların Birlikte Bulunduğu Dosyaları Okumak Şu ana kadarki örneklerde kullandığınız data1.txt dosyası sadece sayı içerdiği için basit bir yapıya sahipti. Ancak çoığu kez dosyalar metin ve sayıları birlikte içerir ile 1970 yillari arasinda Roma için aylara göre ortalama yağış miktarının verildiği romayagisort.dat boyle bir dosyadir. Roma sehri icin 1782 ve 1970 yillari arasindaki ortalama yagis miktari (mm) Oca 81.2 Sub 63.2 Mar 70.3 Nis 55.7 May 53.0 Haz 36.4 Tem 17.5 Agu 27.5 Eyl 60.9 Eki Kas Ara 97.9 Yil Böyle bir dosyayı okumak ve aya göre ortalamaları grafik etmek için akla gelen ilk yol dosyayı satır satır okumak her bir satırdaki kelimeleri split() fonksiyonunu kullanarak ayırmak, ikinci kelimeyi alıp float() ile reel sayıya donüştürmek ve bir listede toplayıp, bu listedeki sayıları ay numarasına (Oca: 1, Şub: 2 ) göre çizdirmektir (yagisort.py)
7 from matplotlib import pyplot as plt def verioku(dosyaadi): dosya = open(dosyaadi, "r") dosya.readline() # ilk satiri oku ve atla sayilar = [] for satir in dosya: kelimeler = satir.split() sayi = float(kelimeler[1]) sayilar.append(sayi) dosya.close() return sayilar degerler = verioku("romayagisort.dat") ay_numaralari = range(1, 13) plt.plot(ay_numaralari, degerler[:-1], "ro") # yillik yagisi cizdirmiyoruz plt.xlabel("aylar") plt.ylabel("yagis Ortalamalari (mm)") plt.show() Dikkat edecek olursaniz dosya.readline() yaparak bizi ilgilendirmeyen ilk satırı (dosyanın içeriğinin tanıtıldığı satır) atlıyoruz. Ayrıca dosyanın son satırında yıllık ortalama yağış olduğu ve onu çizdirmek istemediğimiz için de plt.plot ifadesinde ortalama yağış miktarlarını içeren degerler listesindeki yıllık ortalama yağış miktarına gelen son değeri almıyoruz (degerler[:-1]). Ayrıca for döngüsünü hızlı liste özelliklerini kullanarak biraz daha kompakt hale getirebleceğimizi de söylemeliyiz. def verioku(dosyaadi): dosya = open(dosyaadi, "r") dosya.readline() # ilk satiri oku ve atla sayilar = [float(satir.split()[1]) satir in dosya] dosya.close() return sayilar
8 Sözlük Değişken Türü (Dictionaries) Listeler oldukça esnek ve kullanışlı bir veri türü olmasına karşın bir dezavantajları elemanlaırna ulaşmak için tam sayı indeksleri kullanmak zorunluluğudur. Bunun yerine indeksin de bir metin olabildiği bir veri türü kullanmak oldukça kullanışlı olabilir düşüncesiyle sözlük (dictionary) veri türü yaratılmıştır. Diyelim ki Oslo, Londra ve Paris için sıcaklık değerlerini içeren bir listemiz olsun (sicaklik = [13, 15.4, 17.5]). Örneğin Londra'nın sıcaklık değerine ulaşmak istiyorsak onun liste içindeki yerini bilmeliyiz (sicaklik[1]). Bunun yerine indekslerin şehirlerin isimleri olduğu bir sözlük türü değişken kullanmak daha akılcı olacaktır. >>> sicaklik = {'Oslo': 13, 'Londra': 15.4, 'Paris': 17.5} >>> sicaklik = dict(oslo=13, Londra=15.4, Paris=17.5) # alternatif yol Bir sözlük değişkenine sonradan veri eklemek oldukça kolaydır. Örneğin Madrid şehri için sıcaklığı ekleyelim. >>> sicaklik['madrid'] = 26.0 Sözlük değişkenin metin indekslerine anahtar (key) adı verilir. Değişkenin her bir anahtara karşılık bir de değ eri (value) vardır. kullanmaktır. Bir for döngüsü içinde bir sözlüğün değerlerine ulaşmanın yolu for key in d yapısını >>> for sehir in sicaklik: print '{:s} sehrindeki sicaklik {:g} derecedir.'.format(sehir,sicaklik[sehir]) Paris sehrinde sicaklik 17.5 derecedir. Oslo sehrinde sicaklik 13 derecedir. Londra sehrinde sicaklik 15.4 derecedir. Madrid sehrinde sicaklik 26 derecedir.
9 Bir sözlük değişkeninde bir anahtarın bulunup bulunmadığını sorgulamak için if key in d yazımı kullanılır. >>> if 'Berlin' in sicaklik: Print '{:s} sehrinde sicaklik {:g} derecedir'.format('berlin',sicaklik['berlin'] else: print 'Berlin icin sicaklik verisi yoktur!' Berlin icin sicaklik verisi yoktur! >>> Oslo in sicaklik True Bir sözlük değişkenin anahtar ve değerleri ayrı ayrı listelerde toplanabilir. >>> sicaklik.keys() ['Paris', 'Oslo', 'Londra', 'Madrid'] >>> sicaklik.values() [17.5, 13, 15.4, 26.0] Bir sözlük değişkenin anahtar sıralaması kolay tahmin edilemeyebilir (her seferinde farklı bir sırlamayla karşı karşıya kalabilirsiniz!). Bunu aşmanın yolu anahtara göre sözlüğü sıralamaktır (sorted). >>> for sehir in sorted(sicaklik): print sehir Londra Madrid Oslo Paris Bir sözlük değişkeninden eleman silmek (del) için anahtarını kullanmak gerekir. >>> del sicaklik['oslo'] Tıpkı nümerik dizilerde olduğu gibi sözlüklerin de kopyası oluşturulmadan yapılacak bir değişiklik aynı sözlüğe atıfta bulunan diğer sözlüğün de değişmesine neden olur. Bunu aşmanın yolu copy metodunu kullanmaktır. >>> sicaklik_kopya = sicaklik.copy() >>> del sicaklik_kopya['paris'] >>> sicaklik {'Londra': 15.4, 'Madrid': 26.0, 'Oslo': 13, 'Paris': 17.5} >>> sicaklik_kopya {'Londra': 15.4, 'Madrid': 26.0, 'Oslo': 13}
10 Örnek 1: Tam Sayı Anahtarlar ve Polinomlar Sözlük anahtarları sadece metin (string) olmak zorunda değildir. Listeler ve sözlüklerin kendisi içeriği değiştirilebilir (mutable) nesneler olduğu için anathar olamazlar, ancak onun dışındaki tüm değişken türleri (int, float, complex, str, tuple) içerikleri değiştirilemediği (immutable) için anahtar olarak kullanılabilirler. Güzel bir örnek olarak p(x) = -1 + x 2-3x 7 polinomunu düşünelim. Bu polinoma ilişkin veri kuvvet-katsayı ikilileri olarak düşünülebilir. Anahtarı kuvvetler, değerleri katsayılar olan bir sözlük değişken bir polinomu saklamak için iyi bir yoldur. Bunu bir listeyle (ya da diziyle) de yapabilirsiniz ancak bu durumda katsayısı 0 olan tüm kuvvetler için 0 katsayısını listenize (ya da dizinize) koymak zorunda kalırsınız. Ayrıca sözlük kullanarak negatif kuvvetler için de katsayı saklayabilirsiniz. >>> p = {0:-1, 2:1, 7:-3} Herhangi bir x değeri için polinomun alacağı değeri hesaplayan bir fonksiyon aşağıdaki şekilde yazılabilir. >>> def polinom(pol,x): toplam = 0.0 for kuvvet in pol: toplam += pol[kuvvet]*x**kuvvet return toplam >>> print polinom(p,2.0) Daha kompakt bir yazım için liste yöntemlerini ve toplam (sum) fonksiyonunu kullanabilirsiniz. >>> def polinom(pol,x): return sum([pol[kuvvet]*x**kuvvet for kuvvet in pol])
11 Örnek 2: Sözlük ve Dosya Verisi Aşağıda bazı maddeler için yoğunluk değerlerinin yer aldığı yogunluk.dat dosyasının içeriği verilmiştir. Bu dosyanın içeriğini okurken madde isimlerini anahtar (key), yoğunluk değerlerini ise değer (value) olarak kabul eden bir sözlük kullanmak iyi bir fikirdir. hava gaz 0.67 buz 0.9 saf su 1.0 deniz suyu insan vucudu 1.03 kirec tasi 2.6 granit 2.7 demir 7.8 gumus 10.5 civa 13.6 altin 18.9 platin 21.4 dunya_ort 5.52 dunya_cekirdek 13 ay 3.3 gunes_ort 1.4 gunes_cekirdek 160 proton 2.8E+14 Böyle bir dosyayı düzgün ve efektif bir şekilde okuyabilmek için aşağıdaki gibi bir Python kodu (yogunluk.py) kullanabilirsiniz. Madde isimlerinde kelimelerin arasındaki boşluklar özel olarak bırakılmıştır. Bu dersin ilerleyen slaytlarında bu tür yapıların nasıl yönetileceği de anlatılacaktır.
12 def yogunluk_oku(dosyaadi): dosya = open(dosyaadi, 'r') yogunluklar = {} for satir in dosya: kelimeler = satir.split() yogunluk = float(kelimeler[-1]) if len(kelimeler[:-1]) == 2: madde = kelimeler[0] + ' ' + kelimeler[1] else: madde = kelimeler[0] yogunluklar[madde] = yogunluk dosya.close() return yogunluklar yogunluklar = yogunluk_oku('yogunluk.dat') print yogunluklar {'buz': 0.9, 'insan vucudu': 1.03, 'dunya_ort': 5.52, 'gaz': 0.67, 'altin': 18.9, 'civa': 13.6, 'gunes_ort': 1.4, 'kirec tasi': 2.6, 'proton': , 'granit': 2.7, 'deniz suyu': 1.025, 'hava': , 'saf su': 1.0, 'gunes_cekirdek': 160.0, 'demir': 7.8, 'gumus': 10.5, 'ay': 3.3, 'dunya_cekirdek': 13.0, 'platin': 21.4}
13 Örnek 3: İçiçe Sözlükler ve Dosya Verisi Aşağıda son yıllarda geçiş yöntemiyle keşfedilen bazı gezegenlerin gün cinsinden yörünge dönemi (P), ölçülebilidiyse geçiş sırasındaki ışık değişiminin genliği (dm), hesaplanabilidiyse R jüp cinsinden yarıçapı (R), geçişin dakika cinsinden toplam süresi (dt) bir tablo şeklinde yer almaktadır (tablo.dat). Bazı parametreler için ölçüm ya da hesap yapılamadığını dikkat alarak, ortalama değerlerini hesaplayıp veri[parametre]['ortalama'] şeklinde saklamak istiyor olalaım. P dm R dt no no no Bu yapıda bir dosyayı okuyabilmek için içiçe sözlüklerden yararlanmak iyi bir fikir olacaktır. Bu tür sözlüklerde değerler de birer sözlük olabilmektedir (tablo2sozluk.py). $ python tablo2sozluk.py P parametresinin ortalama degeri = R parametresinin ortalama degeri = dm parametresinin ortalama degeri = dt parametresinin ortalama degeri =
14 dosya = open('tablo.dat', 'r') satirlar = dosya.readlines() dosya.close() veri = {} # veri[parametre][olcum_no] = parametre_degeri ilk_satir = satirlar[0] parametreler = ilk_satir.split() for parametre in parametreler: veri[parametre] = {} for satir in satirlar[1:]: kelimeler = satir.split() i = int(kelimeler[0]) degerler = kelimeler[1:] for o, d in zip(parametreler,degerler): if d!= 'no': veri[o][d] = float(d) # olcum no'su # parametrelerin degerleri # Ortalama hesabi for parametre in veri: degerler = veri[parametre].values() veri[parametre]['ortalama'] = sum(degerler)/len(degerler) for parametre in sorted(veri): print '%s parametresinin ortalama degeri = %g' \ % (parametre, veri[parametre]['ortalama']) print veri tablo2sozluk.py
15 Metin Değişken Türü (String) Şu ana kadar metin değişkenleri sayılara (tam ya da reel) dönüştürüp, üzerlerinde işlem yapmayı öğrendik ancak metin değişkenlerin üzerinde işlem yapmayı öğrenmedik. Bu tür değişkenleri kullanmak programcılığın önemli bir parçasıdır ve özellikle dosya işlemlerinde vazgeçilmezdir. Metin değişkenlerde indeksleme ve metin değişkenin bir bölümünü kullanma tıpkı listeler, demetler ve dizilerde tanımlandığı gibidir. >>> s = Rasathanede saat 10:00'daki sicaklik -4 derecedir >>> s[12:] saat 10:00'daki sicaklik -4 derecedir >>> s[12:-10] saat 10:00'daki sicaklik -4 Bir metnin içerisinde diğer bir metni aramak için find metodu kullanılır. Fonksiyon söz konusu metni bulursa bu metnin ilk karakterinin bulunduğu endeksi, bulamazsa -1 döndürür. Ayrıca startswith ve endswith fonksiyonları da bir metin verilen bir başka metinle sırasıyla başlıyor ya da bitiyor ise True döndürür, aksi halde False döndürür. >>> s.find('rasathane') #Rasathane metninin basladigi indeks 0 >>> s.find('derece') 40 >>> s.find('derece') #Aramalar buyuk harf duyarlidir, bu metin yok! -1 >>> Rasathane in s True >>> Derece in s False >>> s.startswith('rasathane') True >>> s.endswith('derecedir') False
16 s.replace(s1,s2) ifadesi s metin değişkeni içerisinde s1'in bulunduğu bütün yerleri s2 ile değiştirir. >>> s.replace(' ', '_') "Rasathanede_saat_10:00'daki_sicaklik_-4_derecedir >>> s.replace("rasathanede","aukr'de") AUKR'de saat 10:00'daki sicaklik -4 derecedir Bir metni bileşenlerine (kelimelerine) ayırma işlemi split metodu ile yapılır. Metodun çıktısı bir listedir. Not: Dikkat ederseniz son uyguladığımız replace fonksiyonu s'nin içeriğini değiştirmedi. Zira metinler de içeriği değiştirilemez (immutable) değişkenlerdir. Bu işlem ancak bu ifadeyi bir başka metin değişkene (aynı isimle de olabilir!) atarsak geerçekleşir. >>> s.split() ['Rasathanede', 'saat', "10:00'daki", 'sicaklik', '-4', 'derecedir'] >>> s.split(':') # split'in varsayilan ayraci bosluktur ama isterseniz degistirebilirsiniz ['Rasathanede saat 10', "00'daki sicaklik -4 derecedir"] >>> t = '1.satir\n2.satir\n3.satir' >>> print t 1.satir 2.satir 3.satir >>> t.splitlines() # cok satirli metni satirlarina ayirma, dosya okurken cok kullanisli! ['1.satir', '2.satir', '3.satir'] Tüm karakterleri büyük (upper metodu) ya da küçük (lower metodu) yazdırmak da mümkündür. >>> s.lower() rasathanede saat 10:00'daki sicaklik -4 derecedir >>> s.upper() RASATHANEDE SAAT 10:00'DAKI SICAKLIK -4 DERECEDIR Metin içeriğinin değiştirilemez (immutable) olduğunu bir örnekle görelim. >>> s[18] = '1' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
17 isdigit metodu bir metin değişkenin sadece sayılardan oluşup oluşmadığını denetler. >>> "214".isdigit() True >>> " 214 ".isdigit() False >>> "2.14".isdigit() False isspace metodu bir metin değişkenin boşluk içerip içermediğini denetler. >>> " ".isspace() # sadece bosluktan olusan bir metin True >>> " \n".isspace() # bir bosluk ve yeni satir karakterinden olusan bir metin True >>> " \t ".isspace() # bir bosluk ve TAB karakterinden olsuan bir metin True >>> "".isspace() # bos metin (bosluk icermez!) False strip metodu bir metin değişkenin başı ve sonundaki boşlukları atmak için kullanılır. Not: Yeni satır karakterinin (\n) dikkate alınmadığına dikkat ediniz! >>> s = ' basi / sonu bosluk iceren metin \n' >>> s.strip() # bas ve sondaki bosluklari atar 'basi / sonu bosluk iceren metin' >>> s.lstrip() # bastaki (soldaki) bosluklari atar 'basi / sonu bosluk iceren metin \n >>> s.rstrip() # sondaki (sagdaki) bosluklari atar ' basi / sonu bosluk iceren metin' join metodu birden fazla metin değişkeni istediğiniz bir karakteri kullanarak bilreştirebilirsiniz. >>> yildizlar = ["Vega", "Deneb", "Altair"] >>> yaz_ucgeni = ", ".join(yildizlar) >>> print yaz_ucgeni Vega,Deneb,Altair
18 Örnek 1: Dosyadan Koordinat Okuma Aşağıda x,y düzlemi üzerinde bazı noktaların koordinatları verilmiştir (koordinatlar.dat). Bu koordinatları okuyan ve bir liste içerisine demet değişken üçlüleri şeklinde (koor[i] = (x,y,z)) yerleştiren bir program yazmaya çalışıyor olalım. Bazı sayılar için = işaretinden sonra boşluk olduğuna, bazılarında olmadığına dikkat ediniz. Bu durumda boşluktan ayırma (split() metodu) bizim için bir seçenek değil. x= y= z= x= y= z= x= y= E+6 z= x= y= z= e+4 x= 1.5E+5 y= z= 1027 Çözüm 1. Dosyaya dikkatli bakınca x= ifadesinin her satırın 2., y= ifadesinin 16., z= ifadesinin 31. sütundan başladığını görüyoruz. Bu durumdan faydalanarak çözümü aşağıdaki şekilde arayabiliriz. (koordinatoku1.py) from numpy import array dosya = open("koordinatlar.dat", "r") koor = [] # (x,y,z) demet degiskenleri for satir in dosya: x_baslangic = 2 y_baslangic = 16 z_baslangic = 31 x = satir[x_baslangic+2:y_baslangic] y = satir[y_baslangic+2:z_baslangic] z = satir[z_baslangic+2:] print "koordinatlar: x='%s', y='%s', z='%s'" % (x,y,z) koor.append((float(x), float(y), float(z))) dosya.close() koor = array(koor) print koor.shape, koor
19 Çözüm 2. x=, y=, z= ifadelerinin nereden başladığını saymak yerine (ki bu iyi bir alışkanlık da değildir) bu ifadelerin hangi indekste başladığını find() metodu ile bulabiliriz. Bu durumda kodumuzda ilgili yerleri aşağıdaki şekilde düzeltmemiz yeterli olacaktır. (koordinatoku2.py) x_baslangic = satir.find( x= ) y_baslangic = satir.find( y= ) z_baslangic = satir.find( z= ) Çözüm 3. split() metodunda ayracı = yaparak satırların = işaretinden ayrılmasını sağlayabilir, ='in öncesini değişkenin adına, sonrasını değerine atayabiliriz. Bu durumda kodumuz aşağıdaki şekilde olacaktır. (koordinatoku3.py) from numpy import array dosya = open("koordinatlar.dat", "r") koor = [] # (x,y,z) demet degiskenleri for satir in dosya: kelimeler = satir.split("=") x = float(kelimeler[1][:-1]) y = float(kelimeler[2][:-1]) z = float(kelimeler[3]) koor.append((float(x), float(y), float(z))) dosya.close() koor = array(koor) print koor.shape, koor Programcılıkta bir problemi çözmenin birden fazla yolu vardır. Programcı bu yolların olabildiğince hepsini düşünüp, en optimize (yazma, okuma ve çalışma bakımından) ve hızlı olanını seçmelidir. Bu örnekler bize eğer veri dosyasını oluşturma imkanı da programcının elindeyse onu en kolay ve hızlı okunacak şekilde oluşturması gerektiğini de göstermektedir.
20 Dosyaya Yazmak Bir dosyaya yazdırmak için onu iki moddan birinde açmak gerekir: w (write: dosya oluşturup yazma modu), a (append: var olan bir dosyanın sonuna ekleme modu). >>> ciktidosyasi = open("dosyaadi","w") >>> ciktidosyasi = open("dosyaadi", "a") Bir metni dosyaya yazdırırken write() metodu kullanılır. Ancak bu metod print ifadesinden farklı olarak metnin sonuna yeni satır karakteri (\n) eklemez. Bunu sizin eklemeniz gerekir! >>> ciktidosyasi.write("metin" + "\n") Örnek 1. Dosyaya Bir Tablo Yazmak İlk örnek olarak aşağıdaki (içiçe) listeyi düzgün bir tablo şeklinde bir dosyaya yazdırmak istiyor olalım [[ 0.75, , , ], [ , , , ], [ , , , ], [-0.75, , , 0.75 ]] Bu listenin her bir elemanı olan listeleri satır kabul edip, tek tek onları almalı, her bir satıra denk gelen listenin her bir elemanını da bir sütuna yazdırarak ilerlemeliyiz. Her bir satırın sonuna yeni satır karakteri ( \n ) eklemeyi unutmamalıyız.
21 Bu durumda kodumuz aşağıdaki şekilde olacaktır. (dosyayaz1.py) veri = [[ 0.75, , , ], [ , , , ], [ , , , ], [-0.75, , , 0.75 ]] ciktidosyasi = open("tmp_tablo.dat", "w") for satir in veri: for sutun in satir: ciktidosyasi.write("{:14.8}".format(sutun)) ciktidosyasi.write("\n") ciktidosyasi.close() Kodumuza aşağıdaki satırları ekleyerek satır ve sütun sayılarını da göstermek isteyebiliriz (dosyayaz2.py). Bunun için satır sayısı ve sütun sayısını da bilmeliyiz. sutunsayisi = len(data[0]) outfile.write(" ") for i in range(1,sutunsayisi+1): outfile.write("{:10s} ".format("sutun {:d}".format(i))) outfile.write("\n") Gördüğünüz gibi write metodunda sutun + str(i) de yazdırabilirdik ancak print fonksiyonu gibi formatlamayı tercih ettik. Zira bu şekilde tüm metnin belirli sayıda karaktere sığdırılmasını otomatik olarak kontrol etmiş oluyoruz. Dosya yazarken tablo görünümünün korunması ve dosyanın kolay okunabilmesi için print fonksiyonundaki gibi (yer tutucular ({} ya da %) kullanarak) yazdırmak iyi bir çözümdür.
22 Şimdi de satır numaralarını ekleyelim ve sütun numaralarını eklediğimiz ve veriyi yazdirdigimiz kodla bunu birleştirelim. veri = [[ 0.75, , , ], [ , , , ], [ , , , ], [-0.75, , , 0.75 ]] ciktidosyasi = open("tmp_tablo.dat", "w") sutunsayisi = len(veri[0]) ciktidosyasi.write(" ") for i in range(1,sutunsayisi+1): ciktidosyasi.write("{:s} ".format("sutun {:d}".format(i)))) ciktidosyasi.write("\n") for satir in veri: ciktidosyasi.write("satir {:2d}".format(satir_sayaci)) for sutun in satir: ciktidosyasi.write("{:14.8f}".format(sutun)) ciktidosyasi.write("\n") satir_sayaci += 1 ciktidosyasi.close()
23 Ödev 8 (30 Aralık 2016, Cuma 16:00) exoplanet.eu keşfedilen tüm ötegezegenlerin parametrelerine ulaşabileceğiniz eşsiz bir katalog sunar. Bu katalogu sorgulamak üzere çok sayıda seçenekle donatılmş bir de arama motoru bulunmaktadır. Bu ödevde size verilen (Furkan Tomak: EPIC (K2), Merve Kesin: HAT-P, Ülkü Kınayer WASP) gezegen araştırmasında keşfedilen tüm gezegenlerin kütle (M), yarıçap (R), yörünge dönemi (P), yörünge yarıbüyük eksen uzunluğu (a) ve yörünge dışmerkezliliği (e) değerlerini içeren bir veri dosyası hazırlayınız. (örnek olarak bu ders notu ile birlkte XO gezegen araştırmasının ulaştığı sonuçları içeren odev8_ornekveri_xo.dat ı indirebilrsiniz) 1. Dosyayı açıp, başlık satırını atladıktan sonra dosyayı bir döngü içerisinde satır satır okuyunuz. 2. Her bir satırı split() metodunu kullanarak ayırıp birer (M, R, P, a ve e listeleri) listeye toplayınız. 3. Bu listelerden nümerik dizi içerenleri np.array() fonksiyonunu kullanarak NumPy nümerik dizilerine dönüştürünüz. 4. matplotlib.pyplot fonksiyonlarından plot fonksiyonunu kullanarak kütle-yarıçap (M-R), kütle-yörünge yarıbüyük eksen uzunluğu (M-a), yörünge dönemi-yarıçap (P-R) ve yörünge dönemi-dış merkezlilik (P-e) grafiklerini ayrı ayrı grafikler üzerinde farklı renkler ve simgeler kullanarak çizdirdiğiniz. Çizdirdiğiniz grafiklerde eksenleri ve grafiği isimlendiriniz. Gerekli gördüğünüzde logaritmik eksen kullanabilirsiniz. 5. NumPy polyfit fonksiyonunu kullanarak kütle-yarıçap ilişkisine en iyi uyabileceğini düşündüğünüz (polinomun derecesini gözle tahmin edebilirsiniz) polinomun katsayılarını bulunuz (katsayilar = numpy.polyfit(x,y, deg=n) x-y dizilerine uyumlanabilecek en iyi n. dereceden polinomun n+1 adet katsayisini hesaplar). 6. NumPy poly1d fonksiyonunu kullanarak 5. adımda bulduğunuz katsayılardan polinom fonksiyonuna ulaşınız (polinom = numpy.poly1d(katsayilar)). 7. NumPy linspace fonksiyonunu kullanarak 0 dan başlayıp araştırmanın keşfettiği en büyük gezegenin büyüklüğüne kadar değişen ve aralarında 0.01 [R jüpiter ] bulunan yaricap_grid dizisini oluşturunuz adımda bulduğunuz polinom fonksiyonunda 7. adımda oluşturduğunuz yaricap_grid nümerik dizisini yerleştiriniz (kutle_grid = polinom(yaricap_grid)) 9. matplotlib.pyplot fonksiyonlarından plot fonksiyonunu kullanarak yaricap_grid'e karşılık kutle_grid değerlerini mavi kesiksiz bir eğriyle bir öncki grafiğin üzerine çizdiriniz. 10. matplotlib.pyplot fonksiyonlarından show() fonksiyonunu kullanarak ekrana getiriniz. 11. Çizdirdğiniz tüm grafikleri png formatinda Türkçe karakter içermeyecek şekilde ad_soyad_ogrno_odev8_grafikno.png adıyla, yazdığınız programı ad_soyad_ogrno_odev8.py adıyla kaydedip, ekremmuratesmer@gmail.com adresine gönderiniz!
24 Teşekkürler
AST415 Astronomide Sayısal Çözümleme - I. 8. Python'da Dosya Yönetimi Metin (String) ve Sözlük (Dictionary) Değişkenler
AST415 Astronomide Sayısal Çözümleme - I 8. Python'da Dosya Yönetimi Metin (String) ve Sözlük (Dictionary) Değişkenler Bu derste neler öğreneceksiniz? Dosyalarla İşlemlere Giriş Veri Dosyalarını Açmak
DetaylıAST415 Astronomide Sayısal Çözümleme - I. 7. Grafik Çizimi
AST415 Astronomide Sayısal Çözümleme - I 7. Grafik Çizimi Bu derste neler öğreneceksiniz? Python'la şekildekine benzer grafikler çizmeyi öğreneceksiniz! MATPLOTLIB.PYPLOT Modülü Python da grafik çizmek
DetaylıPythonda değişkenlerin türlerini tanımlamaya gerek yoktur
Python büyük-küçük harf ayrımı yapar. Pythonda kod yazarken girintiler kullanılır Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur Klavyeden girilen bir değeri okumak ad=input("adınızı giriniz")
DetaylıPython ile Programlamaya Giris
Python ile Programlamaya Giris Ders 4 Veri Tipleri Arasinda Dönüsüm Asagida iki farkli veri tipi, int ve str, gösteriliyor. >>> 3 3 >>> '3' '3' >>> Ilk girilen sayi 3 bir tamsayi iken ikinci girilen sayi
DetaylıAST415 Astronomide Sayısal Çözümleme - I. 6. Diziler ve Matrisler (NumPy Modülü)
AST415 Astronomide Sayısal Çözümleme - I 6. Diziler ve Matrisler (NumPy Modülü) Bu derste neler öğreneceksiniz? Python da Nümerik Diziler (Array) Dizilere Neden İhtiyaç Var? Python ve Nümerik Diziler (NumPy
DetaylıPython Programlama Dili
Python Programlama Dili 3. Python da Döngüler Bu bölümde iki tane döngüden bahsedeceğiz: while ve for döngüleri. Ayrıca bu bölümde döngüler dışında break ve continue deyimleri ile range() ve len() fonksiyonlarına
Detaylı2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21
İÇİNDEKİLER VII İÇİNDEKİLER 1 PYTHON 1 Neden Python? 2 Python Sürümleri 2 Python Kurulumu 3 Windows Üzerinde Python 3 Ubuntu Üzerinde Python 6 Komut Satırında Python Çalıştırma 6 Windows komut istemi üzerinde
DetaylıBurada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?
STRİNG (KARAKTER) İŞLEMLERİ Python'da karakter dizilerini ifade etmek için yapmamız gereken tek şey, ifademizi tırnak ("") içinde belirtmektir. Python'da tırnak içerisinde belirtilen her şey karakter dizisi
DetaylıArdışık Veri Tipleri. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.
Ardışık Veri Tipleri Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları *Kaynakça bölümünde verilen kaynaklardan derlenmiştir. Ardışık Veri Tipleri Ardışık veri tipleri, Python programlarında
DetaylıPython Programlama Dili
Python Programlama Dili 7. Dosya İşlemleri Bu bölümde Python programlama dilini kullanarak dosyaları nasıl yöneteceğimizi, yani nasıl yeni bir dosya oluşturacağımızı, bir dosyaya nasıl bir şeyler yazabileceğimizi
DetaylıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA Rastgele sayı üretme C#'ta program yazarken (özellikle oyun programlarında) rastgele değerlere ihtiyaç duyabiliriz. Rastgele sayı üretebilmemiz için öncelikle Random sınıfı
DetaylıALGORİTMA VE PROGRAMLAMA I DERS NOTU#8
ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde
Detaylıİnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler
PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu
DetaylıPython ile Programlamaya Giris
Python ile Programlamaya Giris Ders 6 list Veri Tipi - Diziler Su ana kadar gördügümüz veri tipleri sadece bir deger barindiran veri tipleriydi. Yani sadece bir tane tamsayi veya sadece bir tane string
DetaylıBİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1
BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde
Detaylışeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;
Dosya İşlemleri Nedir? Programlarınızı girdi (input) olarak aldığı verileri bir text dosyasında yada word dosyasında vb. saklamasıdır. Artık C programınızın yaratıp içine veriler koyacağı text dosyasını
DetaylıPrint Komutu ile Değişkenleri Yazdırmak
PYTHON DERS-4 Bu derste eksiklerimizi gidereceğiz. Şimdiye kadar bazı komutları kullandık ancak kullandığımız bu komutların özellikleri hakkında hiçbir şey öğrenmedik. İşte bu derste biraz onlardan bahsedeceğiz.
DetaylıDeğişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne
DetaylıRegular Expressions Version 0.1
Regular Expressions Version 0.1 Hüseyin Kaya hkaya@be.itu.edu.tr 2001 Özet Bu belge Linux and Unix Shell Programming adlı kitaptan faydalalınarak yazılmıştır. Kitabın yazarı David Tansley. İngilizce bilenler
DetaylıYukarıdaki kod aksi belirtilmediği sürece sürekli çalışır. Yani ekrana sürekli Bilgisayar çıldırdı! yazısı gelir. Ancak;
break komutu: Döngüyü sonlandıran bir komuttur. Ör: while True: print("bilgisayar çıldırdı!") Çıktı: Sonsuz döngü Yukarıdaki kod aksi belirtilmediği sürece sürekli çalışır. Yani ekrana sürekli Bilgisayar
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
DetaylıBolum 9. Konu Başlıkları
Bolum 9 Konu Başlıkları 1.Grafik Arayüz Tasarımı//Pencere Araçları(Widgets) Label Button Enrty Checkbutton Toplevel Listbox Menu Text Bitmap Herhangi bir pencere üzerinde bulunan düğmeler,etiketler,sağa-sola,yukarı-aşağı
DetaylıC#(Sharp) Programlama Dili
Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin
DetaylıString ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü
String ve Karakter Dizileri #include Temel giriş çıkış akımları nesnelerinin tanımlandığı kütüphanedir. cin,cout,cerr,clog, wcin,wcout,wcerr,wclog nesneleri içerir. using namespace std; //std
DetaylıBir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.
C# da Diziler Diziler için aynı tipteki verilerin tutulduğu bir koleksiyon diyebiliriz. Örneğin integer verinin bir yığın şeklinde tutulması için dizileri kullanırız. C# da diziler referans tipinde değişkenlerdendir.
DetaylıBİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 3 KONU: M-dosya yapısı ve Kontrol Yapıları M-Dosya Yapısı
DetaylıBMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler
BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin
DetaylıGirdi Çıktı İşlemleri
Girdi Çıktı İşlemleri Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları *Kaynakça bölümünde verilen kaynaklardan derlenmiştir. Ekrandan Okuma ve Ekrana Yazma Python'da ekrandan okuma için
DetaylıBİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 M-Dosya Yapısı Bir senaryo dosyası (script file) özel bir görevi yerine getirmek
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini Okumak ve Yazmak Karakter Dizilerinin Uzunluğunu
DetaylıKümeler. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.
Kümeler Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları *Kaynakça bölümünde verilen kaynaklardan derlenmiştir. Kümeler (Sets) Kümeler, listelere benzer şekilde farklı tipte (metin tipi
DetaylıHSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Dosya İşlemleri (Rastgele Erişim)
Detaylı1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?
İÇİNDEKİLER VII İÇİNDEKİLER 1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ? 1 Neden Python? 3 Python Neden Bütün Hacker ların Favori Programlama Dili? 4 Hangi Editörü Kullanmalıyım? 5 Bu Kitabı Nasıl Kullanmayalıyım?
DetaylıHafta 12 Karakter Tutan Diziler
BLM111 Programlama Dilleri I Hafta 12 Karakter Tutan Diziler Yrd. Doç. Dr. Caner ÖZCAN Katar (String) Tanımlama Dizileri ve çok boyutlu dizileri gördük. Katar dediğimiz şey de aslında bir dizidir. Değişken
DetaylıAşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?
PYTHON DERS-8 LİSTELER-2 Geçen ders listeler oluşturmayı, listedeki her elemanın bir index numarası olduğu ve bu numaranın 0'dan başladığını, listenin tamamını veya index numarası sayesinde belirli bir
DetaylıAST409 Astronomide Sayısal Çözümleme. II. Python da Matrisler
AST409 Astronomide Sayısal Çözümleme II. Python da Matrisler Python da Yardım Alma Seçenekleri Start Programs Python 2.7.5 Python Manuals IDLE Help! (F1) www.python.org/help/ Python Kullanım Kılavuzu Erdem
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak
DetaylıBilgisayar Programlama
Bilgisayar Programlama M Dosya Yapısı Kontrol Yapıları Doç. Dr. İrfan KAYMAZ Matlab Ders Notları M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli
DetaylıTemel Bilgisayar Programlama Final Sınavı Çalışma Notları
Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak
Detaylı14 Şubat 2011 Pazartesi günü uygulamada çözdüğümüz 2. Soruyu, aynı sıra ile bu defa MATLAB kullanarak çözelim.
4 Şubat 2 Pazartesi günü uygulamada çözdüğümüz 2. Soruyu, aynı sıra ile bu defa MATLAB kullanarak çözelim. MATLAB programı sembolik çözümler yapabilmekle birlikte, problemleri numerik olarak çözmeye yarar.
DetaylıDÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()
(LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip
DetaylıMetin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü
Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü Metin Dosyaları Metin dosyaları, verileri bir kere hazırlayıp, ikincil saklama
Detaylı5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi
5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını
DetaylıLength: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.
Programlama Temelleri Trim: metnin başındaki ve sonundaki boşlukları kaldırır. Trim( Selam ) Selam şeklinde çıkar Split: metin içinde ayırma işlemi yapar. Split( ) Metni boşluklarını diziye atar. oşluk
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini
DetaylıMATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü
MATLAB a GİRİŞ Doç. Dr. Mehmet İTİK Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü İçerik: MATLAB nedir? MATLAB arayüzü ve Bileşenleri (Toolbox) Değişkenler, Matris ve Vektörler Aritmetik işlemler
DetaylıGenel Programlama II
Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri
DetaylıHESAP MAKİNASI YAPIMI
HESAP MAKİNASI YAPIMI 1..Aşağıdakine benzer görünüm ve butonları hazırlayın. 2. 24. Butonun içerisine aşağıdaki kodları yazın. 3. Yeni bir layer ekleyip Frame1 F9 na aşağıdaki kodları ekleyelim. 4. Butonlardan
DetaylıMantıksal Kontrol ve Döngü Komutları
Mantıksal Kontrol ve Döngü Komutları Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları *Kaynakça bölümünde verilen kaynaklardan derlenmiştir. Mantıksal Karşılaştırmalar Python, koşullu
Detaylıwhile(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO
while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )
DetaylıTemel Bilgisayar Programlama
BÖLÜM 11: : Birçok programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. Bütün programlama dillerinde, sabit disk sürücüsü (Hard Disk Drive, HDD) üzerindeki verileri okumak veya diske veri
Detaylı1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2
İÇİNDEKİLER VII İÇİNDEKİLER 1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2 2 RUBY KURULUMU 3 Windows İçin Ruby Kurulumu 3 Ubuntu ve Debian İçin Ruby Kurulumu 6 Mac
DetaylıEln 1001 Bilgisayar Programlama I
Eln 1001 Bilgisayar Programlama I GiriŞ / ǹk¹Ş Fonksiyonlar¹ Ne ÖĆreneceĆiz? Temel Giriş/Çıkış Yapısı Giriş Fonksiyonları Karakterler için giriş fonksiyonları Scanf fonksiyonu Formatlı giriş Çıkış Fonksiyonları
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri
DetaylıStrings(Karakter Dizisi)
Strings(Karakter Dizisi) 0 {\ /\ Suhap SAHIN Onur GÖK 1 Tanımlama ve Kullanım char ad[20]; printf("adinizi girin: "); scanf("%s", ad); printf("\nmerhaba %s\n\n", ad); 2 Tanımlama ve Kullanım char ad[20];
DetaylıBTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9
BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)
Detaylı5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr
5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II Öğr.Gör. Hakan YILMAZ hakanyilmaz@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi 2 İçindekiler STRING FONKSİYONU... 3 SPLIT FONKSİYONU...
Detaylıdisp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA
MATLAB 3.DERS disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA Daha önceki derslerimizde input komutu ile klavye üzerinden MATLAB programlama ortamına veri girmeyi öğrenmiştik. Bu dersimizde ise disp
DetaylıÖrnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf
İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...
DetaylıBİL1001 Bilgisayar Bilimlerine Giriş 1
DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar
DetaylıSınav Dağılım & IMKB Endeks
Sınav Dağılım & IMKB Endeks Ege Üniversitesi Bilgisayar Mühendisliği Veri Yapıları Proje-1 Hüseyin YAŞAR 05-06-7657 Didem KAYALI 05-06-7669 Umut BENZER 05-06-7670 Özlem GÜRSES 05-07-8496 Sürüm: 0.2 Bölüm
DetaylıJava String İşlemleri
Java String İşlemleri Karakterler (Characters) "char" kelimesi bir karakter tanımlamak için kullanılır. Karakter tek tırnak içine alınmalıdır. Bir char'ın aralığı 0 ile 65536 arasındadır. Char türü işaretsiz
DetaylıMantıksal İşlemler. 7.1 true, false, nil
7 Mantıksal İşlemler 7.1 true, false, nil Doğru ya da Yanlış değer alan önermelere (ifadelere) mantıksal (logic) deyimler ya da boolean deyimler denilir ([5]). Bir çok dilde mantıksal işlemler true ve
DetaylıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 17: string Sınıfı İçerik string Yapıcı Fonksiyonları string ile Girdi/Çıktı string Operatörleri ı string Nesnesine Sayı Değeri Ekleme 2 string Birden fazla karakter
DetaylıInternet Programming II
Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 1 Fonksiyonlar Değişken Kontrol Fonksiyonları isset() Fonksiyonu Parametre olarak aldığı değişken
DetaylıBLM 111 ALGORİTMA VE PROGRAMLAMA I
1 BLM 111 ALGORİTMA VE PROGRAMLAMA I DİZİLER (ARRAYS) Kullanıcıdan N tane tamsayı, xi, alalım ve 1. Bu sayıların ortalamasını hesaplamak isteyelim ort = 0; for (i=0; i
DetaylıPointer Kavramı. Veri Yapıları
Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar
DetaylıInternet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı
Internet Programming II Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 8 Mar. 2016 PHP de Değişken Tipleri Dizi (Array) Aynı değişken içerisinde birden fazla değer tutmak
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;
DetaylıProgramlama Dili Prensipleri. Lab Notları 8 ve 9
Programlama Dili Prensipleri Lab Notları 8 ve 9 Fonksiyonel Programlama Fonksiyonel programlamada bir fonksiyon aynı parametreler aldığı sürece aynı sonucu üretecektir. Daha çok yapay zeka için kullanılan
Detaylımod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:
Dosyalama Çoğu programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. C programlama dilinde, disk dosyasına erişme (okuma ve yazma için) iki farklı yöntemle yapılır. Bunlar üst düzey ve alt
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Dosya İşlemleri ASCII Tablosu ve
DetaylıStandart Veri Tipleri
Standart Veri Tipleri Sayılar int (tamsayı) float (eesirli sayı) complex (earmaşıe sayı) String (Karaeter Dizisi) Boolean (True, False) Listeler Demetler Sözlüeler Sayılar Sayı örneeleri String Python'da
DetaylıMTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/
MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;
DetaylıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem
DetaylıPROGRAMLAMAYA GİRİŞ DERS 2
PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı
DetaylıInternet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı
Internet Programming II Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU 21 Mar. 2016 PHP de dizi Değişkenler Buraya kadar yaptığımız uygulamalarda değişkenlerin tek değer
DetaylıAndroid Ders Notları
Android Ders Notları 1. Yeni Bir Proje Başlatma Android Studio programında yeni bir proje başlatıyoruz. İlk olarak karşımıza resim 1 deki gibi bir pencere gelecek. Burada Application name kısmına proje
DetaylıFen ve Mühendislik Uygulamaları ile MATLAB
Fen ve Mühendislik Uygulamaları ile MATLAB Doç. Dr. M. Akif CEVİZ Atatürk Üniversitesi Mühendislik Fakültesi Makine Mühendisliği Bölümü M-Dosyaları Kontrol İfadeleri - İlişkisel ve Mantıksal Operatörler
DetaylıPHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.
PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet
DetaylıString. 1.1 Python da String
Bölüm 1 String String, Türkçe de metin diye adlandırılan veri tipidir. Bilgisayara giriş ve çıkışlar karekter dizileri biçimindedir; yani girdi ve çıktılar birer stringdir. Dolayısıyla, programlama dillerinde
DetaylıC Programlama Dilininin Basit Yapıları
Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade
DetaylıC# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler
C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra
DetaylıFonksiyonlar (Altprogram)
Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,
DetaylıExcel de Düşeyara Vlookup) Fonksiyonunun Kullanımı
FARUK ÇUBUKÇU EXCEL AKADEMİ Excel de Düşeyara Vlookup) Fonksiyonunun Kullanımı Excel de arama ve veri işleme konusunda en önemli fonksiyonlardan birisi olan DÜŞEYARA (İngilizce sürümde VLOOKUP) fonksiyonu
DetaylıListeler. Liste Tanımlamak
LİSTELER ve DEMETLER Bu bölüme gelene kadar yalnızca iki farklı veri tipi görmüştük. Bunlardan biri karakter dizileri, öteki ise sayılardı. Ancak tabii ki Python daki veri tipleri yalnızca bu ikisiyle
Detaylık ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.
MATRİS TRANSPOZU: Bir matrisin satırlarını sütun, sütunlarınıda satır yaparak elde edilen matrise transpoz matris denilir. Diğer bir değişle, eğer A matrisi aşağıdaki gibi tanımlandıysa bu matrisin transpoz
DetaylıKISIM I: TEMEL KONULAR 1
İÇİNDEKİLER VII İÇİNDEKİLER KISIM I: TEMEL KONULAR 1 1 TEMEL BİLGİLER 3 Python Hakkında 3 Python u Nereden Bulabilirim? 4 GNU/Linux 4 Microsoft Windows 5 Python Nasıl Çalıştırılır? 5 GNU/Linux ta Python
DetaylıAl Ruby'i Vur Python'a
Al Ruby'i Vur Python'a Python Tutorial'ı Üzerinde Gezintiler Erek Göktürk Onur Küçük Çalıştırma Etkileşimli: irb Argümanlar: ARGV[n] Etkileşimli: python Argümanlar: sys.argv[n] Karmaşık Sayılar Özel bir
DetaylıAST415 Astronomide Sayısal Çözümleme - I. 0. Derse Giriş
AST415 Astronomide Sayısal Çözümleme - I 0. Derse Giriş Dersin Amacı Bu seçmeli dersle öğrencilere modern bilgisayarların Python programlama dilinden yararlanarak bilimsel problemlerin çözümünde nasıl
Detaylı8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.
DİZİLER 8. Bölüm Dizi aynı ad altında toplanmış ve aynı tipte olan değişkenlerin sıralı bir listesidir. C de bir dizi için bildirim yapılırken kullanılan genel kural şudur. tip dizi_ismi[eleman_sayısı];
DetaylıLABORATUVAR ÇALIŞMASI 1 - Python a Giriş
LABORATUVAR ÇALIŞMASI 1 - Python a Giriş Bu Çalışmanın Amacı Bu çalışmadaki amacımız, kullandığımız sistem ve kullanım hedefimiz için en uygun olan Python sürümünü bilgisayarımıza yükleyerek bilgisayarımızı
Detaylı2 ALGORİTMA VE AKIŞ DİYAGRAMLARI
İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ
DetaylıJavascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.
Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html
DetaylıPYTHON PROGRAMLAMA DİLİ
PYTHON PROGRAMLAMA DİLİ Ege Bilmuh GNU/Linux ve Özgür Yazılım Çalışma Grubu http://tinyurl.com/ozgurbilmuh Enes Ateş enes@enesates.com 03.05.2012 Önceki Hafta Python Nedir, Kimler Kullanır? Python'ı Çalıştırmak
DetaylıHow to ASP Language. Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013
How to ASP Language Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı 29 Eki. 1 Kas. 2013 Öğr. Gör. Murat KEÇECĠOĞLU Fonksiyonlar, kendilerini göreve çağıran VBScript komutlarına ve işlemlerine bir
Detaylı