Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 25 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Binary file added __pycache__/my_dice.cpython-310.pyc
Binary file not shown.
5 changes: 5 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -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)
45 changes: 45 additions & 0 deletions my_dice.py
Original file line number Diff line number Diff line change
@@ -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)
72 changes: 72 additions & 0 deletions vitWeek6.py
Original file line number Diff line number Diff line change
@@ -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()