Testleriyle Birlikte Temiz Python Fonksiyonu Yazdırma

İhtiyacınızı ve örnek girdi-çıktıları verin; tip ipuçlu, belgelenmiş, uç durumları ele alan bir Python fonksiyonunu pytest testleri ve karmaşıklık analiziyle birlikte alın.

YZ Admin Güncellendi: 26 Eylül 2026 0 yorum

Prompt

Sen okunabilir, test edilmiş ve üretim kalitesinde Python kodu yazan kıdemli bir geliştiricisin. Fonksiyonun yapması gereken: [GOREV] Örnek girdi ve beklenen çıktılar: [ORNEKLER] Kısıtlar (Python sürümü, kullanılabilir kütüphaneler, performans beklentisi): [KISITLAR] Başlamadan önce: Belirsiz bir davranış varsa (boş girdi, geçersiz tip, büyük veri) varsayım yapmak yerine en fazla 3 kısa soru sor ve yanıtımı bekle. Çıktı: 1. Fonksiyon: - Tip ipuçları ve açıklayıcı bir docstring (amaç, parametreler, dönüş değeri, fırlatılan hatalar, örnek). - Anlamlı değişken adları; gereksiz karmaşıklık yok. - Uç durumlar: Boş girdi, None, yanlış tip, sınır değerleri. 2. pytest testleri: Normal durumlar, uç durumlar ve hata durumları için en az 6 test; parametrize kullan. 3. Karmaşıklık: Zaman ve bellek karmaşıklığı, kısa gerekçesiyle. 4. Alternatif: Daha kısa veya daha hızlı bir yaklaşım varsa ve ne zaman tercih edilmesi gerektiği. 5. Çalıştırma: Testleri nasıl çalıştıracağım (komut). Kurallar: Dış kütüphane gerekmiyorsa kullanma. Kodu tek parça hâlinde, kopyalanabilir ver.

Doldurulacak alanlar 3

[GOREV]
Fonksiyonun yapacağı iş Örn. Türkiye telefon numaralarını farklı yazımlardan (+90, 0, boşluklu, tireli) tek biçime (+905XXXXXXXXX) dönüştürmek
[ORNEKLER]
Örnek girdi ve çıktılar Örn. "0532 123 45 67" → "+905321234567", "532-123-4567" → "+905321234567", "12345" → ValueError
[KISITLAR]
Teknik kısıtlar Örn. Python 3.11, sadece standart kütüphane

Örnek çıktı

```python
import re

def normalize_tr_phone(raw: str) -> str:
"""Türkiye cep telefonu numarasını +905XXXXXXXXX biçimine dönüştürür.

Args:
raw: Kullanıcının girdiği numara ("0532 123 45 67", "+90 532...").

Returns:
E.164 biçiminde numara, ör. "+905321234567".

Raises:
ValueError: Numara geçerli bir Türkiye cep telefonu değilse.
"""
if not isinstance(raw, str) or not raw.strip():
raise ValueError("Numara boş olamaz.")
digits = re.sub(r"\D", "", raw)
...
```

Testler
```python
@pytest.mark.parametrize("raw, expected", [
("0532 123 45 67", "+905321234567"),
("+90 (532) 123-45-67", "+905321234567"),
...
])
def test_valid_numbers(raw, expected): ...
```

Karmaşıklık: O(n) zaman, O(n) bellek (n: girdi uzunluğu).
Çalıştırma: pytest -q
ChatGPT'de Aç
Reklam
BaşlangıçÖğrenci

Topluluk denemeleri (0)

Bu promptla üretilen görseller. Siz de denediyseniz sonucunuzu paylaşın; editör onayından sonra burada görünür.

Paylaşmak için giriş yap

Henüz paylaşılan deneme yok. İlk sonucu siz paylaşın.

Yorumlar (0)

Henüz yorum yok

Promptu denediyseniz deneyiminizi veya geliştirme önerinizi paylaşın.

Yorum yapmak için giriş yap