Python Programlamaya Giriş 21 – Dinamik kod üretme

python-programlamaya-giris-50

Python dinamik tabir edilen dillerden biridir; programdaki nesneleri önceden bildirmeniz gerekmez, program çalıştıkça işlenen komutlar o anda yeni nesneler üretir. Bu dinamiklik sayesinde, dize olarak verilmiş Python komutlarını da işleyebilir, hatta program yazan programlar yazabiliriz.

Bu işlemi yapmak için iki Python fonksiyonu vardır: eval() ve exec()

Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

eval

Bu fonksiyon, Python komutları içeren bir dizeyi yorumlayıcıya gönderir ve sonucu geri verir.

In [1]:

Devamı...

Python Programlamaya Giriş 20 – Dosya Okuma ve Yazma

Yazı dizimizin bu bölümünde, dosya okuma ve yazma yöntemlerinden bahsedeceğiz. Önce herhangi bir özel şekilde yapılanmamış olan düz metin dosyalarını işlemeyi göreceğiz. Ardından csv modülüyle CSV biçiminde yapılanmış dosyaları okuyup yazmayı inceleyeceğiz. JSON, ZIP, PDF, Word, Excel, HTML dosyalarının işlenmesine kısaca değineceğiz. Son olarak, Python oturumunda yarattığımız nesneleri ikili (binary) formda dosyaya kaydetmemizi ve sonra dosyadan tekrar yüklememizi sağlayan pickle modülünün kullanımını özetleyeceğiz.

Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Genel dosya okuma/yazma

Dosya okumak

Öncelikle, IPython sihirleriyle deneme.txt isimli bir dosya yaratalım (Jupyter kullanmıyorsanız aşağıdaki metni bir metin editörüne kopyalayıp deneme.txt ismiyle çalışma dizininize kaydedebilirsiniz).

In [1]:

Devamı...

Python Programlamaya Giriş 14 – Sözlük Metodları

Python’daki veri tiplerini daha önce kısaca ele almıştık; bir önceki bölümde de liste tipine ait metodların kullanımını örneklerle incelemiştik. Bu yazıda sözlük tipine ait olan metodları örneklerle açıklıyoruz. Bundan sonraki bölümlerde dize ve küme tiplerine ait metodları inceleyeceğiz.

Sözlükler, listeler gibi, birden fazla elemanı bir araya toplayan yapılardır. Listelerden farkları sıralı nesne olmamalarıdır. Bir listenin indeksleri üzerinden doğal bir sırası varken, sözlüklerin elemanlarında doğal bir sıralama mevcut değildir.

Bir sözlük birleşmeli dizi (associative array) olarak anılan bir veri yapısıdır. Bu yapıdaki her eleman bir anahtar-değer (key-value) çiftinden oluşur. Belli bir değere ulaşmak için o değere ait tekil anahtarı kullanmak gerekir. Bu anahtar bir sayı, dize veya çokuz olabilir.

Devamı...

Python Programlamaya Giriş 19 – Liste kurma, sözlük kurma, üreteç ifadeler

python-programlamaya-giris-44

Diyelim mevcut bir listedeki her elemanı tek tek işleyip, işlemin sonuçlarını yeni bir listede toplamak istiyorsunuz. Bunun için boş bir listeyle başlayıp, bir döngü içinde append() metoduyla listeyi adım adım büyütebiliriz. Bu yazıda Python’da bu işlemi daha hızlı verimli olarak yapmamızı sağlayan özel liste kurma yazımını göreceğiz. Liste kurma, genel olarak bir üreteç ifadesi örneğidir. Liste kurma gibi sözlük ve kümeleri de hızlıca kurmak için benzer bir yazım kullanırız.

Yazı dizimizin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Basit liste kurma

Basit bir örnekle başlayalım: Bir sayı listesi alalım, ve liste elemanlarının karelerinden oluşan yeni bir liste oluşturalım.

Şimdiye kadar gördüğümüz yöntemlerle bu işi yapmak için önce boş bir liste yaratırız, sonra bir for döngüsü içinde sayıları tek tek alırız, karelerini teker teker boş listeye ekleriz.

In [1]:

Devamı...

