Skip to content

Instantly share code, notes, and snippets.

@ysnerdem
Last active October 25, 2017 08:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ysnerdem/fbf9e4c8a317961029101069ac08bf09 to your computer and use it in GitHub Desktop.
Save ysnerdem/fbf9e4c8a317961029101069ac08bf09 to your computer and use it in GitHub Desktop.
list = [-1, -2, 0, 1, 2, 3, 4, 5, 18, 6]
class count:
temp = 0
templist = []
def max(self):
max = 0
for i in list:
if i > max:
max = i
self.temp = max
print(max)
def min(self):
min = list[0]
for i in list:
if i < min:
min = i
self.temp = min
print(min)
def sum(self):
sum = 0
for i in list:
sum += i
self.temp = sum
print(sum)
def sort(self):
for j in range(len(list) - 1, 0, -1):
for i in range(j):
if list[i] > list[i + 1]:
list[i], list[i + 1] = list[i + 1], list[i]
self.templist = list
print(list)
def pnz(self):
neg_nums = 0
pos_nums = 0
zero = 0
for i in list:
if i > 0:
pos_nums += 1
self.temp = pos_nums
elif i < 0:
neg_nums += 1
self.temp = neg_nums
else:
zero += 1
self.temp = zero
print("negative numbers:", neg_nums)
print("positive numbers:", pos_nums)
print("zeros:", zero)
def div(self):
num = 3
div = 0
for i in list:
if i%num == 0 and i != 0:
div += i
self.temp = div
print(div)
while True:
print("**You can perform the desired operation by entering the number of operations**")
print("1.Max.Number")
print("2.Min Number")
print("3.Sum of Numbers at the List:")
print("4.Alignment")
print("5.Positives,Negatives and Zeros")
print("6.Division")
print("*Enter 0 or any Number for Termination*")
number = int(input("Process number:"))
if number == 1:
maximize = count
count.max(maximize)
elif number == 2:
min_ = count
count.min(min_)
elif number == 3:
sum_ = count
count.sum(sum_)
elif number == 4:
sorted = count
count.sort(sorted)
elif number == 5:
pnz_ = count
count.pnz(pnz_)
elif number == 6:
num = int(input("Enter the desired number of divisions:"))
division = count
count.div(division)
else:
break
@canozel
Copy link

canozel commented Oct 25, 2017

## class isimleri büyük harfle başlar
## tanımlama değişkenkeri, yani kesinliği %100 olan birdaha değiştirilmeyecek değişkenlerin
## tamamı büyük harfe yazılır. Örneğin: PI_NUM = 3.14 gibi. Bunu genelde class'ın en üstüne yazılır.
class Counter:
  ## list değişkeni Counter sınıfı oluştuğu ilk an tanımlanır. Class ölene kadar ramde yer tutar.
  ## bir değişkeni diğer methodlar içinde çağırabilir yapmak için self demen gerekir. Bu sınıfa ait bir değişken
  ## anlamına gelir.
    def __init__(self):
        self.list = [-1, -2, 0, 1, 2, 3, 4, 5, 18, 6]
  
  ## sadece methoda özel olan değişkenleri public yapmana gerek yok
  ## temp değişkeni her defasında ilk kez çağırıloyrmuş gibi işlem görür iş bitince garbage collector
  ## değişkeni temizler

    def max(self):
        max = 0
        for i in self.list:
            if i > max:
                max = i
                temp = max
        print(max)

    def min(self):
        min = self.list[0]
        for i in self.list:
            if i < min:
                min = i
                temp = min
        print(min)

    def sum(self):
        sum = 0
        for i in self.list:
            sum += i
            temp = sum
        print(sum)

    ## Burada sıralama methodu vardı bu classın işi sadece saymak bu yüzden sıralama
    ## işlemi yapan kodu sildim. Birde aslında print işlemlerinide burada yapmaman lazım 
    ## Bu methodlar sadece sayı döndürmeli. Diyelimki min ve max olan sayıların toplamını class dışında kullanmak 
    ## isteyeceksin. Normade counter.max + counter.min dediğin zaman çalışır ama şuan ki durumda yapamazsın. Bu yüzden
    ## class ve methodlar sadece kendi işlerini yapmalı. 
    def pnz(self):
        neg_nums = 0
        pos_nums = 0
        zero = 0

        for i in self.list:
            if i > 0:
                pos_nums += 1
                temp = pos_nums
            elif i < 0:
                neg_nums += 1
                temp = neg_nums
            else:
                zero += 1
                temp = zero

        print("negative numbers:", neg_nums)
        print("positive numbers:", pos_nums)
        print("zeros:", zero)

#Düzenleme yaptim bunuda incele
    def div(self, num):
        div = 0
        for i in self.list:
            if i % num == 0 and i > 0:
                div += 1

        print(div)

## Counter nesnesinin bir tane referansını oluşturman yeterli bellekte sadece bir tane Counter classı olacak böylece.
## eğer listeyi class dışından ilklemek isteseydin;
## counter = Counter(list) demen gerekirdi. class içindeki __init__ methodu ise şöyle olurdu
## def __init__(self, list):
##     self.list = list
## şeklinde olurdu.
counter = Counter()

while True:
    print("**You can perform the desired operation by entering the number of operations**")
    print("1.Max.Number")
    print("2.Min Number")
    print("3.Sum of Numbers at the List:")
    print("4.Positives,Negatives and Zeros")
    print("5.Division")
    print("*Enter 0 or any Number for Termination*")

    number = int(input("Process number:"))
    if number == 1:
        counter.max()
    elif number == 2:
        counter.min()
    elif number == 3:
        counter.sum()
    elif number == 4:
        counter.pnz()
    elif number == 5:
        num = int(input("Enter the desired number of divisions:"))
        counter.div(num)
    else:
        break

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment