>>> cumle="Basarili olmanın en iyi yolu nedir diye sorulmuş.
Bilgisini paylaşmayı seven başarılı insanlarla çalışmaktır cevabını vermişler">>> cumle[4]'r'>>> cumle[5:9]'ili '>>> cumle2'Ozguven abartilmadikca iyidir.\nYapi ozguvenle catisirsa yapi kazanir'>>> print cumle2
Ozguven abartilmadikca iyidir.Yapi ozguvenle catisirsa yapi kazanirdirek yazinca \n yani yeni satirla başlatmaz ikinci cümleyi.Ama print ile yazınca newlinei işler.
>>> cumle3="""Bu birinci satir... Bu ikinci satir... Bunlar yazildigi gibi gorunurler.""">>> cumle3'Bu birinci satir\n Bu ikinci satir\n Bunlar yazildigi gibi gorunurler.'>>> print cumle3
Bu birinci satirBu ikinci satirBunlar yazildigi gibi gorunurler.3 tırnak işaretine nasıl yazarsanız aynısı görünür.>>> cumle4="Bu satir cok uzun diyelim \
... ters slash ile alt satira geçtim">>> print cumle4
Bu satir cok uzun diyelim ters slash ile alt satira geçtim\ ters slash cümle veya matematiksel işlem çok uzun olduğundayazacağımız alt satırdan devam etmemiziçin kullanılır.>>> a=17>>> b=34>>> print "Canakkale :",a,"Istanbul : ",bCanakkale : 17 Istanbul : 34şeklinde bir print ile birden fazla değeri yan yana yazabiliriz.
Eğer print sonuna ; koymazsak otomatik koyar ama
Satir sonu işraetini istemiyorsanız , ile printi sonlandirabilirisiniz.Bazen , ile sonlandırmak gerekecek.Biçimleme Kodları%s cümle%d tamsayı%f reel sayı%c karakter>>> yas=21>>> print "Ben su an %d yasindayim."%(yas)Ben su an 21 yasindayim.Eğer işlem içinde o anda değeri belli olmayan bir değişkeni bu şekildekullanabiliriz.Runtime esnasında değer belirlenip atanacakBüyük-Küçük Harf Çevrimi>>> print "En sevdigim ıkinci film SO CLOSE dir".upper();EN SEVDIGIM ıKINCI FILM SO CLOSE DIRupper()-->Fonksiyonu verilen değeri büyük harfe çevirir.
>>> print "YAZILIM SEXE BENZER; UCRETSIZ OLANI DAHA IYIDIR(LINUS TORVALDS)".lower();yazilim sexe benzer; ucretsiz olani daha iyidir(linus torvalds)lower()-->Verilen değeri küçük harfe çevirir.
capitalize()-->Cümlenin sadece ilk harfini büyütür.
islower()-->Değişken küçük harfle mi başlamışisupper()-->Cümlede belirtilen harf büyük mü(Mesela cumle[0].isupper()) Cümle ilk harfle mi başlamış>>> cumle3'Bu birinci satir\n Bu ikinci satir\n Bunlar yazildigi gibi gorunurler.'>>> cumle3[0].isupper()Trueeğer büyük ise true değer dönderir.
30 Mart 2010 Salı
Python print,upper(),lower(),\,\n,””” ve Biçimleme Kodların Kullanımı
Python open(),write(),close(),readline(),read(),readlines(),writelines() Dosya Fonksiyonlarına Ait Işlemler
degisken=open(“path”,”açma modu”);Eğer dosya varsa w veya wr ile açarsanız öncekini siler yeni bir tane oluşturur.Eğer dosya yoksa yeni bir tane oluşturur.Açma modu r veya rw ile açarsanızbu durumda dosyanın önceden oluşturulmuş olması gerekir.Yani r ile açtığımdadosya yoksa hata verir.Yenisini oluşturmaz.r demek reader yani okumamodunda açar.Veri yazmak içinse w modunda açmalısınız.yani rw modu hem okumahem de açma modunda açabiliriz.Eğer dosyada verileriniz varsa ve var olanınsonuna bir şeyler yazmak istiyorsanız a modu ile açmak lazım.dosyaDegisnkeni=open(“./dosyaIsmi.txt”,”wr”);
dosyaDegiskeni=open(“./dosyaIsmi.txt”,”a”) dosyadaki verileri silmez ve var olan verilerin
sonuna ekleme yapar.Eğer dosya yoksa bu açma modu a olanda yeni dosya oluşturulur.Genelde bu kullanılır tabi birlikte de kullanabiliriz.Not:Bu şeklişde dosya yolunu belirtirseniz Prdus'ta/home/Ethem yani ev dizinin altında oluşturulur.Tüm python yani .py dosyalarınızdabu dizindedir.ya da path belirtmeden direkt
>>> dosya=open("dosyaismi4.txt","a")şeklinde de ev dizinin altında oluşturulur.Python default olarak ev dizni kullanır.Dikkat eğer a ile açarsanız dosya yoksa dosyayı oluşturur.Yani /home/Ethem pardus 2009 da Ev dizini klasörü masaüstünde var.Tıklarsanız direkt ev dizinine gider.>>> dosyaYolu=open("./dosyaismi3.txt","a")>>> str="Bu cumleyi dosyaya yaz";
>>> dosyaYolu.write(str)
a çma modu ile dosyayı açtık.Eğer dosya yoksa oluşturur.Varsa direkt dosyanın sonuna eklemeye başlar.Mesela biz str stringini dosyaya yazdırdık.>>> dos=open("./isim.txt","a")>>> dos.write("Merhaba")BU değer dosyaya yazılmaz çünkü dosya oluşturulmamış.>>> dos=open("./isim.txt","a")yukarda dosya oluşturuldu ve burda da dosyayı açma moduyla açtık>>> dos.write("Merhaba")merhaba yı dopsyay yazdık.Prdus ta console ekranına python yazıp direkt pythona giriyorsunuz.Ama kod derleme felan console de olur.Pythonun içinden consoleye çıkmak içinseCtrl+d ye basmanız lazım.Consoleyi temizlemek içinse clear kullanılır.Note2: Doyaya yazma işlemi gerçekleşmesi için dosyayı kapatmanız gerekir.Ya da başka bir uygulama kullanıp tekrar dosyaya gelmek.Ama pratiklik açısındanyaptığınız her güncellemeden sonra dosyayı kapatın.>>> doY=open("./isim.txt","a");>>> doY.write("Bu ilk cumledir");>>> doY.write("\nBu ikinci cumledir");>>> doY.close();
Dosya varsa sonuna ekle yoksa oluştur ve sonuna ekle.\n ile ikinci cümlenin alt satıra yazmasını sağladık.DosyaIsmi.close() de var olan dosyayı kapatır.
>>>k=0>>> for k in dOku:... print k;
...Bu ilk cumledirBu ikinci cumledirisim.txt dosyamızı r moduyla açtık ve k isminde bir değişken tanımladıkfor i in dosyaDegiskeni:print i;
ile dosyamızı okuduk bunun yerine>>> satir=1;>>> dosya=open("./isim.txt","r");>>> while satir:... satir=dosya.readline();
... print satir;
...Bu ilk cumledirBu ikinci cumledirşeklinde de atir atir okuma işelmini while ile gerçekleştirebiliriz.>>> dosya=open("./isim.txt"); bu şekilde yani“r” belirtilmezse default olarak okuma modunda dosyayı açar.Başka bir pratik yol ise>>> print open("./isim.txt").read()Bu ilk cumledirBu ikinci cumlediryani dosyayı aç ve read() ile hepsini olkuyup ekrana bas.
read() metodu dosyayı hepsini okur ve bir değişkene aktarır.Tabi buırda print iledirek ekrana bastık.>>> open("./isim.txt","a").write("\nBu dosyay yazilan ucuncu satirdir.")>>> print open("./isim.txt").read()Bu ilk cumledirBu ikinci cumledirBu dosyay yazilan ucuncu satirdir.A modu ile dosyayı açtık ve write() yani open().write() ile dosyayadirekt yazabiliriz.Bu tür pratikler değişken tanımlamaktan kurtatırır.>>> isListesi=["Mehmet","Ethem","SULAN"]>>> open("./isim.txt","a").writelines(isListesi)listeyi dosyay yazdırdık.>>> sozluk={"anahtar":"deger"}>>> open("./isim.txt","a").writelines(sozluk)>>> liste=open("./isim.txt","r").readlines()dosyanın tamamını bir listeye okur.liste ismindeki değişkenşu an tüm dosya bilgilerini içinde barındırır.>>> print open("./isim.txt").read(10)Bu ilk cumdosyadan 10 byte yani 10 karekterlik değeri okuyup ekrana yazdıkDosya Fonksiyonlariwrite(a)--> acumlesini dosyaya yazar.
writelines(pythonDegiskeni)-->Herhangi bir python değişkenini yazdırabiliriz.
readline()-->Dosyadan bir satir okur.
readlines()-->Dosyanın içeriğini listeye okur.
read(a)-->a bytelık değeri okur.Ikinci bir okumada bulunduğu yerden başlar.Bu pratiklik kazandırır.
read()-->Dosyanın tamamını bir cümle değişkenine okur.
close()-->Dosyayı kapatır.
24 Mart 2010 Çarşamba
Matlab ile for-end, size() ve tan() Fonksiyonların Kullanımı
%www.ethemsulan.comclose allclear allx=-10:.1:10a=34/26b=-100:30:100subplot(2,1,1)hold onfor i=1:size(b,2)y(i,:)=x.*a+b(i)plot(x,y(i,:))endx=-5:.1:5b=.2slope=0:.6:2*pislope=tan(slope)subplot(2,1,2)%hold on kodların hepsi aynı figurede çizilmesi için kullanılırhold onclear yfor i=1:size(slope,2)y(i,:)=x.*tan(slope(i))+bplot(x,y(i,:))end
Matlab da if-else ve abs() Fonksiyonun Kullanımı
%www.ethemsulan.comclear allclose allx=-5:0.1:5y=4-abs(x-2)y1=y-4subplot(4,1,1)hold onplot(x,y)plot(x,y1,'r')y2=abs(x-2)subplot(4,1,2)plot(x,y2)y3=abs(x)subplot(4,1,3)plot(x,y3)y4=abs(x)subplot(4,1,4)plot(x,y4)%%%%%%%%%%%%%%%%%%%%% ABS OLMAYANclear allclose allx_1=-5:0.1:2y_1=4-(-(x_1-2))x_2=2:0.1:5y_2=4-(x_2-2)x=[x_1 x_2]y=[y_1 y_2]subplot(4,1,1)hold onsubplot(4,1,1)plot(x,y)y1=y-4hold onplot(x,y1,'r')y2=y1for indis=1:size(y1,2)if (y1(indis)<0) y2(indis)=-y1(indis)% else y2(indis)=y1(indis)%endendendsubplot(4,1,2)plot(x,y2)x1=x-2subplot(4,1,3)plot(x1,y2)x4=-x1y4=y2subplot(4,1,4)plot(x4,y4)
MAL(More Abstract Language) ile Dizi Elemanların Karelerini Alan Kod
.datadizi: .word 0:20.textla $3,dizili $4,76li $5,0for: bgt $5,$4,endforadd $6,$3,$5lw $7,($6)mult $7,$7,$7sw $7,($6)add $5,$5,4b forendfor: done
la $3,dizi –>Dizinin başlangıç adresini 3.registera atıyor.li $4,sabit—>sabiti registera atamak içindir.MAL da işlem yapabilmek için ilk önce değerleri bellekten okuyup bir registera atanmalı(load), işlemimizi bu register üzerinden gerçekleştirdikten sonra tekrar belleğe yazılmalı(store).lw ile bellekten değer okuruz ve sw ile belleğe değerleri yazarız.lw $7,0($6) –>şeklinde de yazılabilir.Sıfır yerine yanı katsayı 4 ün katı olamalı.Çünkü adresler 4 er artıyor.
SAL (Simple Abstract Language ) Komutları
Branch Instruction
b label-->labele git(dallan)
beg a,b,label--> a==b ise labele git
bne a,b,label--> a!=b ise labele git
blt a,b,label--> a<b ise labele git(branch little than)
bgt a,b,label--> a>b ise labele git(a b den büyük ise label yani belitrtilen hedefe git)
ble a,b,label--> a<=b ise labele git
bge a,b,label--> a>=b ise labele git(a b den büyük veya eşitse labele git)
bltz a,label--> a<0 ise labele git(a sıfır(0) dan küçükse label olarak isimlendirilen yere git)
bgtz a,label--> a>0 ise labele git
blez a,label--> a<=0 ise labele git
bgez a,label--> a>=0 ise labele git
beqz a,label--> a==0 ise labele git
bnez a,label-->a!=0 a<>0 yanı a sıfıra eşit değilse labele git
Communicatin Instruction
get a --> scanf("%d",&a); girilen değeri oku ve a ya ata
put a -->printf(a); a değerini yaz. a tek ise(float, byte, word)
puts a -->printf(a); a değerini yaz.Burada a bir stringtir.a(string yanı asciiz) ise
Örneğin satir: .asciiz "Bir deger gir"
deger1: .word 0 -->deger1 değişkeni ve ilk değeri de sıfırdır.
yenisatir: .byte '\n' -->bu değişken put yenisatir yazılınca alt satıra geçilir.
add i,i,1 -->i=i+1
div a,b,c -->a=b/c b ile c yi böl ve sonucu a ya ata
move a,b -->a=b b değerini a ya at. a=20 gibi
mul a,b,c -->a=b*c b ile c yi çarp sonucu a ya ata.
sub a,b,c -->a=b-c b ile c nin farkını a ya ata
la a,dizi -->dizinin başlangıç adresini a ya ata.Dizi ismi diznin başlangış adresidir.
rem a,b,c—> a=b%c –>b mod c nin sonucunu a ya ata
SAL(Simple Abstract Language) ile Palindrom Kontrolünü Yapan Kod
.datastr1: .asciiz "Bir string girin ve sonunda da \n girin"str2: .asciiz "Girilen string palindrom degil"str3: .asciiz "Girilen string palindrom dur"yeniSatir: .byte '\n'stringimiz: .byte 0:200girilen: .byte 0uzunluk: .wordadres: .wordadres1: .wordadres2: .word.text__strat: puts str1la adres,stringimizget girilenbeq girilen,yeniSatir,endwhile1while1: move m[adres],girilenadd adres,adres,1get girilenbne girilen,yeniSatir,while1endwhile1: la adres1,stringimizmove adres2,adressub adres2,adres2,1bge adres1,adres2,cikiswhile2: bne m[adres1],m[adres2],palindromDegilsub adres2,adres2,1blt adres1,adres2,while2puts str3b cikispalindromDegil: puts str2cikis: done
stringimiz: .byte 0:200 –>Boyutu 200 olan bir dizi belirtir ve sıfır ile doldurur. girilen: .byte 0 –>girilen isminde bir degisken ve degeri sıfırdır. la adres,stringimiz –>stringin başlangıç adresini adres değişkenine atar.Dizinin ismi diznin başlangıç adresi olduğu için.while1 ile girilen değerleri diziye ekler. move m[adres],girilen –>girilen ismindeki değişkenin değerini dizinin o anki konumuna ekler.mesela m[3]=’A’ gibi.endwhile1 ile de diziye string girilmemişse sonlandırır. while2 ile de dizinin elemanları kontrol edilir.Polindrom tersten okunuşu da ynı olan strignlerdir.Mesela 19155191 veya asdsa veya EthemehtE while2 ile asdsa daki ilk a ile son ondan sonraki s ile sondan 2 deki s karşılaştırılıyor.Eğer eşit olmayan bir harf varsa palindromdegil e branch eder ve palindrom değil yazar.Eğer uyuşursa str3 ile girilen string palindromdur yazar.
23 Mart 2010 Salı
SAL (Simple Abstract Language) ile Girilen Rakamlardan Sayı Elde Eden Kod
.datarakam: .bytesayi: .wordbasamak: .wordstr1: .asciiz "Bir rakam girin".textmove sayi,0puts str1get rakambasla: bgt rakam,'9',bitirsub basamak,rakam,'0'bltz basamak, bitirmul sayi,sayi,10add sayi,sayi,basamakputs str1get rakamb baslabitir: put sayidoneÖrneğin 1,9,1,8 rakamları girilince sırayla basamak değerine göre 1918 sayısını elde eder.
SAL (Simple Abstract Language ) ile 1 den N ye Kadar Olan sayıların Toplamını Bulan Kod
.datas1: .asciiz "ust limit gir n icin"toplam: .word 0i: .word 0n: .word 0satirBasi: .byte '\n'.text__basla: puts s1get nput satirBasifor: blt n,i,bitiradd toplam,toplam,iadd i,i,1b forbitir: put toplamdone
toplam: word 0—>int toplam=0 gibidir. str1 .asciiz “Deger gir”—>String s1=”Deger gir” printf(s1). blt –>a,b,gidilecekYer-->a<b ise gidilecekeYer yani bitir e git.get n –>scanf(“%d”,&n). puts s1—>String yazar.put toplam—>Herhangi bir değer(float,byte,word) yazar.add a,a,b-->a=a+b anlamındadır. b for –>for a dön.done—> programı sonlandırır. .data—>değişkenler tanımlanır. .text—>kod yazılır.
Matlab ile Yıldız Oluşturma
Matlab’da fplot(),plot(),sqrt() ile Simetri Örneği
%www.ethemsulan.comsubplot(2,2,1)hold onx=-10:0.01:10;y=x;plot(3/5*x,y)y=0*x;plot(x,y)y=x;plot(0*x,y)y=3/5*x;plot(x,y)y=x;plot(-3/5*x,y)y=3/5*x;plot(-x,y)subplot(2,2,2)hold onfplot('-x+2',[-10 16 -10 10])ad=[-8 -6 -4 -6 -6 -8 -4 -6 -6;-6 -4 -6 -4 -2 -2 -2 -2 0]ad=[ad;ones(1,size(ad,2))]plot(ad(1,:),ad(2,:))x1=-8:0.01:-4;x2=-4:-0.01:-8;y1=sqrt(4-abs(x1+6).^2)+2;y2=-sqrt(4-abs(x1+6).^2)+2;cem=[x1 x2;y1 y2];plot(cem(1,:),cem(2,:))cem=[cem;ones(1,size(cem,2))]d=[1 7]'; d=[d;1]t1=[1 0 -d(1,1);0 1 -d(2,1);0 0 1]teta=((pi/2)-acot(-1))t2=[cos(teta) -sin(teta) 0;sin(teta) cos(teta) 0;0 0 1]t3=[-1 0 0;0 1 0;0 0 1]t4=[cos(teta) sin(teta) 0;-sin(teta) cos(teta) 0;0 0 1]t5=[1 0 d(1,1);0 1 d(2,1);0 0 1]T=t5*t4*t3*t2*t1;ncem=T*cem;nad=T*ad;plot(ncem(1,:),ncem(2,:)-12);plot(nad(1,:),nad(2,:)-12)