Python Programlamaya Giriş 18 – Python referans modeli, sığ ve derin kopyalama

Python Programlamaya Giriş yazı dizimizin bu bölümünün konusu, Python’da isimler ve nesnelerin eşleştirilmesinin ayrıntıları, ve bu ayrıntıların bazen nasıl bizi şaşırtabileceği. Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Nesneler ve referanslar

Elimizde a isimli bir liste olsun. Diyelim bu listeyi kopyalayıp b isimli ikinci ve eş bir liste yaratmak istiyoruz. İlk aklımıza gelen şeyi yapalım ve basit bir atama yapalım.

In [1]:

Devamı...

Python Programlamaya Giriş 17 – Küme metodları

Python programlamaya giriş konulu yazı dizimizdeki son birkaç bölümde, Python’da tanımlı temel veri tiplerinin kullanımının ayrıntılarından bahsettik. Bu yazıdaki konumuz, daha önce bahsetmediğimiz bir veri yapısı olan “kümeler”. Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Bir küme, listelerden farklı olarak, belli bir sırası bulunmayan bir veri topluluğudur; yani elemanlarına indeksleme ile erişilemez. Ayrıca, matematiksel kümeler gibi, aynı elemandan birden fazla barındıramaz. Python’da bir küme yaratmanın birinci yolu, nesneleri küme parantezinde toplayarak vermektir:

In [1]:

Devamı...

Python Programlamaya Giriş 16 – Dize biçimlendirme

Python Programlamaya Giriş dizimizin bir önceki bölümünde dizelerle yapılabilecek işlemleri ve yaygın dize metodlarını özetledik. Bu yazıda dize metodlarından biri olan format() ile dize biçimlendirmeyi daha ayrıntılı işleyeceğiz. Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Birçok durumda bir değişkende barındırılan bir değeri uygun bir biçimde düzenleyerek ekrana basmamız gerekir. Bu düzenlemeler ve biçimlendirmeler örneğin şöyle olabilirler:

  • Bir kalıp dize içindeki boşlukları doldurmak, İsim:...., Yaş:.... gibi.
  • Sayıları ondalıktan sonra sabit sayıda basamakla vermek: 9.340, -18.731 gibi.
  • Sayıları sıfırlarla doldurmak: 099.45, 001.12 gibi.
  • Tablo halinde basılan listeleri hizalı olarak, belli boşluklar ayırarak basmak.
  • Tablo içeriklerini sağa veya sola yaslamak, ortalamak.

Bu tür düzenlemeler için Python’da kapsamlı bir mini-dil mevcut. Bu tür düzenlemeler, format() metoduyla beraber şu şekilde kullanılır:

Devamı...

Python Programlamaya Giriş 15 – Dize metodları

python-programlamaya-giris-19

Python programlamaya giriş yazı dizimizin bu bölümünde dizelerin kullanımını daha ayrıntılı inceleyeceğiz ve dize veri tipine ait olan metodların bazılarına örneklerle göz atacağız. Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Dize, bir veya daha fazla karakterden bir araya gelmiş bir sıralı veri tipidir. Dizelerle düz metin halindeki veriler alınıp işlenebilir. Veriler pek çok zaman düz metin dosyaları halinde bulunur. HTML, XML, JSON veya CSV gibi standartlardaki veriler de düz metinden oluşur. Bir metin verisini dize halinde aldığımızda, dize metodlarını kullanarak bu verileri işleyebilir, biçimlerini değiştirebilir, parçalayabilir, birleştirebilir, sıralayabilir, değişiklik yapabiliriz.

Temel işlemler

Sıralı nesnelerle kullanılan len, in, not in, +, * gibi işlemler dizelerde de aynı şekilde çalışır:

In [1]:

Devamı...

Python Programlamaya Giriş 12 – Sıralı nesnelerle işlemler

python-programlamaya-giris-36

