Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions a1_W3.py
Original file line number Diff line number Diff line change
@@ -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)
17 changes: 17 additions & 0 deletions a2_W3.py
Original file line number Diff line number Diff line change
@@ -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.
20 changes: 20 additions & 0 deletions a3_W3.py
Original file line number Diff line number Diff line change
@@ -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.
14 changes: 14 additions & 0 deletions a4_W3.py
Original file line number Diff line number Diff line change
@@ -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.
35 changes: 35 additions & 0 deletions a5_W3.py
Original file line number Diff line number Diff line change
@@ -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.