Python programlama dilinde fonksiyonlar, esnek ve güçlü bir şekilde kullanılabilmeleri nedeniyle geliştiricilerin sıklıkla başvurduğu bir araçtır. Ancak, bazen beklenmeyen durumlarla başa çıkma yeteneği ve yaratıcı düşünme gerekliliği, programcılara kendilerini daha da geliştirme fırsatı tanır. İşte size beyin yakan, ilginç ve bir o kadar da karmaşık Python fonksiyon soruları:
- Tek Satırlık Fibonacci Fonksiyonu: Bir Fibonacci sayısı üreten bir Python fonksiyonu yazın. Ancak, bu fonksiyon sadece tek bir satırda olmalı ve lambda fonksiyonları kullanılarak tanımlanmalıdır.
- Sıralı Asal Sayılar: Python’da bir fonksiyon yazın ki bu fonksiyon, kendisine verilen bir sayı aralığı içindeki asal sayıları bulsun ve bu asal sayıları bir liste olarak döndürsün. Ancak, bu liste sıralı olmalıdır.
- Palindrom Kontrol Fonksiyonu: Palindrom bir kelimenin veya sayının tersten de aynı şekilde okunabilen bir yapıya sahip olmasıdır. Bir palindrom kontrol fonksiyonu yazın, ancak bu fonksiyon sadece bir tek satırdan oluşmalı ve lambda fonksiyonları kullanılarak tanımlanmalıdır.
- Aritmetik İfade Çözme: Bir Python fonksiyonu yazın ki bu fonksiyon, kendisine verilen bir aritmetik ifadeyi çözerek sonucunu döndürsün. Örneğin,
"2 + 3 * 5"
ifadesini değerlendirip sonucu 17 olarak döndürmelidir. - Matris Çarpımı ve Zaman Ölçümü: İki matrisi çarpan bir Python fonksiyonu yazın. Ancak, bu fonksiyon, matris çarpımını gerçekleştirirken, her bir adımda geçen süreyi ölçen bir özellik içermelidir.
- Köşegen Elemanların Toplamı: Bir Python fonksiyonu yazın ki bu fonksiyon, bir matrisin köşegen elemanlarının toplamını hesaplasın. Ancak, bu fonksiyon, matrisin birinci köşegeni ve ikinci köşegeni toplamını ayrı ayrı hesaplamalıdır.
- Permutasyon Hesaplama: Verilen bir n ve r sayısı için, n’in r’li permutasyonunu hesaplayan bir Python fonksiyonu yazın. Permutasyon, n elemanlı bir kümeden r elemanlı alt kümelerin sayısını ifade eder.
- Özyinelemeli Sayılar: Python’da bir fonksiyon yazın ki bu fonksiyon, kendisine verilen bir sayının faktöriyelini hesaplasın. Ancak, bu fonksiyon özyinelemeli (recursive) bir şekilde tanımlanmalıdır.
- Mükemmel Sayılar: Bir fonksiyon yazın ki bu fonksiyon, kendisine verilen bir sayının mükemmel bir sayı olup olmadığını kontrol etsin. Mükemmel sayı, kendisi hariç pozitif bölenlerinin toplamı kendisine eşit olan sayıdır.
- Çift Bağlı Liste Dönüşümü: Verilen bir çift bağlı listeyi ters çeviren bir Python fonksiyonu yazın. Bu fonksiyon, çift bağlı listenin hem başından hem de sonundan erişim sağlayabilmelidir.
Her bir soru, daha karmaşık konseptleri içerir ve çözümleri için daha fazla düşünce ve analitik beceri gerektirir. Bu sorular, programlama yeteneklerinizi zorlamak ve farklı yönlerini keşfetmek için harika bir fırsattır. İyi düşünmeler ve başarılar dilerim!
1. Tek Satırlık Fibonacci Fonksiyonu
fib = lambda n: n if n <= 1 else fib(n-1) + fib(n-2) print(fib(5))
2. Sıralı Asal Sayılar
def asal_sayilar(aralik):
return sorted(filter(lambda x: all(x % i != 0 for i in range(2, int(x**0.5) + 1)) and x > 1, aralik))
print(asal_sayilar(range(1, 20)))
3. Palindrom Kontrol Fonksiyonu
palindrom_kontrol = lambda s: s == s[::-1] print(palindrom_kontrol("radar"))
4. Aritmetik İfade Çözme
cozum = lambda ifade: eval(ifade) print(cozum("2 + 3 * 5"))
5. Matris Çarpımı ve Zaman Ölçümü
import numpy as np
import time
def matris_carpimi(matris1, matris2):
start_time = time.time()
result = np.dot(matris1, matris2)
print("Matris Çarpımı Süresi: %s saniye" % (time.time() - start_time))
return result
matris1 = np.random.rand(100, 100)
matris2 = np.random.rand(100, 100)
print(matris_carpimi(matris1, matris2))
6. Köşegen Elemanların Toplamı
def kosegen_toplami(matris):
return sum(matris[i][i] for i in range(len(matris))) + sum(matris[i][len(matris)-1-i] for i in range(len(matris)))
matris = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(kosegen_toplami(matris))
7. Permutasyon Hesaplama
import math
permutasyon_hesapla = lambda n, r: math.factorial(n) / math.factorial(n - r)
print(permutasyon_hesapla(5, 2))
8. Özyinelemeli Sayılar
faktoriyel = lambda n: 1 if n == 0 else n * faktoriyel(n-1)
print(faktoriyel(5))
9. Mükemmel Sayılar
def mukemmel_sayi_kontrolu(sayi):
bolenler = [i for i in range(1, sayi) if sayi % i == 0]
return sum(bolenler) == sayi
print(mukemmel_sayi_kontrolu(28))
10. Çift Bağlı Liste Dönüşümü
class Node:
def __init__(self, veri):
self.veri = veri
self.onceki = None
self.sonraki = None
def liste_ters_cevir(head):
current = head
while current:
current.onceki, current.sonraki = current.sonraki, current.onceki
head = current
current = current.onceki
return head
# Test için örnek bir çift bağlı liste oluşturun
head = Node(1)
node2 = Node(2)
node3 = Node(3)
head.sonraki = node2
node2.onceki = head
node2.sonraki = node3
node3.onceki = node2
# Ters çevrilen liste
ters_cevrilmis_head = liste_ters_cevir(head)
while ters_cevrilmis_head:
print(ters_cevrilmis_head.veri, end=" ")
ters_cevrilmis_head = ters_cevrilmis_head.sonraki