Daha önceki bir bölümde Python’daki liste, çokuz, dize ve sözlük tiplerinin nasıl kullanıldığını kısaca özetlemiştik. Bu ve bunu izleyen üç yazıda liste, sözlük, dize ve küme veri tiplerine dair daha fazla ayrıntı işleyeceğiz. Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Bu yazının konusu sıralı nesne (sequential object) olarak anılan liste, çokuz ve dize tipleriyle ilgili bazı işlemlerdir. Bunlara sıralı nesne denmesinin sebebi, içlerinde barındırdıkları nesnelerin sırasının önemli oluşu. Söz gelişi, "merhaba" dizesi ile "baharem" dizesi farklıdır, aynı harfleri barındırmalarına rağmen. Buna karşılık bir sözlük sıralı nesne değildir, çünkü {"ahmet":123, "ayşe":456} ile {"ayşe":456, "ahmet":123} aynı sözlüğü tanımlarlar.

Bu yazıda göreceklerimiz:

  • Dilimleme (slicing)
  • Öntanımlı fonksiyonlar: range, len, del, list, tuple, join, all, any, enumerate, max, min, sorted, sum, zip
  • Türkçe alfabeye göre sıralama

Dilimleme

Daha önce, bir L sıralı nesnesinin i indeksli bir elemanına L[i] işlemi ile ulaşabildiğimizi görmüştük. Python’da indeksler sıfırdan başladığı için L[i] listenin i+1‘inci elemanını verir.

In [1]:

Devamı...

Python Programlamaya Giriş 13 – Liste metodları

Yazı dizimizin önceki bir bölümünde Python’un öntanımlı veri tiplerini yüzeysel bir şekilde işlemiştik. Bu yazıda ve takip eden birkaç yazıda liste, dize, sözlük ve küme veri tiplerini daha ayrıntılı işleyeceğiz ve bu tip verilerle yapılabilecek işlemleri sıralayacağız. Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Nesneler ve metodlar

Temel kullanım için bunu bilmek çok gerekmese de, Python nesneye yönelik (object-oriented) bir dildir. Python’da tanımladığınız her şey bir nesnedir. Nesneler özel veri yapılarıdır; içlerinde verilerin yanı sıra, o verilerle yapılabilecek işlemleri tanımlayan fonksiyonlar barındırırlar. Söz gelişi, bir liste nesnesinin içinde elemanların değerleri, elemanların ne tipte olduğu, kaç eleman bulunduğu gibi veriler bulunur. Ayrıca listeye eleman ekleme, eleman çıkarma, sıralama gibi işlemler yapan fonksiyonlar da listeyi tanımlayan kodun içindedir. Veri tipinin (sınıfın) tanımı içinde bulunan fonksiyonlara o nesnenin metodları denir.

Herhangi bir veri tipi içinde tanımlanmış isimleri (veri veya metod) dir fonksiyonuyla görebilirsiniz.

In [1]:

Devamı...

Python Programlamaya Giriş 11 – İsimsiz Fonksiyonlar

python-programlamaya-giris-94

Python Programlamaya Giriş yazı dizimizde Python fonksiyonlarının nasıl tanımlandığını, parametre eşleştirmenin ve varsayılan parametrelerin nasıl işlediğini gördük, çeşitli örnekler ve alıştırmalar işledik. Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

Fonksiyonların her zaman def komutuyla tanımlanması gerekmez. Başka bir yol, lambda komutunu kullanarak isimsiz (“anonymous” – belli bir isme bağlı olmayan) fonksiyonlar yaratmaktır. İsimsiz fonksiyonlar, def komutuyla üretilen fonksiyonlara göre daha kısıtlıdırlar. Buna karşılık, bir fonksiyon nesnesi gereken yerlerde bazı kolaylıklar sağlarlar.

Fonksiyonların lambda komutuyla üretilmesine basit bir örnek olarak, aşağıdaki ifadeyi ele alalım. Burada, aldığı parametrenin karesini döndüren bir fonksiyon yaratıyoruz ve buna f ismini atıyoruz.

In [1]:

Devamı...

Python Programlamaya Giriş 9 – Fonksiyonlara Örnekler

python-programlamaya-giris-56

Önceki yazılarda verdiğimiz basit örneklerin ötesine geçip biraz daha elle tutulur fonksiyon örnekleri verelim.

  • Asallık testi
  • Asal çarpanlar
  • Standart sapma
  • Collatz dizisi uzunluğu
  • Taylor serisiyle üstel fonksiyon

