Tekrar hoş geldiniz.
Verilerimiz var ama hala biraz kirli.
Yani, gerçekten filtrelemedik.
Ben sadece 100'den fazla oy alan hikayeleri önemsiyorum ve bunları sergilemek için güzel bir yol istiyoruz.
O zaman bunun üzerinde çalışalım.
Bir fonksiyon oluşturmak istiyorum ve buna Create adını vereceğiz.
Custom Hacker News ve bu oluşturulan Custom Hacker News link ve oy alacak.
Ki burada yukarıda var.
Şimdi burada yapacağımız şey, başlangıçta boş olan yeni bir hacker haberleri listesi oluşturmak
olacak.
Ve şimdilik tek yapmak istediğim hacker haberleri listesine geri dönmek.
Ancak bu listeye yalnızca metni eklemek istiyorum, HTML'yi eklemek istemiyorum.
Örneğin, bağlantılar için yalnızca başlığı önemsiyoruz.
Peki bunu nasıl yapabiliriz?
Bazı şeyleri gözden geçirmek istiyoruz.
Yapacağımız şey dört demek ve burada enumerate kullanacağız.
Yani bir dizinimiz ve ardından bir öğemiz olacak.
Ve burada enumerate yapacağız, hatırlayın, enumerate'i daha önce görmüştük, bu da bize bir
indeks verir.
Bağlantıları numaralandıracağız ve neden numaralandırmak istediğimizi birazdan göstereceğim.
Bu yüzden burada her bağlantının başlığını almak istiyorum.
Sadece bunu yaparak Link diyeceğiz.
Dizinin.
Ya da bunu ID X olarak değiştirelim, bu biraz daha hoş.
Bu yüzden biz de
Her bağlantının dizini.
Ve güzel çorbada get text adında bir şey kullanabiliriz.
Ve bu, metni metnin içine alacak.
Ve sadece bu konuya başlamamız için basitçe şunu söyleyeceğim, nokta ekini nasıl kullanabilir ve listeye başlığı
nasıl ekleyebilirsiniz?
Bakalım bunu aradığımda ne olacak.
Özel Hacker Haberleri Oluştur diyeceğim ve bağlantıları ve oyları ileteceğiz.
O zaman bunu kaydedelim.
Oh, ve görünüşe göre burada numaralandırmayı heceleyemiyorum, o yüzden bunu düzeltelim.
EA ile yeni bir hak olmalı.
Tekrar deneyelim.
Tamam, hata yok, ancak bunu ideal olarak yazdırmak istiyoruz.
Yani şöyle diyelim.
Yazdır.
Ve ne alacağımıza bakalım.
Bunu çalıştıracağım.
Tamam.
Şuna bir bak.
Elimizde tüm metinler, bağlantılarımızın başlıkları var.
Bu harika.
Tamam.
Ancak bu başlıklar bir bağlantı olmadan işe yaramaz.
Değil mi?
Ve eğer HTML'deki bir bağlantıyı hatırlarsanız.
H ref dediğimiz şey ile tanımlanır.
Bu H ref niteliği, bir sonraki sayfaya veya bu başlığın sayfasına gitmek için tıklayabileceğimiz bağlantıdır.
Böylece bunu da yakalayabilir ve h ref olarak adlandırabiliriz.
Ve bu eşit olacak.
Bağlantılar.
Dizin.
Ve bu sefer, metni almak istemiyoruz.
Niteliği doğru almak istiyoruz, böylece aslında nokta get diyebiliriz ve sonra h ref'i alabiliriz ve ref olmaması veya bağlantının bozuk
olması durumunda, ikinci parametrede varsayılan bir değer verebiliriz ve ben sadece hiçbiri
diyeceğim.
Böylece şimdi bu hacker haberleri, diyelim ki bu sefer ref'e eklersek eklenir ve bunu çalıştırırım.
Şuna bak.
Sayfadaki tüm bağlantılara sahibiz.
Bu harika.
Ama şimdi unvan ve hakemi nasıl birleştirebiliriz?
Bu oldukça basit olmalı, değil mi?
Sözlük kullanabiliriz.
Böylece listemize başlığı olan bir sözlük ekleyebiliriz, bu da burada sahip olduğumuz başlık olacaktır.
Ve sonra da.
Bağlantı var.
Bu olacak.
Tam şurada.
İşte burada.
Artık başlığı ve bağlantısı olan bir sözlüğümüz olacak.
Yani eğer kaydedersem.
Ve bunu tekrar çalıştır.
Şuna bir bak.
Bağlantısı olan bir sözlüğümüz var.
Ve bir de başlık.
Harika.
Böylece ihtiyacımız olan bilgiyi, bağlantıyı ve metni alırız.
Diğer şeylerin hiçbiri bizim için önemli değil, ama yine de oylarımız var.
Peki bunu nasıl yapabiliriz?
Oylar.
Peki, bir değişken yaratabiliriz ya da sadece bundan ayırt etmek için oy yerine puan diyelim.
Ve puanlar.
Ne yapacağız?
Oyları toplayacağız.
Dizin.
Unutmayın, bunun içinde dönüp duruyoruz ve sadece "metni al" diyeceğiz.
Şimdi metin aldığımızda başlangıçta ne elde ettiğimize bakalım.
Yani burada, sadece yazdıracağım.
Puanlar ve ne alacağımıza bakalım.
Ve şimdilik sadece noktalara odaklanabilmek için baskıyı buradan kaldıracağım.
O yüzden kaydedip kaçacağım.
Tamam.
Bir hata alıyoruz, tüm bu noktaları alıyoruz, ancak liste indeksinin aralık dışında olduğunu söyleyen bir hata alıyorum gibi
görünüyor.
Ve bu, web sitelerini kazırken bazen hata ayıklamak zorunda kalacağınız küçük bir püf noktasıdır.
Ama esasen burada olan şey, Hacker News'in ön sayfasında çok nadir görülen,
hiç oy almamış bir hikaye ve bu özel bir hikaye.
Ama buradakinin hiç oyu yok.
Yani esasen söylediği şey, bunun puanlarını, puanlarını asla yakalayamadım.
Yani teknik olarak oy sayımızdan daha fazla bağlantıya sahibiz.
Yani buradaki son bağlantıya geldiğimizde, oy listesinden bir kişi eksilmiş olacak.
Yani diyecek ki, hey, en sondaki oyları almaya çalışıyorum, ama daha fazla oy yok.
Bu liste bağlantılar listesinden daha kısadır.
Bu yüzden, bu şeyleri aldığımızda yalnızca oy alan hikayelerle ilgilendiğimizden emin olmak için burada hızlı bir kontrol
yapabiliriz.
Ve neyse ki bizim için, bir hikayenin 100 puandan fazla olup olmadığını kontrol etmek istememizin nedeni budur.
Bunu yapmanın yolu, tam buraya bir if ifadesi eklemektir.
Şimdi, if deyimini eklemeden önce, aslında bunu bir sayıya dönüştürmek istiyoruz,
böylece diyebiliriz ki, hey, eğer bir hikaye 100'den fazla puana sahipse, o zaman onu tutmak ve yeni Hacker Haberlerimize eklemek istiyoruz.
Bu yüzden yapmak istediğimiz ilk şey basitçe şunu söylemektir.
Bunu bir int'e dönüştürmek istediğimizi.
Ama aynı zamanda değiştirmek de istiyoruz.
Buradaki noktalar, uzay noktaları hiçbir şeye işaret etmiyor.
Böylece nokta değiştirme yöntemini kullanabilir ve basitçe, hey, uzay noktaları gördüğünüz her zaman, ki burada gördüğümüz şey
budur, diyebiliriz.
Bunu sadece boş bir dize ile değiştirmenizi istiyorum.
Yani bu bizim için bir sayı olan bir dize döndürecek ve ardından bunu bir tamsayıya dönüştürecektir.
Hadi test edelim.
Parantezi burada kapatalım.
Güvenli tuşuna basın ve komut dosyamızı çalıştırın.
Ve işte oldu.
Numaralarımız var.
Bu harika.
Ancak yine de bu hatayı alıyoruz.
Peki burada ne yapabiliriz?