Aşağıdaki dersimizde Python programlama dilini kullanarak Kat Bölme işlemini öğreneceğiz.
Ancak başlamadan önce Kat bölümünün ne olduğunu kısaca anlayalım.
Zemin Bölümünü Anlamak
Kat bölme, mümkün olan en büyük tamsayıyı döndürmesi dışında normal bir bölme işlemidir. Bu tamsayı normal bölme çıktısından küçük olabilir veya ona eşit olabilir.
Kat fonksiyonu matematiksel olarak ⌊ ⌋ sembolü ile gösterilir.
Şimdi Kat bölme işleminin işleyişini anlayalım. Örneğin,
⌊36/5⌋
Aşama 1: Önce bölme işlemini gerçekleştiriyoruz. Böleceğiz 36 ile 5 .
36 ÷ 5 = 7,2
Adım 2: Şimdi bölme işleminden sonra elde ettiğimiz değer üzerinde kat fonksiyonunu gerçekleştireceğiz. 7.2 .
⌊7.2⌋=7
Sonuç olarak şunu elde ederiz: 7 taban değeri nedir 7.2 . Dolayısıyla taban bölme işlemi, bölme ve en yakın tam sayıya yuvarlama anlamına gelir.
Farklı programlama dilleri, kat bölümünü hesaplamak için belirli bir yerleşik işlev veya operatör sunar. Bazı örnekler şunlar olabilir:
- Şunu kullanabiliriz: zemin() C++ programlama dilindeki yöntem.
- Şunu kullanabiliriz: zemin() Java programlama dilindeki yöntem.
- Şunu kullanabiliriz: // Python programlama dilinde operatör.
Ancak biz Python'da kat bölme işleminin kullanımını yalnızca aşağıdakilerin yardımıyla tartışacağız: çift ters eğik çizgi (//) operatörü .
Python Kullanarak Kat Bölmeyi Anlamak
Python programlama dilinde kat bölme işlemi iki sayıyı bölmek ve sonucu en yakın tam sayıya yuvarlamak için kullanılır.
Kat bölme kavramının derinliklerine dalmadan önce bölmenin anlamını ve işleyişini kısaca kendimize hatırlatalım. matematik.kat() Python'da işlev.
c programı dize dizisi
Python'da Düzenli Bölme İşlemi Yapmak
Ters eğik çizgiyi kullanarak iki sayıyı bölebiliriz ( / ) Python'da bölme operatörü. Aynı şeyi gösteren aşağıdaki örneği ele alalım:
Örnek 1:
# declaring variables a = 13 b = 4 # performing regular division c = a / b # printing the result print(a, '/', b, '=', c)
Çıktı:
13 / 4 = 3.25
Açıklama:
Yukarıdaki kod parçacığında iki değişkeni şu şekilde tanımladık: bir = 13 Ve b = 4 . Daha sonra ters eğik çizgiyi kullanarak bir bölme işlemi gerçekleştirdik ( / ) bölme operatörü ve elde edilen değeri yeni bir değişkende saklayan, C . Sonunda değerini yazdırdık C .
Gördüğümüz gibi Python'da bölme işlemi matematikteki bölme işlemiyle aynı şekilde çalışır.
Python'da math.floor() fonksiyonunu anlama
Python'da hesaplamalar için farklı yararlı matematiksel araçlardan oluşan yerleşik bir matematik modülü vardır.
Böyle bir yerleşik işlev matematik modül şu matematik.kat() işlev. Bu fonksiyon sayısal bir girişi kabul eder ve taban değerini en yakın tam sayıya yuvarlayarak döndürür.
Aynı şeyi gösteren aşağıdaki örneği ele alalım:
Örnek 2:
# importing the floor() function from the math module from math import floor # declaring the variables a = 5.34 b = -5.34 # using the floor() function c = floor(a) d = floor(b) # printing the values print('Floor value of', a, '=', c) print('Floor value of', b, '=', d)
Çıktı:
Floor value of 5.34 = 5 Floor value of -5.34 = 6
Açıklama:
Yukarıdaki kod parçacığında, içe aktardık zemin() işlevi matematik modülü. Daha sonra iki değişkeni şu şekilde ilan ettik: bir = 5,34 Ve b = -5,34 . Daha sonra şunu kullandık: zemin() Her iki değişkenin taban değerlerini hesaplayan ve bunları yeni değişkenlerde saklayan fonksiyon, C Ve D . Sonunda sonuçları kullanıcılar için yazdırdık.
Artık Python'da sayıları bölme ve döşeme kavramlarını anladık. Python'da kat bölümü ile ilgili ayrıntılara geçelim.
Python'da Kat Bölme İşlemi Yapmak
Kat bölme, Python'da iki sayıyı bölmemize ve elde edilen değeri en yakın tam sayıya yuvarlamamıza olanak tanıyan bir işlemdir. Zemin bölünmesi şu şekilde gerçekleşir: çift ters eğik çizgi (//) operatörü . Aynı sözdizimi aşağıda gösterilmiştir:
Sözdizimi:
res = var_1 // var_2
Nerede:
ctc tam formu
Kat bölümünü normal bölüm ile birleştirilmiş bir bölüm olarak düşünebiliriz. matematik.kat() işlev çağrısı.
Not: Taban bölümü herhangi bir sayıyı en yakın tam sayıya yuvarlayabilir. Örneğin, 3,99 yine de 3'e yuvarlanacaktır.
Şimdi kat bölmesinin çalışmasını gösteren bir örnek ele alalım.
Örnek 3:
# declaring the variables a = 13 b = 5 # using the // operator c = a // b # comparing the floor value with regular division d = a / b # printing the values print('Floor Division:', a, '//', b, '=', c) print('Regular Division:', a, '/', b, '=', d)
Çıktı:
Floor Division: 13 // 5 = 2 Regular Division: 13 / 5 = 2.6
Açıklama:
Yukarıdaki kod parçasında iki değişkeni şu şekilde tanımladık: bir = 13 Ve b = 5 . Daha sonra şunu kullandık: // operatörün kat bölme değerini hesaplaması ve kat değerini yeni bir değişkende saklaması, C . Daha sonra kullanarak normal bölme işlemini gerçekleştirdik. / operatörü ve değeri başka bir değişkende saklayan, D . Sonunda her iki sonucu da yazdırdık ve karşılaştırdık.
Şimdi bu yöntemi kullanarak başka bir örneği ele alalım. matematik.kat() işlev.
Örnek 4:
# importing the floor() function from the math module from math import floor # declaring the variables a = 17 b = 5 # using the floor() function c = floor(a / b) # comparing the floor() function with // operator d = a // b # printing the values print('Floor Division using floor() function:', c) print('Floor Division using // operator:', d)
Çıktı:
Floor Division using floor() function: 3 Floor Division using // operator: 3
Açıklama:
Biz ithal ettik zemin() işlevi matematik Yukarıdaki kod parçacığında modül. Daha sonra iki değişkeni şu şekilde ilan ettik: bir = 17 Ve b = 5 . Daha sonra şunu kullandık: zemin() işlev, bölünmüş A ile B ve bunu c değişkeninde sakladım. Daha sonra taban değerini aşağıdakileri kullanarak hesapladık: // operatörü ve değeri yeni bir değişkende saklayan, D . Sonunda her iki değeri de yazdırdık ve karşılaştırdık.
Negatif Sayılarla Kat Bölme İşlemi Yapmak
Negatif sayıları kullanarak da kat bölme işlemi yapabiliriz.
Negatif sayılar durumunda, sonuç değeri yine de en yakın tam sayıya yuvarlanır. Negatif bir sayıyı aşağı yuvarlamak, sıfırdan uzaklaşmayı ima ederek bazılarının kafası karışabilir. Örneğin, -23 yere yatırıldı -3 .
Negatif sayılarla kat bölünmesini gösteren bir örnek ele alalım.
Örnek 5:
# declaring the variables a = -10 b = 4 # calculating floor value using // operator c = a // b # printing the value print('Floor Division:', a, '//', b, '=', c)
Çıktı:
Floor Division: -10 // 4 = -3
Açıklama:
Yukarıdaki kod parçasında iki değişkeni şu şekilde tanımladık: bir = -10 Ve b = 4 . Daha sonra şunu kullandık: // Operatörün taban değerini hesaplaması ve bunu yeni bir değişkende saklaması, C . Son olarak kullanıcı için değeri yazdırdık.
Düzenli bir bölünmeyle, -10/4 geri dönecekti -2,5 ; ancak taban bölümüyle bu sayı en yakın negatif tam sayıya yuvarlanır, yani -3 .
Şamandıralı Kat Bölme İşlemi Yapmak
Python'da float'larla da Kat bölme işlemi yapabiliriz. Zemin bölücü kayan nokta olduğunda sonuç, en yakın tam sayıyı temsil eden kayan nokta olur.
Şamandıralar kullanılarak kat bölünmesini gösteren aşağıdaki örneği ele alalım.
Örnek 6:
# initializing the lists a = [17.5, 10, 13.4] b = [3.3, 2.5, 3] # using for-loop to iterate through the list for i in range(0, 3): # calculating the floor division value c = a[i] // b[i] # printing the result print(a[i], '//', b[i], '=', c)
Çıktı:
17.5 // 3.3 = 5.0 10 // 2.5 = 4.0 13.4 // 3 = 4.0
Açıklama:
Yukarıdaki kod parçacığında iki liste başlattık. Daha sonra şunu kullandık: için Bu listelerin öğeleri arasında yineleme yapmak için -loop, her kat bölme işlemi için değerleri hesapladı ve sonuçları kullanıcılar için yazdırdı.
Sonuç olarak, kat bölme işleminin float'lar ve float kullanılarak gerçekleştirildiğini gözlemleyebiliriz; integer, float'lar olarak temsil edilen en yakın tamsayıya yuvarlanan değeri döndürür.
Python'da Kat Bölme ve Modulo
Matematikte modulo, esas olarak kat bölümüyle ilişkilendirilen bir kavramdır. Modulo'nun iki sayının bölümünden kalan anlamına da geldiğini söyleyebiliriz. Başka bir deyişle, kalanların sayısını onunla sayabiliriz.
Python'da modulo'yu yüzdeyi kullanarak hesaplayabiliriz ( % ) Şebeke.
Python'da kat bölümü ile modulo arasındaki ilişkiyi gösteren bir örneği ele alalım.
Örnek 7.1:
13 şeker ve 4 yiyici verildiğinde her yiyicinin alacağı şeker sayısını kat bölümü yardımıyla hesaplayabiliriz.
Kod:
# declaring variables numberOfCandies = 13 numberOfEaters = 4 # using floor division to calculate the number of candies each eater gets candiesPerEater = numberOfCandies // numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('The number of candies each eater gets:', candiesPerEater)
Çıktı:
Number of Candies: 13 Number of Eaters: 4 The number of candies each eater gets: 3
Açıklama:
Yukarıdaki kod parçacığında şeker ve yiyen sayısını belirten bazı değişkenler tanımladık. Daha sonra şunu kullandık: // Operatör, her yiyicinin alacağı şeker sayısını hesaplamak için kat bölme işlemini gerçekleştirecektir. Daha sonra bu değerleri kullanıcı için yazdırdık.
Şimdi grup arasında paylaşılan toplam şeker sayısını hesaplayalım. Bu pek önemli değil.
Örnek 7.2:
Kişi başına düşen şeker sayısını yiyen sayısıyla çarpacağız.
Kod:
# calculating the total number of candies being shared among the group totalCandiesShared = candiesPerEater * numberOfEaters # printing values print('The total number of candies being shared among the group:', totalCandiesShared)
Çıktı:
The total number of candies being shared among the group: 12
Açıklama:
Yukarıdaki kod parçasında kişi başına düşen şeker sayısını yiyen sayısıyla çarparak grup arasında paylaşılan toplam şeker sayısını hesapladık ve elde edilen değeri kullanıcılara yazdırdık.
Paylaşılan tam şekerlerin toplam sayısı: 12 . Ancak toplam şeker sayısı 13 . Bu ifade, bir şekerin arta kalacağını ve yenmeyeceği anlamına gelmektedir.
Yukarıdaki örnek, kalanların sayısını hesaplamanın bir yolunu açıklamaktadır. Ancak sadece kalanların sayısıyla ilgileniyorsak bunu modulo yardımıyla doğrudan hesaplayabiliriz.
Örnek 7.3:
13 şeker ve 4 tane yiyen olduğuna göre kalan şekerlerin sayısı kaçtır?
Kod:
gimp filigranı kaldır
# declaring variables numberOfCandies = 13 numberOfEaters = 4 # using modulo to calculate the leftover candies leftoverCandies = numberOfCandies % numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Total number of Leftover Candies:', leftoverCandies)
Çıktı:
Number of Candies: 13 Number of Eaters: 4 Total number of Leftover Candies: 1
Açıklama:
Yukarıdaki kod parçacığında candys ve eaters değerini saklayan değişkenleri bildirdik. Daha sonra kalan şeker sayısını hesapladık. % modulo işlemini belirten operatör. Son olarak bazı ifadeleri ve sonuç değerlerini kullanıcılar için yazdırdık. Sonuç olarak, kalan şekerin olduğunu görebiliriz. 1 .
a = b * (a // b) + (a % b)
Python'da kat bölümü ve modülo aşağıdaki denklemle ilişkilidir:
Nerede:
Örneğin, yukarıdaki denklemin 13 şeker ve 4 yiyen için geçerli olduğunu doğrulayalım.
13 = 4 * (13 // 4) + (%13 4)
13 = 4 * 3 + 1
13 = 13
Böylece Python'da kat bölümü ve modulo kavramlarını anlamış olduk. Şimdi her ikisini de hesaplayan bazı yerleşik işlevlere bakacağız.
Python'da divmod() Fonksiyonunu Anlamak
Python, adı verilen yerleşik bir işlev sunar. divmod() bu bize hem kat bölümünü hem de iki sayısal değer arasındaki modülü hesaplama olanağı sağlar.
için sözdizimi divmod() fonksiyon aşağıda gösterilmektedir:
Sözdizimi:
res = divmod(var_1, var_2)
Nerede:
Şimdi bunu gösteren aşağıdaki örneği ele alalım. divmod() işlev.
Örnek 8:
13 şeker ve 4 yiyici verildiğinde, her yiyen kaç tane tam şeker alır ve geriye kaç şeker kalır?
Kod:
# declaring variables numberOfCandies = 13 numberOfEaters = 4 # using the divmod() function nCandies, nLeftovers = divmod(numberOfCandies, numberOfEaters) # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Number of Candies per eater:', nCandies) print('Total number of Leftover Candies:', nLeftovers)
Çıktı:
Number of Candies: 13 Number of Eaters: 4 Number of Candies per eater: 3 Total number of Leftover Candies: 1
Açıklama:
Yukarıdaki kod parçasında bazı değişkenleri tanımladık. Biz kullandık divmod() Verilen değişkenler için kat bölme değerini ve modulo'yu hesaplama işlevi. Daha sonra bu değerleri kullanıcılar için yazdırdık.
Kat Bölümü Önceliğini Anlamak
Python'da kat bölme operatörü // çarpma işlemiyle benzer öncelik seviyesine sahiptir ( * ), bölüm ( / ) ve modulo ( % ).
Bu ifade, çarparsak ve sonra tabana bölme işlemi yaparsak, önce çarpmanın, ardından taban bölmenin elde edileceğini ve bunun tersinin de geçerli olduğunu ima eder.
Ancak mesela iki sayıyı çıkarıp kat bölme işlemi yaparsak kat bölme işleminin önü açılacaktır.
Aynı şeyi gösteren bir örneği ele alalım.
Örnek 9.1:
# declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = a * b // c - d # printing the result print(a, '*', b, '//', c, '-', d, '=', e)
Çıktı:
3 * 5 // 6 - 7 = -5
Açıklama:
Yukarıdaki kod parçasında bazı değişkenleri şu şekilde tanımladık: a = 3, b = 5, c = 6 , Ve d = 7 . Daha sonra bir işlem gerçekleştirdik ve elde edilen değeri yeni bir değişkende sakladık, Bu . Son olarak bu değeri kullanıcılar için yazdırdık.
Bu sonucun nasıl hesaplandığını anlamak için terimlerin yanına doğru öncelik sırasına göre parantez ekleyebiliriz.
Aşağıda gösterilen örnek aynı şeyi göstermektedir:
Örnek 9.2:
# declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = ((a * b) // c) - d # printing the result print('((', a, '*', b, ') //', c, ') -', d, '=', e)
Çıktı:
(( 3 * 5 ) // 6 ) - 7 = -5
Açıklama:
Yukarıdaki kod parçasında bazı değişkenleri şu şekilde tanımladık: a = 3, b = 5, c = 6 , Ve d = 7 . Daha sonra aynı işlemi parantez içinde gerçekleştirdik ve elde edilen değeri yeni bir değişkende sakladık, Bu . Son olarak bu değeri kullanıcılar için yazdırdık.
Önceki örnektekine benzer bir sonuç elde ettiğimizi görebildiğimiz gibi hesaplama sırası şu şekildedir:
sql ddl komutları
Çarpma → Taban Bölme → Çıkarma
Yukarıdakilerin adım adım hesaplanması:
3 * 5 // 6 - 7
((3 * 5) // 6) - 7
(15 // 6) - 7
2 - 7
-5
Python programlama dilinde kat bölümünü ve kullanımını iyice anladık.
Son olarak zemin bölümü için gelişmiş bir kullanım örneğine bakacağız. Şu durumda ileri, zor anlamına gelmez; ancak oldukça sıra dışı bir durum.
Zemin Bölmesinin İleri Seviye Kullanımını Anlamak
Bazılarımız Python'da kat bölme işlemini destekleyen özel nesneler de yapabileceğimizin farkında olabilir. Bu, olarak bilinen özel bir yöntemle mümkün olabilir. __katdiv__() .
Python'daki __floordiv__() yöntemi
Python'daki kat bölme işlemi iki sayıyı bölmek ve sonucu en yakın tam sayıya yuvarlamak için kullanılır.
Sayısal bir tür, adı verilen özel bir yöntemi uyguladığı için başlık altında çalışır. __katdiv__() . Daha sonra her aradığımızda // iki nesne arasındaki operatör, __katdiv__() yöntem çağrılır.
Python'da doğrudan şunu da arayabiliriz: __katdiv__() yöntem. Aynı şeyi gösteren aşağıdaki örneği ele alalım:
Örnek 10:
# declaring some variables a = 31 b = 7 # performing floor division using the // operator c = a // b # performing floor division using the __floordiv__() method d = (a).__floordiv__(b) # printing the results of both operations print('Using the // operator: ', a, '//', b, '=', c) print('Using the __floordiv__() method: (', a, ').__floordiv__(', b, ') =', c)
Çıktı:
Using the // operator: 31 // 7 = 4 Using the __floordiv__() method: ( 31 ).__floordiv__( 7 ) = 4
Açıklama:
Yukarıdaki kod parçasında iki değişkeni şu şekilde tanımladık: bir = 31 Ve b = 7 . Daha sonra kullanarak kat bölme işlemini gerçekleştirdik. // operatör ve __katdiv__() yöntemini kullandı ve sonuç değerlerini iki değişkende sakladı, C Ve D . Sonunda sonuçları kullanıcılar için yazdırdık.
Yukarıda gösterilen çıktıdan her iki ifadenin de aynı sonucu verdiğini görebiliriz. Bunun nedeni, ilk ifadenin ikinci ifadeye dönüştürülmesidir. Yani bu çağrılar birbirine eşdeğerdir.
Artık işler ilginçleşecek. Aşağıdaki örneği ele alalım.
Örnek 11.1:
Aşağıdaki örnekte tamsayı değerlerini dize olarak temsil eden özel bir sınıf oluşturacağız. Daha sonra bu özel sınıftan iki nesne oluşturup üzerlerinde kat bölme işlemi gerçekleştireceğiz.
Kod:
# creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # printing the result of the floor division operation print(intOne // intTwo)
Çıktı:
Traceback (most recent call last): File 'D:Python_programspycase.py', line 11, in print(intOne // intTwo) TypeError: unsupported operand type(s) for //: 'IntStr' and 'IntStr'
Açıklama:
Yukarıdaki kod parçacığında bir sınıfı şu şekilde tanımladık: Uluslararası tamsayı değerlerini dize olarak temsil eder. Daha sonra iki nesne oluşturduk. Uluslararası sınıf. Sonunda zemini bölüştük makamlı okumak tarafından nesne intTwo nesneyi denedim ve sonucu yazdırmayı denedim.
Ancak yukarıdaki çıktı şunu gösteriyor: TipHatası . Bu hata mesajı şunu ortaya koyuyor: Uluslararası nesneler zemin bölümünü desteklemez. Bu hata mantıklıdır. Özel tür, zemini bölen dize nesneleri hakkında nasıl bir ipucuna sahip olabilir?
Ancak ortaya çıktığı gibi, bunu yapabiliriz Uluslararası nesne desteği zemin bölümü.
Daha önce, numarayı ne zaman çağırdığımızı öğrenmiştik. // operatörünü çağırıyoruz __katdiv__() yöntem. Bu yöntem nesnenin sınıfında bir yerde yürütülür. Örneğin, int sınıfı kat bölme işlemini uyguladığı için int nesneleri kat bölme işlemini destekler. __katdiv__() yöntem.
Bu özel yöntemler, __katdiv__() , bu yöntemleri özel sınıfa uygulayabilmemiz gibi harika bir ortak noktaya sahibiz. Yani Python programlama dilinde özel nesnelerin kat bölmeyi desteklemesini sağlayabiliriz.
Şimdi aynı şeyi gösteren aşağıdaki örneği ele alalım.
Örnek 11.2:
iyi şanslar
Aşağıdaki örnekte uygulayacağımız __katdiv__() içine yöntem Uluslararası sınıf. Daha sonra bu özel sınıftan iki nesne oluşturup üzerlerinde kat bölme işlemi gerçekleştireceğiz.
Kod:
# creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne.val, '//', intTwo.val, '=', res.val)
Çıktı:
17 // 4 = 4
Açıklama:
Yukarıdaki kod parçacığında bir sınıfı şu şekilde tanımladık: Uluslararası tamsayı değerlerini dize olarak temsil eder. Biz de uygulamaya koyduk __katdiv__() Bu sınıftaki yöntem. Bu yöntem kendisinden ve başka bir nesneden sayısal dize değerini kabul eder. Bu string değerlerini tamsayılara dönüştürdük ve aralarında bir kat bölme işlemi gerçekleştirdik. Daha sonra sonucu tekrar bir dizeye dönüştürdük ve yeni bir dize oluşturduk. Uluslararası nesne. Biz bunu somutlaştırdık Uluslararası iki nesne ile sınıf ve aralarında kat bölme işlemi gerçekleştirdi. Son olarak ortaya çıkan değeri kullanıcılar için yazdırdık.
Artık kat bölümünü desteklemek için özel bir sınıf oluşturma yöntemini başarıyla anladık.
Aramamız gerektiği gerçeğinden hoşlanmıyorsak nesne.val Sonucu görmek için uygulayabiliriz __str__() Yazdırma sırasında değeri doğrudan döndüren yöntem.
Aynısını gösteren aşağıdaki örneği ele alalım.
Örnek 11.3:
# creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) def __str__(self): return self.val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne, '//', intTwo, '=', res)
Çıktı:
17 // 4 = 4
Açıklama:
Yukarıdaki kod parçacığında bir sınıfı şu şekilde tanımladık: Uluslararası tamsayı değerlerini dize olarak temsil eder. Biz de uygulamaya koyduk __katdiv__() Bu sınıftaki yöntem. Daha sonra tanımladık __str__() Yazdırma sırasında dize değerlerini doğrudan döndüren yöntem. Biz bunu somutlaştırdık Uluslararası iki nesne ile sınıf ve aralarında kat bölme işlemi gerçekleştirdi. Son olarak ortaya çıkan değeri kullanıcılar için yazdırdık.