Asallık testi

Döngülerden bahsederken, bir sayının asal olup olmadığını belirleyen bir program yazmıştık. Şimdi bunu bir fonksiyon haline getirelim. Parametre değeri bir asal sayıysa fonksiyonumuz True verecek, değilse False verecek.

In [1]:

Devamı...

Python Programlamaya Giriş 10 – Fonksiyon Alıştırmaları

python-programlamaya-giris-67

Python fonksiyonlarının uygulamalarının ardından, şimdi kendiniz uygulayabileceğiniz birkaç fonksiyon alıştırması verelim. Çözümleri bulmak size ait. Buradaki alıştırmaların ötesinde, daha önceki bölümlerde verdiğimiz örnekleri de bir fonksiyona dönüştürmeyi deneyebilirsiniz. Ayrıca internet kaynaklarında pek çok değişik konuda alıştırma örneği bulabilirsiniz.

Dizinin bütün yazılarına erişmek için Python Programlamaya Giriş kategorimize bakabilirsiniz.

  • Fonksiyona verilen en küçük parametreyi bulma
  • Fibonacci sayıları
  • Satranç atının gidebileceği kareler
  • Karekök fonksiyonu
  • Machin formülü ile pi’yi bulmak
  • İkinci derece denklem kökleri
  • Mükemmel sayılar

En küçük parametre değeri

Belirsiz sayıda sayısal parametre alıp, parametreler arasındaki en küçük değeri geri veren bir fonksiyon yazın. (İpucu: Parametre paketlemesi kullandığımızda bütün parametrelerin fonksiyon içinde bir çokuza toplandığını görmüştük. Bu çokuz üzerinde bir döngüyle en küçük değeri bulabilirsiniz.)

Örnekler:

Devamı...

Python Programlamaya Giriş 8 – Fonksiyon Parametreleri

Python Programlamaya Giriş yazı dizimize Python fonksiyonlarının temelleriyle devam ediyoruz.

Bir önceki bölümde Python’da fonksiyonların nasıl yaratıldığından ve nasıl çağrıldığından bahsettik. Bir fonksiyon kapalı bir kutu gibidir: İçinde ne olup bittiğini görmeyiz, parametreler yoluyla bilgi veririz ve cevabı bir değer olarak geri alırız. Bu yazıda parametreleri nasıl kullandığımızı inceleyeceğiz.

Parametre eşleştirme

Aldığı parametreleri ekrana yazan basit bir fonksiyonu ele alalım:

In [1]:

Devamı...

Python Programlamaya Giriş 7 – Fonksiyonlar

Python Programlamaya Giriş yazı dizimize Python fonksiyonlarının temelleriyle devam ediyoruz. Yazı dizimizin şimdiye kadarki bölümlerinde bir programı inşa etmek için gereken bütün yapı taşlarını gördük. Prosedürel programlama denen paradigma içinde programlar birbiri arkasından işlenir, bir karar verilmesi gerektiğinde program akışı iki yoldan birini seçer, veya bir döngü içindeki bir kod parçası tekrarlanır. Teorik olarak, her türlü programı yazmak için bu yapılar yeterli. Ancak, Yogi Berra’nın dediği gibi: Teoride teori ve pratik arasında fark yoktur, ama pratikte vardır. Kod yazarken işlemleri sık sık farklı yerlerde tekrarlamamız gerekir. Söz gelişi, bir yatırımın belli bir dönem sonunda bileşik faizle ne miktara ulaştığını yazmak için bir döngü yazabiliriz. Bu tür bir işlemi büyük bir program içinde değişik yerlerde (mesela farklı yatırım araçları için) kullanmamız gerekebilir. Programcılar böyle tekrarlanan işler için aynı kodu tekrar tekrar yazmaktansa, bunları bir fonksiyon (prosedür veya yordam olarak da bilinir) olarak paketleyip kullanmayı tercih ederler. Fonksiyon kullanmak sayesinde:

  • Aynı kodu defalarca yazmak gerekmez.
  • Tekrarlama yüzünden doğacak hatalar ortadan kalkar.
  • Bellek (RAM) gereksiz yere dolmaz. Kod parçası onlarca kere tekrarlanmak yerine bir kere yazılır.
  • Programcı küçük ayrıntılara tekrar tekrar kafa yormak zorunda kalmaz.
  • İşleri küçük birimlere bölmek, programlama hatalarını bulmayı kolaylaştırır.
  • Programlama dilinin çekirdek tanımında bulunmayan üst seviye işlemleri tek komutla yapmayı sağlar.
  • Fonksiyon kütüphaneleri, uzmanlaşmış programcılar tarafından hızlı ve verimli hale getirilebilir.

