Tekrar hoş geldiniz.
Rastgele oyunla nasıl başa çıktınız?
Çözebildiniz mi?
Burada bir deneyelim.
Şimdi sadece test yığınını kullanacağım, aslında kafa karıştırıcı olmaması için adını değiştirelim.
Adını rastgele değil fidye rastgele oyunu olarak değiştireceğim.
Tamam.
Şimdi burada, her şeyden önce şunu yapabilmek istiyorum.
Neye ihtiyacımız olduğunu düşünelim.
Yani ihtiyacımız olan ilk şey.
Üret.
1'den 10'a kadar bir numara.
Daha sonra yapmamız gereken şey kullanıcıdan bir girdi almak, değil mi?
Ve sonra bir çeşit girdi kontrolü yapmak istiyoruz.
Diyelim ki bu girdinin birden ona kadar bir sayı olduğunu kontrol edin ve sonra.
Kontrol edin.
Eğer sayı doğru tahminse.
Aksi takdirde.
Tekrar sor.
Yani bu, yazabileceğimiz iyi bir program gibi görünüyor.
Peki bunu nasıl yapabiliriz?
İlk görev 1'den 10'a kadar bir sayı üretmektir.
Rastgele kütüphaneyi kesinlikle buradan ve özellikle de kira int'ten almak isteyeceğimi biliyorum.
Gördüğümüz rastgele ithalat kira ipucundan yola çıkarak şunu söyleyebilirim.
Ve burada rakamları oluşturabilirim.
Diyelim ki cevap kira ve olacak.
1'den 10'a kadar.
Yani bu, tahmin etmeye çalışmamız gereken makine tarafından üretilen rastgele sayımız olacak.
Sırada kullanıcıdan girdi almak var.
Peki bunu nasıl yapabiliriz?
Basit, değil mi?
Kullanıcıdan girdi olarak bir tahmin alabiliriz ve istem alırız.
Birden ona kadar bir sayı tahmin edin diyeceğiz.
Pekala, bu iyi görünüyor.
1'den 10'a kadar bir sayı olduğunu kontrol etmeye ne dersiniz?
Şimdi burada biraz kontrol yapmamız gerekecek çünkü kullanıcı tahmin ederken döngüyü devam ettirmek istiyoruz.
Sonsuz bir döngüye sahip olmamak için içinden çıktığımızdan emin olmamız gereken bir while true döngüsü yapacağım.
Ve döngünün ilk kısmında, kullanıcının ne girdiğini kontrol etmek istiyorum.
O yüzden tahmin edersem diyeceğim.
Girdinin bize bir dize vereceğini hemen biliyoruz, bu yüzden önce bunu bir INT'e dönüştürdüğümüzden
emin olmalıyız.
Hadi yapalım şunu.
Ben söyleyeceğim.
Eğer.
Değil.
Tahmin et.
Evet.
Harika.
O zaman bir.
Ve o.
Tahmin daha az.
11.
Yani bizim durumumuzda, burada sıfır yapalım çünkü eğer bir ise, hala iyi olduğundan emin olmak istiyoruz.
Eğer onsa, hala iyidir.
Bu durumda mı?
Aslında doğru konuk olup olmadığını kontrol edebiliriz.
Şimdi.
Bu başarısız olursa ne olur?
Kullanıcı int türüne dönüştürülemeyen bir dize girerse ne olur?
Örneğin, terminalime gidip Python yorumlayıcısını açtığımda ve int dediğimde ve ardından anlamsız
bir şeyler söylediğimde, on tabanlı int için geçersiz değişmez değer hatası alıyorum.
Ne yapmaya çalıştığınız hakkında hiçbir fikrim yok, bu yüzden burada bir değer hatası olup olmadığını kontrol edebiliriz.
Yani söyleyeceğim şey.
Denemek için.
Bu kod parçası.
Ve şimdilik, sadece burada geçeceğiz.
Ve eğer herhangi bir nedenle geçmezse ve değer hatası olup olmadığını kontrol edersek, o zaman yazdıracağım.
Lütfen bir girin.
Bir numara.
Harika.
Yani girdinin 1'den 10'a kadar bir sayı olup olmadığını kontrol ediyoruz.
Şimdilik, sadece bunun çalıştığından emin olmak için şunu yapalım.
Bu döngüden ya da baskıdan çıkalım.
Burada her şey yolunda.
Ve şu anda 1'den 10'a kadar bir sayı girdiğimizi düşünerek bu döngüden çıkın.
Daha iyi görebilmeniz için bunu biraz daha küçültelim.
Al bakalım.
Ve burada sadece devam edeceğiz çünkü doğru yanıtı alana kadar döngüyü sürdüreceğiz.
Yine rendent'i içe aktarıyoruz ve 1'den 10'a kadar rastgele bir sayı üretiyoruz.
Tahmini kullanıcıdan alıyoruz.
Ve sonra girdinin 1'den 10'a kadar bir sayı olup olmadığını kontrol etmek istiyoruz.
Bu yüzden çalıştırmaya devam edeceğim bir döngüm var ve ona sayının 0 ile 11 arasında olup olmadığını soracağım.
Eğer öyleyse, o zaman hepimiz iyiyiz.
Herhangi bir nedenle bir değerleme uzmanı bulursak, o zaman diyeceğiz ki, Hey, lütfen numaramızı girin.
Bunu test edelim.
Ben terminalime gidiyorum.
Ya da aslında, bunu burada çalıştırabiliriz.
Hadi çalıştıralım.
Tamam.
1'den 10'a kadar bir sayı tahmin edin.
Ve ben iyi oluyorum.
Sanırım burada birkaç boşluğa ihtiyacımız var.
Biraz garip görünüyor.
GSA numarası 1'den 10'a kadar diyelim ve biraz boşluk bırakalım.
Şunu tekrar çalıştıralım.
Al bakalım.
Ve aslında, diyelim ki anlamsız bir şey girdiğimde düzeltmemiz gereken bir hata fark ettim.
Aman Tanrım.
Tekrar ediyorum, lütfen numaramızı girin.
Lütfen bir numara girin.
Ve bunu durdurmamız gerekiyor çünkü yok olacak.
Pekala, burada ne oldu?
Bu döngüden çıkamadık.
Devam ettik ve devam etmeye devam ettik.
Duvara.
Ve bir değer hatası almaya devam ettik.
Bu yüzden burada dikkatli olmalısınız.
Devam ettiğimizde hatırlayın.
Kabile bloğuna veya döngüye geri döner ve bunu tekrar deneyecektir.
Ancak biz yeni bir girdi ya da yeni bir girdi istemiyoruz.
Tekrar söylüyorum, bu başarısız olacak.
Ve sonra başka bir değer hatası olur ve bu da başarısız olur.
Başka bir değer hatası meydana gelir.
Bu yüzden tahminde bulunmamız gerekiyor.
İçeride.
Kabile kilidinin hemen içinde.
Şimdi bunu çalıştırırsam.
Pekala, bir sayı tahmin edelim.
Saçma sapan şeyler söyleyelim.
Anladım.
Hey, lütfen bir numara girin.
Tamam, bir numara gireceğiz.
Yapacağız.
Biz gireceğiz.
Sıfıra ne dersin?
Hayır.
Bu işe yaramıyor.
Bana sormaya devam edecek çünkü girdiğimiz sayı 1'e 10'dan daha az.
Ama bu yanlış bir cevap.
Yanlış olup olmadığını kontrol edebiliriz.
Ne var biliyor musun?
Hadi yapalım şunu.
Başka bir şey diyelim.
Hey, Bozo.
Birden ona kadar söyledim.
Eğlenceli olacak.
Pekala, şunu çalıştıralım.
Sıfır yapalım.
Hey, Bozo.
1'den 10'a kadar dedim.
Pekala, beş yapalım.
Hey.
Sanırım 1'den 10'a kadar.
Her şey yolunda.
Tamam.
Şimdi yapacağım şey, tahminin buradaki cevapla eşleşip eşleşmediğine bakmak.
Şimdi, bunu yapmadan önce, burada pasta cazibesi kimliğinin bana nasıl küçük bir ipucu verdiğini görüyorsunuz, Hey, bu basitleştirilmiş
zincir karşılaştırması aslında geliştirilebilir diyen sarı bir çizgi.
Kimliklerin bu kadar güçlü olmasının nedeni budur.
Ve burada aslında bunu basitleştirebilirim.
Sanırım öyle olduğunu söyleyebilirim.
Sıfırdan yüksek.
Ve 11'den az.
O zaman bunu yap ve şuna bak.
Sadece kodumu basitleştiriyorum.
Ve editör bana güzel bir ipucu verdi.
Tamam.
Şuradan geçelim.
Yani baskı demek yerine, her şey yolunda.
Diyelim ki.
Durum bu.
Başka bir koşulumuz olacak ve eğer int.
Tahmin et.
Cevaba eşittir.
Basacağız.
Senin.
A.
Dahiyane.
Ve bundan kurtulacağız.
Şimdi burada bunu nasıl yaptığımıza dikkat edin.
Sanırım birkaç kez.
Belki de bunu yapmanın daha iyi bir yolu sadece burada bir son yapmaktır, böylece kendimizi tekrar etmeyiz ve aynı işlevi tekrar
tekrar çalıştırmayız.
Ve şöyle bir tahminde bulun.
Yani, yine kodumuzu temizliyor, daha çok İngilizce gibi okunmasını sağlıyoruz.
Bu çok güzel.
Ve şimdi bunu çalıştırırsak.
Sayılarını tahmin edin, beş diyelim.
Hayır, bu doğru değil.
Altı tane yapalım.
Peki ya yedi?
Sekiz, dokuz?
Bu adam çetin ceviz.
Bir, iki, üç, dört.
Hadi ama.
On mu?
Vay canına.
Biz kesinlikle dahi değiliz çünkü on kez denedik ama işe yarıyor gibi görünüyor.
Biraz hile yaparak bunu gerçekten düzgün bir şekilde çalıştığımızdan emin olalım.
Aslında buradan çıktı alacağım.
Cevap.
Bu yüzden yazmadan önce cevabın ne olduğuna bakıyorum.
Aslında bunu yapalım.
Tam burada.
Çalıştır'a tıklarsam.
Tamam.
Numaralar için yazarsam.
Tamam.
Şimdi ben bir dahiyim.
İlk deneme.
Tamam, hile yapıyoruz ama işe yarıyor gibi görünüyor.
Bu çok güzel.
Şimdi buradaki son kısım, şimdiye kadar girişi kullandım, ancak bunu bir terminalde çalıştırmak
istediğimi ve aslında ona parametreler verebilmek istediğimi söyledim.
Doğru.
Başlangıç parametresini ve bitiş parametresini ran int olarak veriyoruz, böylece oyunu istediğimiz kadar zorlaştırabiliyoruz.
Yani bu oldukça basit.
Burada ithalat sistemimiz var.
Ve basitçe cis nokta rgv diyoruz.
İlk parametre, hatırlayın, ilki dosya adı olacak ve sonra.
Üçüncü parametre, ona vereceğimiz sayılar olacak.
Şimdi bu dosyayı kullanalım.
Kodu kopyalayalım.
Ve sadece bu örnek için, daha basit olduğu için, sadece sublime text dosyamıza ekleyeceğiz.
Görünüşe göre burada da sistem V yapmamız gerekiyor.
Bunu unutmadığımızdan emin ol.
O zaman bunu da düzeltelim.
İşte böyle.
Bu daha iyi.
Ve bunu çalıştırırsak int değil çünkü vereceğimiz parametrelerin dizelere dönüştürüleceğini
unutmayın.
Bu yüzden bunu bu şekilde bir olaya dönüştürdüğümüzden emin olmamız gerekiyor.
Şimdi, eğer bunu kopyalarsak.
Şunu şuraya koy.
Tekrar çalıştıralım.
Bu yüzden buraya basıyorum çünkü önceki komutumu hatırlıyor.
Bir deneyelim.
Tahmin et bir ya da iki numara.
Bir tanesini seçelim.
Al bakalım.
Ben bir dahiyim ve programımız çalışmıyor.
Tahmin oyunumuz şimdi işe yarıyor.
Çok, çok havalı.
Eğer bu iyi işi aldıysan.
Eğer yapmadıysanız, koduma bir göz atabilir ve umarım nerede yanlış yaptığınızı görebilirsiniz.
Ama buraya kadar iyi iş çıkardın.
Bir sonrakinde görüşürüz.
Güle güle.