Herkese sağlıklı günler dilerim. Aşağıdaki kod ile kulanıcının anne kızlık soyadı bilgisine dayanarak sisteme giriş yapmasını sağladım fakat random.sample fonksiyonundan dönen değerleri sıralamayı başaramadım yani her şekilde önce küçük rakamı sonra büyük rakamı
sorsun istiyorum. Yani atıyorum 10 harfden oluşan bir soyad da fonksiyondan dönen değerler
7 ve 3 ise önce 3.harfi sorsun sonra 7.harfi bunu nasıl yapabilirim. Teşekkürler. Bu arada yazdığım kodlar bana uzun geldi daha kısa kod ile aynı işi yapmak mümkün mü. Yardımlarınız için tekrar teşekkür ederim.
import random
ak_soyad = []
girilen_soyad = input("Anne kızlık soyadını giriniz : " )
girilen_soyad = girilen_soyad.upper()
soyad_Uzunluk = len(girilen_soyad)
for i in range(0, soyad_Uzunluk):
ak_soyad.append(i)
ak_soyad = random.sample(ak_soyad, 2)
harf_1 = input(f"Anne kızlık soyadınızın {ak_soyad[0]} hafini giriniz : ")
harf_2 = input(f"Anne kızlık soyadınızın {ak_soyad[1]} hafini giriniz : ")
harf_1 = harf_1.upper()
harf_2 = harf_2.upper()
if harf_1 == girilen_soyad[ak_soyad[0]] and harf_2 == girilen_soyad[ak_soyad[1]]:
print("Padişahım Çok Yaşa")
else:
print("Kral Çıplak")
import random
girilen_soyad = input("Anne kızlık soyadını giriniz : " ).upper()
ak_soyad=random.sample([i for i in range(1, len(girilen_soyad)+1)], 2)
ak_soyad.sort()
harf_1 = input(f"Anne kızlık soyadınızın {ak_soyad[0]} hafini giriniz : ").upper()
harf_2 = input(f"Anne kızlık soyadınızın {#ak_soyad[1]} hafini giriniz : ").upper()
[print("Padişahım Çok Yaşa") if harf_1 == girilen_soyad[ak_soyad[0]-1] and harf_2 == girilen_soyad[ak_soyad[1]-1] else print("Kral Çıplak")]
Daha da kısa yazılabilir ama marifet değil. ‘Önemli olan boyu değil, işlevi’ gibi düşün…
Sen anlayarak, öğrenerek yaz; zaten zaman geçtikçe bazı şeyleri kısaltarak yazmaya başlarsın.
yilmaz’ın 1.harfi y, 4.harfi m değil mi?
O zaman neden hatalı kabul ediyor, çünkü saymaya 0’dan başlıyor 1’den değil. Yani y:0.harf, i:1.harf vs… ama y’nin 1.harf, i’nin 2.harf olması lazım, değil mi?
Bu durumu girilen_soyad[ak_soyad[0]-1] ve girilen_soyad[ak_soyad[1]-1] diye düzeltebilirsin.
Üzerinde çalışmaya devam et, try-except, while döngüsü falan ekle, girdileri dosyaya kaydet, farklı sorular ekle vs… proje ilerledikçe sen de gelişeceksin.
Sn.Dest açıklamalarınız teşekkür ederim. Saymaya sıfırdan başladığını ama kullanıcının bunu bilmek zorunda olmadığını sonradan düşünüp aşağıdaki şekilde düzenlemiştim kodu. Ben ilk kodu çalıştırdığımda bana 2.harfi soruyorsa ben 0 dan başlayıp cevap verdiğim için hata almıyordum. Dediğiniz gibi yapacağım fırsat buldukça netten dersleri izleyip kendime göre bir şeyler yapmaya çalışacağım. Tekrar teşekkürler.