Bu faydalar sadece Python değil, her türlü programlama dili için geçerlidir tabii.

Bir fonksiyon bir kara kutu gibi düşünülebilir: Aldığı parametreler onun girdisi, verdiği (“döndürdüğü”) değer ise çıktısıdır. Fonksiyonlara istediğiniz sayıda parametre verebilirsiniz. Parametre almayan ve/veya geriye bir değer vermeyen fonksiyonlar da olabilir.

Kütüphane fonksiyonları kullanma

Bir kütüphane belli bir işlev için hazırlanan fonksiyonların topluluğudur. Bir kütüphane matematik fonksiyonlarını toplarken, başka bir kütüphane kelime işleme, bir başkası ağ iletişimi, bir başkası oyun modülleri barındırıyor olabilir. Kütüphaneler bir dilin resmi tanımına dahil olabilir ve kurulumda beraber gelebilir (bu durumda onlara standart kütüphane denir), veya üçüncü kişiler tarafından hazırlanmış olabilir.

Python dili çok zengin bir standart kütüphaneye sahiptir. Matematik işlemleri, istatistik işlemleri, gün ve saat işlemleri, dosya sıkıştırma, internet protokolleri, HTML, işletim sistemi yönetimi, grafik arayüz oluşturma, ve daha bir çok işlem için gereken hazır fonksiyonlar Python ile birlikte gelir. Bunların dışında yüzlerce başka kütüphane de mevcuttur, istediğinizde bunları sisteminize kurup kullanabilirsiniz. Daha sonraki yazılarda kendi kütüphanelerimizi nasıl oluşturacağımızı da göreceğiz. Bu yazıda sadece matematik fonksiyonları kütüphanesini örnek olarak kullanacağız.

Kütüphaneler diskimize kurulu olarak hazır bekliyor olsalar da, onları kullanmak için önce import komutuyla yorumlayıcıya yüklememiz gerekir.

In [1]:

Devamı...

Python Programlamaya Giriş 6 – Döngü Alıştırmaları

python-programlamaya-giris-98

  1. En uzun Collatz zinciri
  2. Üstel fonksiyon Taylor serisi
  3. Karekök bulma
  4. Machin formülüyle pi’yi bulma
  5. Lojistik fonksiyon ve kaos
  6. SIR salgın modeli

En uzun Collatz zinciri

Collatz dizisinden önceki bölümde bahsetmiştik. Diziyi $n$ sayısıyla başlatırsak, sonraki sayıyı şu bulma kuralla buluruz:

  • $n_i$ çift sayıysa: $n_{i+1} = n_i/2$
  • $n_i$ tek sayıysa: $n_{i+1} = 3n_i+1$
  • $n_i=1$ ise dizi sonlanır.

Meselâ 13 ile başlarsak, on eleman uzunlukta olan 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 dizisini elde ederiz. Bu dizinin uzunluğu 10’dur.

Sorumuz şu: Bir milyonun altındaki bütün başlangıç değerleri içinde hangisi en uzun Collatz dizisini verir? (Başlangıçtan sonraki değerler bir milyonun üzerine çıkabilir.)

(Kaynak: Euler Project, 14. problem)

Üstel fonksiyon için Taylor serisi

Üstel fonksiyonun $x=0$ çevresinde bir sonsuz seri ile gösterilebileceğini temel analiz derslerinden biliyoruz.

\[e^x = \sum_{n=0}^{\infty} \frac {x^n}{n!} = 1 + x + \frac{1}{2}x^2 + \frac{1}{6}x^3 + \cdots\]

