diff --git a/a1_W3.py b/a1_W3.py new file mode 100644 index 0000000..c2d9664 --- /dev/null +++ b/a1_W3.py @@ -0,0 +1,38 @@ +from functools import reduce + +# 1-perfect_number.py +# Perfect number: Perfect number is a positive integer that is equal to the sum of its proper divisors. +# The smallest perfect number is 6, which is the sum of 1, 2, and 3. +# Some other perfect numbers are 28(1+2+4+7+14=28), 496 and 8128. +# Write a function that finds perfect numbers between 1 and 1000. +# Check perfect numbers between 1 and 1000 and find the sum of the perfect numbers using reduce and filter functions. + +def perfect_number(): + my_list = [*range(1, 1000)] # istenen aralikta bir sayi listesi olusturdum. + perfect_num = [] # perfect sayilari tutmak icin bos bir liste. + for i in range(1, 1000): # ayni sayi araliginda for ile dolastim. + result = list(filter(lambda x: i > x and i % x == 0, my_list)) + # lambda func.ile listeden alinan bir sayi kendinden kucuk sayilardan hangisine tam boluyor ise filtreledim. + if not result: # result listesi bos ise devam et dedim. + continue + summ = reduce(lambda a, b: a + b, result) # reduce func. ile result listesindeki sayilari topladim. + if summ == i: # perfect sartini kontrol ettim. + perfect_num.append(i) # sayi perfect ise listeye ekledim. + print("Perfect Numbers:") + return print(*perfect_num, sep=",") # istenen sonucu yazdirdim ve func.sonlandi. + +perfect_number() # I called the function. + + + + +# my another solution: +# perfect_number=[] +# for i in range(1,1000): +# result=0 +# for j in range(1,i+1): +# if i%j==0: +# result+=j +# if result == i: +# perfect_number.append(i) +# print(perfect_number) diff --git a/a2_W3.py b/a2_W3.py new file mode 100644 index 0000000..d079469 --- /dev/null +++ b/a2_W3.py @@ -0,0 +1,17 @@ +# 2-reading_number.py +# Write a function that outputs the transcription of an input number with two digits. +# Example: +# 28---------------->Twenty Eight + +def reading_number(): + my_dict = {1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine", + 10: "ten", 20: "twenty", 30: "thirty", 40: "forty", 50: "fifty", 60: "sixty", 70: "seventy", + 80: "eighty", 90: "ninety"} # sayilari ve okunuslarini bir dict. topladim. + number = int(input("enter a number: ")) # user in girdigi sayiyi intiger a casting ettim. + second_digit = number % 10 # sayinin ikinci basamagina ulasmak icin 10a bolumunden kalani assign ettim. + first_digit = number - second_digit # sayidan son basamagi cikartip 10lar basamagini assign ettim. + return print(number, "-------------->", my_dict.get(first_digit).capitalize(), + my_dict.get(second_digit).capitalize()) # key leri vererek .get metodu kullatarak value leri yazdirdim. + + +reading_number() # I called the function. diff --git a/a3_W3.py b/a3_W3.py new file mode 100644 index 0000000..c8dce27 --- /dev/null +++ b/a3_W3.py @@ -0,0 +1,20 @@ +# 3-alphabetical_order.py +# Write a function that takes an input of different words with hyphen (-) in between them and then: +# sorts the words in alphabetical order, +# adds hyphen icon (-) between them, +# gives the output of the sorted words. +# Example: +# Input >>> green-red-yellow-black-white +# Output >>> black-green-red-white-yellow + +def alphabetical_order(): + word = input("enter to different words with hyphen (-) in between: ").lower() # inputu kucuk harfe donusturdum. + + word = word.split("-") # kelimeleri aradaki cizgilerden bolerek bir listede topladim. + + word = sorted(word) # listeyi sort ettim. + + return print("Output >>> ", *word, sep="-") # kelime listesini aralarina cizgi ekleyerek yazdirdim ve func.sonlandi. + + +alphabetical_order() # I called the function. diff --git a/a4_W3.py b/a4_W3.py new file mode 100644 index 0000000..376e8cc --- /dev/null +++ b/a4_W3.py @@ -0,0 +1,14 @@ +# 4-unique_list.py +# Write a function that filters all the unique(unrepeated) elements of a given list. +# Example: +# Function call: unique_list([1,2,3,3,3,3,4,5,5]) +# Output : [1, 2, 3, 4, 5] + +def unique_list(): + my_list=[1,2,3,3,3,3,4,5,5] + + unique_list = list(set(my_list)) # verilen liseyi unique olmasi icin once set e, sonra listeye cevirdim. + + return print("Output :",unique_list) # istenen listeyi yazdirdim ve func.sonlandi. + +unique_list() # I called the function. diff --git a/a5_W3.py b/a5_W3.py new file mode 100644 index 0000000..141275b --- /dev/null +++ b/a5_W3.py @@ -0,0 +1,35 @@ +# 5-equal_reverse.py +# Write a function that controls the given inputs whether they are equal to their reversed order or not. +# +# Example: +# +# Input >>> madam, tacocat, utrecht +# Output >>> True, True, False + + +def equal_reverse(): + given_input = input("enter to different words with comma (,) in between:").lower() + print("Input >>> ", given_input) + + given_input = given_input.replace(" ", "") # alinan stringin bosluklarini replace kullanarak yok ettim. + + word_list = given_input.split(",") # virgullerden ayirarak kelimeleri bir listede topladim. + + result = "" # True ve False ifadelerini bir tutmak icin bos bir str assign ettim. + + for word in word_list: # kelime listesi uzerinde for dongusu. + w = "" # kelime nin karakterlerini tutmasi icin bos bir str assign ettim. + right = -1 # kelimenin son harfinin index ini refere ediyor. + for character in word: # kelime harfleri uzerinde for dongusu. + if character == word[right]: # simetrikligi kontrol icin ilk harf ile son harfi kontrol ettim. + right -= 1 # sagdan bir sonraki harfe gecmek icin index i eksilttim. + w += character # karakterleri string olarak topladim. + if w == word: # for dan cikinca toplanan karakterler kelimeye esitse. + result += "True," # palindrom sozcuk ise resulta True ekledim. + else: + result += "False," # palindrom sozcuk degil ise resulta False ekledim. + break # kelimede buldugu ilk asimetrik harfte icerdeki donguyu kirdim. + return print("Output >>>", result) # istenen sonucu yazdirdim ve func.sonlandi. + + +equal_reverse() # I called the function.