diff --git a/README.md b/README.md index 83a042c..24172af 100644 --- a/README.md +++ b/README.md @@ -2,35 +2,51 @@ ## 1. Rastgele Sayi Tahmini -1'den 100'e kadar rastgele bir tam sayı seçen bir program yazınız. Programınız kullanıcıdan tahminler istemelidir – eğer kullanıcı yanlış tahmin ederse, tahminin çok yüksek veya çok düşük olduğunu yazdırmalıdır. Kullanıcı doğru tahmin ederse, program kullanıcının doğru cevabı tahmin etmek için ne kadar zaman harcadığını yazdırmalıdır. Kullanıcının geçerli girdi girip girmedigini kontrol etmeniz de gerekmektedir. +1'den 100'e kadar rastgele bir tam sayı seçen bir program yazınız. Programınız +kullanıcıdan tahminler istemelidir – eğer kullanıcı yanlış tahmin ederse, +tahminin çok yüksek veya çok düşük olduğunu yazdırmalıdır. Kullanıcı doğru +tahmin ederse, program kullanıcının doğru cevabı tahmin etmek için ne kadar +zaman harcadığını yazdırmalıdır. Kullanıcının geçerli girdi girip girmedigini +kontrol etmeniz de gerekmektedir. ## 2. Zar Yüzdesi -Zar adlı 6 öğeli bir liste oluşturun. Bu listeyi sıfır değeriyle doldurun. 5000 kez tekrarlayarak 1 ile 6 arasında (tıpkı bir zar gibi) rastgele bir sayı oluşturun. +Zar adlı 6 öğeli bir liste oluşturun. Bu listeyi sıfır değeriyle doldurun. 5000 +kez tekrarlayarak 1 ile 6 arasında (tıpkı bir zar gibi) rastgele bir sayı +oluşturun. -Değer 1 ise, listedeki 0 öğesini 1 artırın, aynısı 2, 3, 4, 5 ve 6 değerleri için de geçerlidir. dice[0] öğesi, 1 değerinin kaç kez oluştuğunu gösterir. Veya genel olarak: zar[x-1], x'in kaç kez atıldığını gösterir. +Değer 1 ise, listedeki 0 öğesini 1 artırın, aynısı 2, 3, 4, 5 ve 6 değerleri +için de geçerlidir. dice[0] öğesi, 1 değerinin kaç kez oluştuğunu gösterir. Veya +genel olarak: zar[x-1], x'in kaç kez atıldığını gösterir. -Tekrarın sonunda, listenin içeriğini 2 ondalık basamakla yüzde olarak yazdırın. Örneğin; "3 değerindeki atışların yüzdesi = %16,28" +Tekrarın sonunda, listenin içeriğini 2 ondalık basamakla yüzde olarak yazdırın. +Örneğin; "3 değerindeki atışların yüzdesi = %16,28" ## 3. Basic Import -my_dice.py adlı bir Python modülü oluşturun ve 2. soruda yazdığınız kodu rollDice(sayı) adlı bir fonksiyona aktarın. +my_dice.py adlı bir Python modülü oluşturun ve 2. soruda yazdığınız kodu +rollDice(sayı) adlı bir fonksiyona aktarın. ### Değişiklikler: Fonksiyon, 5000 defa tekrar yerine, verilen sayı değişkeni kadar tekrar yapar. Listeyi yazdırmak yerine, yüzde listesini döndürür. -Ardından main.py adlı yeni bir modül oluşturun. "Tekrar numarasını girin:" yazisi ile kullanıcıdan bir girdi alin. Ardından bu kullanıcı girişi ile rollDice yöntemini çağırın. Son olarak, her olasılığı yazdırın. Örneğin. "0 olasılığı 16.20'dir" +Ardından main.py adlı yeni bir modül oluşturun. "Tekrar numarasını girin:" +yazisi ile kullanıcıdan bir girdi alin. Ardından bu kullanıcı girişi ile +rollDice yöntemini çağırın. Son olarak, her olasılığı yazdırın. Örneğin. "0 +olasılığı 16.20'dir" ---------- +--- Daha fazla egzersiz icin Hackerrank problemlerini cozebilirsiniz! -Validating and Parsing Email Addresses: https://www.hackerrank.com/challenges/validating-named-email-addresses/problem +Validating and Parsing Email Addresses: +https://www.hackerrank.com/challenges/validating-named-email-addresses/problem Time Delta: https://www.hackerrank.com/challenges/python-time-delta/problem -Diagonal Difference: https://www.hackerrank.com/challenges/diagonal-difference/problem +Diagonal Difference: +https://www.hackerrank.com/challenges/diagonal-difference/problem Left Rotation: https://www.hackerrank.com/challenges/array-left-rotation/problem diff --git a/__pycache__/my_dice.cpython-310.pyc b/__pycache__/my_dice.cpython-310.pyc new file mode 100644 index 0000000..c564f85 Binary files /dev/null and b/__pycache__/my_dice.cpython-310.pyc differ diff --git a/main.py b/main.py new file mode 100644 index 0000000..931701e --- /dev/null +++ b/main.py @@ -0,0 +1,5 @@ +# Ardından main.py adlı yeni bir modül oluşturun. "Tekrar numarasını girin:" +# yazisi ile kullanıcıdan bir girdi alin. +import my_dice +kullanici = int(input("Tekrar numarasini girin: ")) +my_dice.rollDice(kullanici) diff --git a/my_dice.py b/my_dice.py new file mode 100644 index 0000000..4912fdf --- /dev/null +++ b/my_dice.py @@ -0,0 +1,45 @@ +def rollDice(arg): + import random + + zar = [0, 0, 0, 0, 0, 0] + sayi = [] + for i in range(arg): + sayiSec = random.randint(1, 6) + sayi.append(sayiSec) + sonuc = random.choice(sayi) + # sayi.append(sonuc) + # Asagidaki if statementlarin kisa yazimi bu sekildedir: + zar[sayiSec-1] += 1 + # uzun hali... + # if sonuc == 1: + # zar[0] += 1 + # elif sonuc == 2: + # zar[1] += 1 + # elif sonuc == 3: + # zar[2] += 1 + # elif sonuc == 4: + # zar[3] += 1 + # elif sonuc == 5: + # zar[4] += 1 + # elif sonuc == 6: + # zar[5] += 1 + # else: + # break + print('Son atilan zarin numarasi: ', sonuc) + # print('Her sayidan kac defa atilan zar listesi: ', sayi) + print('Hangi numaradan kac defa atildiginin listesi: ', *zar) + +# Listeyi yazdırmak yerine, yüzde listesini döndürür. + yuzdeSonuc = [] + yuzde = 1 + for i in zar: + sonucYuzdeOlarak = 100 * i / 5000 + sonucYuzdeOlarak = round(sonucYuzdeOlarak, 2) + yuzdeSonuc.append(sonucYuzdeOlarak) + print(f'{yuzde}: {sonucYuzdeOlarak}') + yuzde += 1 + print(yuzdeSonuc) + + +# Fonksiyon, 5000 defa tekrar yerine, verilen sayı değişkeni kadar tekrar yapar. +rollDice(1) diff --git a/vitWeek6.py b/vitWeek6.py new file mode 100644 index 0000000..24e3aba --- /dev/null +++ b/vitWeek6.py @@ -0,0 +1,72 @@ +# # 1. Rastgele Sayi Tahmini + +# # 1'den 100'e kadar rastgele bir tam sayi seçen bir program yaziniz. Programiniz kullanicidan tahminler istemelidir – +# # Eğer kullanici yanliş tahmin ederse, tahminin çok yüksek veya çok düşük olduğunu yazdirmalidir. +# # Kullanicinin geçerli girdi girip girmedigini kontrol etmeniz de gerekmektedir. +# # Kullanici doğru tahmin ederse, program kullanicinin doğru cevabi tahmin etmek için ne kadar zaman harcadiğini yazdirmalidir. + +# import random # random ile rastgele sayi uretebiliyoruz +# import time # time fonksiyonu ile zaman hesaplamasi yapacagiz + +# # programa baslangici icin sayac saymaya basliyor +# baslangic = time.time() + +# # rastgele sayi sistem tarafindan uretiliyor +# sayiUret = random.randint(1, 100) + +# # tahmini tutmasi icin degisken atiyoruz ve +# # en sonra bulmak icin hangi sayilari girmisiz gostemesi icin bos liste tutuyoruz +# tahmin = 0 +# liste = [] + +# # donguye basliyoruz ki surekli soru sormaya devam etsin +# while True: +# # try ve exception ile hata verirse istedigimiz gibi bir cikti vermesini sagliyoruz +# try: +# # kullanicidan tahminini aliyoruz +# tahmin = int(input( +# 'Rastgele uretilen sayiyi bulmak icin Lutfen 1 den 100 e kadar bir sayi giriniz: ')) +# # tahminini bos listeye surekli olarak ekliyoruz +# liste.append(tahmin) +# # if statement ile belirtilen araliklarda tahmin yapmasini ve kucuk buyuk yonlendirmesini yapiyoruz +# if tahmin < 1 or tahmin > 100: +# print( +# 'Hatali bir giris yaptiniz. Lutfen 1 ile 100 arasinda bir deger giriniz!!! ❌') +# elif sayiUret == tahmin: +# print( +# f'Rastgele uretilen sayi: {sayiUret}, sizin tahmininiz {tahmin}. Tebrikler kazandiniz 🎉🎈✨') +# break +# elif sayiUret > tahmin: +# print( +# f"Rastgele uretilen sayi sizin tahmininiz {tahmin}'den BUYUK, lutfen daha BUYUK 👆 bir sayi giriniz: ") +# else: +# print( +# f"Rastgele uretilen sayi sizin tahmininiz {tahmin}'den KUCUK, lutfen daha KUCUK 👇 bir sayi giriniz: ") +# except ValueError: +# print('Hatali bir giris yaptiniz. Lutfen 1 den 100 kadar bir sayi giriniz') + +# # bitis ile programa baslarken baslayan sayaci durduruyoruz +# bitis = time.time() +# # sonuc saniyeyi hesaplayip yaklsik bir sn icin round ile yuvarliyoruz +# yuvarla = round(bitis - baslangic) +# # sonuclari ekrana yazdiriyoruz +# print(f'Yaklasik olarak {yuvarla} sn de buldunuz') +# print(f'Tum sectiginiz sayilarin listesi: {liste}') + +################################################################ + +# 2. Zar Yüzdesi + +# Zar adlı 6 öğeli bir liste oluşturun. Bu listeyi sıfır değeriyle doldurun. 5000 +# kez tekrarlayarak 1 ile 6 arasında (tıpkı bir zar gibi) rastgele bir sayı oluşturun. + +# Değer 1 ise, listedeki 0 öğesini 1 artırın, aynısı 2, 3, 4, 5 ve 6 değerleri +# için de geçerlidir. dice[0] öğesi, 1 değerinin kaç kez oluştuğunu gösterir. Veya +# genel olarak: zar[x-1], x'in kaç kez atıldığını gösterir. + +# Tekrarın sonunda, listenin içeriğini 2 ondalık basamakla yüzde olarak yazdırın. +# Örneğin; "3 değerindeki atışların yüzdesi = %16,28" +from my_dice import rollDice + +yuzdeSonuc = rollDice() +rollDice()