Bu seri bütün $x$ değerleri için yakınsar, yani her $x$ değeri için yeterince terim ekleyerek $e^x$ değerini istediğimiz hassasiyette hesaplayabiliriz.

$x$ değerini kullanıcıdan sorarak, yukarıdaki seriyle $e^x$ değerini veren bir program yazın. Programın içinde tol isimli bir tolerans değişkeni tanımlayın ve $10^{-10}$ değeri verin. Bir döngü içinde, son terimin mutlak değeri tol‘den küçük olana kadar seriye yeni terimler ekleyin.

Her terimi sıfırdan hesaplamak gereksiz yük bindirecektir. Eklenecek yeni terimi hesaplarken, bir önceki terimi $x$ ile çarpıp, iterasyon değişkeni olan $n$’ye bölmek daha verimli olur.

Çeşitli $x$ ve tol değerleri kullanarak $e^x$ değerlerini, kaç terim gerektiğini, ve son terimi ekrana bastırın.

Örnek çıktı:

Devamı...

Python Programlamaya Giriş 4 – Döngüler

python-programlamaya-giris-17

Döngüler, daha önce bahsettiğimiz karar yapısı if ile benzer bir yapıya sahiptir. Blok kaydırma yapısı ve mantıksal şartlara aşina değilseniz önce python mantık işlemleri ve karşılaştırmaları okumanız iyi olur.

while döngüsü

while döngüleri, bir mantıksal şart mantıksal “doğru” değerine sahip olduğu sürece tekrarlanır. Döngünün sona ermesi için şartın eninde sonunda yanlış hale gelmesi gerekir. Bunun için döngünün içinde değişkenler uygun şekilde güncellenir. Bu güncellemeyi unutursak sonsuz döngü içine düşeriz ve programımız biz zorla kapatmadıkça durmaz.

Basit bir örnekle başlayalım: 10’a kadar olan sayıları sırayla ekrana yazan bir program yazalım.

In [1]:

Devamı...

Python Programlamaya Giriş 3 – Seçim Yapma, Mantık işlemleri, Karşılaştırmalar

En basit programlarda bile sık sık “şu şart doğruysa şöyle yap, yoksa yapma”, veya “doğruysa şöyle yap, yanlışsa öbür türlü yap” şeklinde düzenlemelere ihtiyaç duyarız. Sözgelişi, “cevap doğruysa puanı bir arttır”, veya “yanlış sayısı dördün katıysa puanı bir azalt” gibi. Birçok dil gibi Python’da da seçim yapısı if-else komutlarıyla kurulur.

if komutu

Karar yapılarının en basit hali, bir şartın doğruluğunu yoklamak ve doğruysa belli işlemler yapmaktır. Sözgelişi aşağıdaki programa bakalım. Hücreyi Shift-Enter ile çalıştırdığımızda tahminimizi soran bir kutu ortaya çıkacak. Kutuya bir cevap yazıp Enter’e basın.

In [2]:

Devamı...

Python Programlamaya Giriş 2 – Sayılar, Aritmetik, Temel Veri Yapıları

python-programlamaya-giris-60

Yeni başlayanlar için Python programlamayı anlatan yazı dizimizin ikinci bölümünde sayıları, aritmetik işlemlerini, ve Python’daki temel veri tiplerini (listeler, çokuzlar, dizeler, sözlükler) işliyoruz.

Bu yazıda sadece kısa ve işlevsel bir giriş yapıyoruz. Sonraki bölümlerimizde veri yapılarının kullanımından daha fazla bahsedeceğiz.

Sayılar ve aritmetik

Python’da öntanımlı (built-in) üç çeşit sayı var: Tamsayılar, reel sayılar, ve karmaşık sayılar. Reel sayılar bilgisayarda kayan nokta (floating point) biçiminde temsil edilir. Bilimsel hesaplama yapanlar için kayan nokta temsilini iyi anlamak çok mühim, ama bunu daha sonraya bırakalım.

Bu üç sayı tipiyle öntanımlı olarak yedi aritmetik işlem yapılabilir: Toplama (+), çıkarma (-), çarpma (*), bölme (/), tamsayı bölme (//), kalan (%), ve üs alma (**).

In [1]:

Devamı...