Adların gizlendiği akış
Güvenlik · Zorluk 3/5 · Python · 26 satırKöken: Gerçek proje (anonim)
Görev
Yapay zekâdan istenen
Topluluk sitesinin herkese açık GET /feed uç noktası için yayımlanmış gönderileri en yeniden eskiye döndüren kodu yaz. Gönderiler üyelerin adını başlıkta ve metinde geçirebilir. Site ayarı hide_names açıkken akışta hiçbir üyenin adı görünmemeli: yazar "A member" olarak gösterilir ve gönderinin anonymous sürümü (adsız yazılmış title ve body) kullanılır. anonymous isteğe bağlı bir alandır; eski gönderilerde var, yenilerde olmayabilir.
Teslim notu
Yapay zekâ kodu teslim ederken şunu yazdı:
“Gizlilik kipi hazır: adlar gizliyken yazar "A member" olarak gösteriliyor ve gönderinin adsız sürümü kullanılıyor. Adsız sürümü olmayan kayıtlar da hata vermeden çalışıyor.”
Yapay zekânın yazdığı kod
Python26 satırHatalı bulduğun satırları işaretle; her işarete önem seç ve nedenini bir cümleyle yaz.
Satıra tıkla ya da dokun. Klavyede satıra gidip Enter'a bas.
Önem nasıl seçilir
- KritikVeri kaybı, güvenlik açığı ya da para kaybı
- ÖnemliGörevin istediği bir durumda kullanıcı yanlış sonuç alır
- KüçükGörevin dışında kalan nadir bir uç durum ya da okunurluk
Test konusunda önem, testin yakalamadığı hatalı uygulamanın etkisine göre belirlenir.
Gerekçe puanlanmaz; sonuçta örnek cevapla karşılaştırırsın.
HIDDEN_AUTHOR = "A member"def public_post(post: dict, hide_names: bool) -> dict: """Shape one post for the public feed.""" if not hide_names: return { "id": post["id"], "author": post["author"], "title": post["title"], "body": post["body"], } anonymous = post.get("anonymous") or {} return { "id": post["id"], "author": HIDDEN_AUTHOR, "title": anonymous.get("title", post["title"]), "body": anonymous.get("body", post["body"]), }def public_feed(posts: list, hide_names: bool, limit: int = 20) -> list: """GET /feed: the newest published posts, newest first.""" published = [post for post in posts if post["published"]] published.sort(key=lambda post: post["published_at"], reverse=True) return [public_post(post, hide_names) for post in published[:limit]]Kanıtlayan test
Doğru seçenek, bu kodda başarısız olan, yani hatayı ortaya çıkaran testtir.
Gönderince sayaca yedi bilgi gider; gerekçe metnin cihazında kalır. Veriler