merhaba python da 1-49 arası 6 sayı üretsin kullanıcıdan 6 sayı istesin. girilen 6 tahminin kaçı doğru ise ekrana sayısını belirten hepsi yanlışsa hiç doğru tahmininiz yok yazan programı nasıl oluşturabilirim yardımcı olabilecek var mı?
import random
rand= random.randint(1, 50)
sayac=0
while True:
number+=1
sayi = int(input("1 ile 50 arasında değer girin , çıkış için 0 a basınız :"))
if (sayi== 0 ):
print("Çıkış yapıldı.")
break
elif sayi < rand:
print("Daha Yüksek Bir Sayı Girin.")
continue
elif sayi > rand:
print("Daha Düşük Bir Sayı Girin.")
continue
else:
print("Rastele seçilen sayı {0}!".format(rand))
print("Tahmin sayınız {0}".format(sayac))
Bunu mesela uyarlarsan isteğine, işini kolaylaştırır gibi geldi.
Kolay gelsin.
Kod alıntıdır:
sayaca ne gerek var bu kodda yani kullanmamışsınız
import random
rand= random.randint(1, 50)
dogru=0
yanlıs=0
while True:
sayi = int(input("1 ile 50 arasında değer girin , çıkış için 0 a basınız :"))
if sayi==0:
break
if sayi==rand:
print("Doğru bildin")
dogru+=1
else:
print("yanlış bildin")
yanlıs+=1
if yanlıs==6:
print("oyun bitti")
print(f"doğru sayınız= {dogru}",f"Yanlış Sayınız= {yanlıs}")
break
else:
continue
benzer kodlar internette mevcut demek istedim. bende alıntılama yaptım … araştırmasına yöneltmek yerine direk cevabın formda yazılması hoş olmuyor. kodlama deneme yanılma olmadan maalesef öğrenilmiyor diye düşünüyorum. kolay gelsin.
Merhaba,
Bahsi geçen programı yaparken ihtiyacınız olan bazı bilgileri size vereyim. Kısa bir algoritma göstereyim ve işin geri kalan araştırma ve geliştrime kısımlarını kendiniz yapın. Takıldığınız takdirde sorularınıza açığım.
- Program rastgele sayı seçmek için
random
modülüne ihtiyaç duyacak. - Rastgele sayıları seçmek için bir sayı listesine ihtiyacınız var. Bunun için
randint()
kullanmanız gerekiyor. - Program 6 farklı sayı seçmesi için bir
for
döngüsü kurmanız lazım. Bu döngü 6 defa çalışacak verandint()
ile oluşturduğunuz liste içerisindenrandom
ile bir sayı seçecek ardından seçtiği sayıyıpc_secilenler
değişkeninde oluşturulan bir liste içerisine.append()
ile ekleyecek. Döngü her çalıştığında seçtiği sayıyırandint()
ile oluşturulan liste içerisinden atacak çünkü aynı sayıyı seçmemesi gerekiyor. - Program sayı seçimini yaptıktan sonra kullanıcıdan 6 farklı sayı girmesini isteyeceğimiz bir
input()
kuracağız. - Kuracağımız bu
input
6 defa çalışacak birwhile
döngüsü içerisinde yer almalı. Döngü her seferinde kullanıcıya seçim yapmasını isteyecek ve her seçim sonrası kullanıcının girdiği değeriuser_secilenler
değişkeninde oluşturulan bir liste içerisine.append()
ile ekleyecek. - Böylelikle
pc_secilenler
veuser_secilenler
şeklinde 2 farklı seçim listemiz tamamlanmış olacak. -
dogru_secim
veyanlis_secim
adında 2 farklı değişken oluşturacaksınız. Bunların değerleri 0 olacak. - Tamamlanan seçim listesinde seçilen elemanları karşılaştıran bir
for
döngüsü kuracaksınız. Kurulan döngüdeuser_secimler
listesinden bir değer alıp bu değeripc_secimler
içerisinde karşılığı var mı diye kontrol edeceksiniz. Eğer var isedogru_secim
değişkenine puan eklenecek eğer yok iseyanlis_secim
değişkenine puan eklenecek. - Döngü tamamlandıktan ve sorgulama işlemi bittikten sonra kullanıcıya
pc_secimler
veuser_secimler
de yer alan değerleri yazdıracaksınız. Ardından skorunu yazdıracaksınız ve program tamamlanmış olacak.
Not >> Kullanıcıdan sayı alırken bir kaç estetik dokunuşa ihtiyacınız olacak. Örneğin her sayı istediğinde kaçıncı sayı istediğini yazsın. Bu nasıl olacak derseniz, yorumdan sorduğunuz takdirde cevap vereceğim.
Not >> Kullanıcıdan sayı alırken bir koşul durumu sorgulamanız gerekebilir. Programın daha iyi çalışabilmesi için. Bu koşul sorgusu da şu şekilde olacak. Kullanıcı bir değer girdi mi? Eğer değer girilmiş ise bu değer bir integer
değer mi? Eğer integer
değer ise sayıyı ekle eğer integer
değer değilse ve kullanıcı bir değer girmemiş ise hata mesajı ile kullanıcıyı bilgilendir ve tekrardan bir değer girmesini talep et.
Aşırı Derecede Önemli Not >> Eğitim, öğretim hayatınızda karşılaştığınız problemler ve ihtiyaç duyacağınız bilgileri hazır almaktan kaçının. Ödeviniz mi var? Yardım alın. Sınavda mısınız? Yardım alın. Her ne yapıyorsanız sadece yardım alın. Kendi ödevlerinizi veya sınavlarınızı ya da her neyse, bunları kimseye yaptırmayın. Okuduğunuz okulu sizler bitirin, bizler değil. Bir çok gencin hayalini kurduğu ama ulaşamadığı eğitimleri alıyorken bu imkana sahip çıkın ve değer verin. Sözüm meclisten dışarı tamamen bir tavsiyedir.
Üniversiteli gençler neden işsiz? Bununla ilgili de bir yazı yazacağım yakında.
Yukarıda anlattıklarımı uygulayabildiğiniz kadar uygulayın ardından yazdığınız kodları buraya yorum olarak yapın ve birlikte değerlendirip yardım edelim ama asla hazır almayın ve değerli forum üyeleri sizler de her isteneni hazır vermeyin. Etkileşimli olarak birbirimize yardımcı olmamız kişiye balığı değil balık tutmayı öğretmemiz gerekiyor.
Sevgiler.
Dostum eline sağlık çok güzel bir şeye değinmişsin. Kesinlikle sana katılıyorum. Bu arada söylediklerine ufak bir ekleme yapmak istiyorum haddim olmayarak.
Elbette buradan da danışıp fikir almak güzel bir yol ancak öncesinde şunun yapılması çok daha faydalı olacaktır.
-
Bilgisayarınızda Google Chrome kullanmak. Ama bunun bir nedeni var elbet. Google Translate eklentisini kurarak İngilizceniz yetersiz kalsa da bu eklenti yardımıyla yabancı bir sitedeki açıklamayı kısa zamanda anlayabiliriz.
-
karşılaştığınız hata mesajını google üzerinde arattığınızda mutlaka ilk sıralarda stackoverflow sitesinde ilgili soruya yanıt verilmiş olabilir. Bunlar incelenmeli.
-
https://www.tutorialspoint.com/index.htm sitesi yine binlerce konuda eğitim dökümanı sunmakta.
-
Python’dan örnek vermek gerekirse: Python’un resmi sitesinde bir çok geniş bir eğitim dökümanı var. Yine www.w3schools.com’da da…
Bu liste uzayıp gider. Ancak önemli olan şey neyi, nasıl nereden arayacağımızı bilmek.
Uzun vadede zararlı olduğunu düşünüyorum. Programlama öğrenilirken İngilizce de geliştirilmeli. Ki zaten Google translate teknik makaleleri doğru ceviremiyor bence.
Hem fikirim. Elbetteki çeviri birebir değil. İngilizce her koşulda geliştirilmeli bu gerçek. Benim kastım şu: İngilizcem yeterli değil o yüzden o sitelerden bişey anlamıyorum bahanesine sığınanlar için
Amaç bu eklenti ise Brave de bir alternatif.
Ben de bu eklentiyi kelimeleri çevirmek amacıyla kullanıyorum.
Evet, Firefox da aynı şekilde.
import random
print((lambda correct: "hiç doğru tahmininiz yok" if correct == 0 else str(correct))((lambda xs, ys: sum([1 for x in xs if x in ys]))([int(input(f"{i}. sayi: ")) for i in range(1, 7)], random.sample(range(1, 50), 6))))
@aib lambda nasıl yazılır kitabını bekliyoruz. Başlığı da 3 satırda CAD programı yazmak olabilir
Okumakta zorlananlar için:
print(
(
lambda correct:\
"hiç doğru tahmininiz yok"\
if correct == 0 else\
f"{correct} doğru"
)
(
(
lambda xs, ys: sum(
[
1 for x in xs if x in ys
]
)
)
(
[
int(
input(
f"{i}. sayi: "
)
) for i in range(1, 7)
],
__import__("random").sample(range(1, 50), 6)
)
)
)
Bu daha da zor
Hiç yoktan bir, hiyerarşisi var…