{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Bu dersteki bütün IPython Notebook'lar adresinde https://github.com/sinanonur/Python-Lectures mevcuttur ve [bu adres](https://github.com/rajathkumarmp/Python-Lectures)teki içerik Türkçe'ye çevirilerek hazırlanmıştır." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Zen Of Python" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import this" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Değişkenler (Variables)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bir varlığı ya da değeri belirtmek içni kullandığımız isimlere değişken denir. Pythonda değişkenler aşşağıdaki gibi tanımlanıp kullanılabilir:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = 2\n", "y = 5\n", "xy = 'Hey'" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print x+y, xy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aynı değer birden fazla değişkene atanabilir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = y = 1" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print x,y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Operatörler (Operators)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aritmetik Operatörler (Arithmetic Operators)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| Sembol | İşlem |\n", "|----|---|\n", "| + | Toplama |\n", "| - | Çıkartma |\n", "| / | Bölme |\n", "| % | Mod |\n", "| * | Çarpma |\n", "| // | yuvarlayan bölme |\n", "| ** | kuvvet alma |" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "1+2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "2-1" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "1*2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "1/2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "0? Bunun sebebi bölünen ve bölenin tamsayı(integer) fakat sonucun ondalık (float) olmasıdır ve bir tamsayı döndürülür. Bölünen ya da bölenden birisini ondalık sayıya çevirerek doğru cevap alınabilir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "1/2.0" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "15%10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yuvarlayan bölme işlemi aslında sonucu en yakın tamsayıya yuvarlamaktan ibarettir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "2.8//2.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## İlişkisel Operatörler" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| Sembol | İşlem |\n", "|----|---|\n", "| == | True, eğer eşitse |\n", "| != | True, eşit değilse |\n", "| < | küçüktür |\n", "| > | büyüktür |\n", "| <= | küçük eşit |\n", "| >= | büyük eşit |" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "z = 1" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "z == 1" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "z > 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bitwise İşlemler (Bit işlemleri)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| Sembol | İşlem |\n", "|----|---|\n", "| & | Mantıksal Ve |\n", "| l | Mantıksal Veya |\n", "| ^ | XOR |\n", "| ~ | Negate (Tersi) |\n", "| >> | Sağa kaydır |\n", "| << | Sola kaydır |" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = 2 #10\n", "b = 3 #11" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print a & b\n", "print bin(a&b)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "5 >> 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "0000 0101 -> 5 \n", "\n", "0 ekleyerek (0 padding) basamakları 1 kez sağa kaydırma.\n", "\n", "0000 0010 -> 2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "5 << 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "0000 0101 -> 5 \n", "\n", "0 ekleyerek Basamakları 1 kez sola kaydırma\n", "\n", "0000 1010 -> 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Gömülü (Built-in) Fonksiyonlar" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Python bir çok gömülü fonksiyon ile birlikte gelir." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bir sistemden diğerine çevirme" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hexadecimal (Onaltılık) sistemden decimal(onluk) sisteme geçmek **0x** prefixi ekleyerek tersi **hex( )** fonksiyonunu kullanarak yapılabilir.\n", "Octal(sekizlik) sistem geçişleri de benzer şekilde **0** prefixi ve **oct( )** fonksitonu ile yapılabilir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "hex(170)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "0xAA" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "oct(8)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "010" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**int( )** 2 parametre alır ve birisi diğer sayı sistemindeki değeri ikincisi ise tabandır. Diğer sayı sistemindeki girdi String(yazı) şeklinde olmalıdır." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print int('010',8)\n", "print int('0xaa',16)\n", "print int('1010',2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**int( )** aynı zamanda ondalık bir sayıyı ya da String şeklinde ifade edilmiş bir tamsayıyı tamsayı formatına çevirmek için kullanılabilir. Benzer şekilde **str( )** fonksiyonu Sytinge çevirmek için kullanılır." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print int(7.7)\n", "print int('7')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bunun dışında\n", "**bin( )** ikili(binary)\n", "**float( )** tamsayı/ondalık değerler ,için kullanılır.\n", "**chr( )** ASCII değeri alfabedeki karşılığına çevirmek için,\n", "**ord( )** ise tersi için kullanılır." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "chr(98)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "ord('b')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aritmetik ifade sadeleştirme" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**round( )** fonksiyonu belirtilen sayıyı en yakın tamsayıya ya da belirtilen hassasiyeteki sayıya çevirebilir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [], "source": [ "print round(5.6231) \n", "print round(4.55892, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**complex( )**, karmaşık sayı ranımlamak için kullanılır.\n", "**abs( )** mutlak değeri verir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "c =complex('5+2j')\n", "print abs(c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**divmod(x,y)** bölüm ve kalanı tuple(sonraki bölümlerde öğreneceğiz) formunda (bölüm, kalan)şeklinde verir. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "divmod(9,2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**isinstance( )**, eğer verilen ifade verilen sınıfın bir üyesiyse True döndürür. Aynı anda birden fazla sınıfı test etmek mümkündür." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print isinstance(1, int)\n", "print isinstance(1.0,int)\n", "print isinstance(1.0,(int,float))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**cmp(x,y)**\n", "\n", "|x ? y|Çıktı|\n", "|---|---|\n", "| x < y | -1 |\n", "| x == y | 0 |\n", "| x > y | 1 |" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print cmp(1,2)\n", "print cmp(2,1)\n", "print cmp(2,2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**pow(x,y)** $x^y$ değerini hesaplamak için kullanılır.\n", "\n", "**pow(x,y,z)** de ($x^y$ % z) değerini hesaplamak için kullanılır. Yukarıdaki değeri hesaplayıp modunu almaktadır." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print pow(3,3)\n", "print pow(3,3,5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**range( )** fonksiyonu verilen aralıktaki tamsayıları verir.Artışı vererek seriler oluşturmak için de kullanılabilir. Sonuçlar liste (daha sonra değinilecek) şeklinde verilir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print range(3)\n", "print range(2,9)\n", "print range(2,27,8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Kullanıcıdan değer alma" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**raw_input( )** bir girdi okuyarak bir string içinde saklar. Kullanıcı bir tamsayı girerse önce bu tamsayıya çevrilmeli sonra işleme devame dilmelidir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "abc = raw_input(\"Buraya yazdığınız şey abc değişkeninde saklanacaktır. \\t\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "type(abc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**input( )**, sadece tamsayı girdi kabul etmek içindir." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "abc1 = input(\"bu değişkende sadece tamsayı saklanabilir. \\t\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "type(abc1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not: **type( )** verilen sayı ya da değişkenin formatını ya da türünü döndürür." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 0 }