Kodu çalıştırırken hata alıyorum python

laz123123

Üye
8 Ocak 2017
140
2
Şimdi sorunum şöyle, normalde böyle örnekler yapmayı severim, bu sefer taş kağıt makas örneğini yaptım fakat çalıştırınca input edeceğimiz kısım gelince, ne yazarsak yazalım donuyor kalıyor. Aşağıda görselide ekledim yardımcı olursanız çok teşekkür ederim sağ olun şimdiden.

Ekran-Al-nt-s.png


Kod:
import random
options = ["taş","kağıt","makas"]
Rock = options[0]
paper = options[1]
scissors = options[2]

user_selection = """

If you selection rock; Rock
If you selection paper; paper
IF you selection scissors; scissors

exit programs press in "x"

"""
selection = input(user_selection)
machine_select = random.choice(options)

while True:
    if selection==Rock: 
        if machine_select==Rock:
            print(f"Selection computer {Rock}, You selection {Rock}, Result : Draw, try again")

        elif machine_select==paper:
            print(f"Selection computer {paper}, You selection {Rock}, Result : You win!..., felicitate..")

        else:
            print(f"Selection computer: {scissors}, You selection {Rock}, Result = You Lost :(,try again :)")

    if selection==paper:
        if machine_select==paper:
            print(f"Select the computer {paper}, You selection {paper}, Result : Draw, try again.")   

        elif machine_select==Rock:
            print(f"Select the computer {Rock}, You selection {paper}, Result : You Win!..., felicitate..")

        else:
            print(f"Select the computer {scissors}, You selection {paper}, Result : You Lost :(, try again :)")

    if selection==scissors:
        if machine_select==scissors:
            print(f"Select the computer {scissors}, You selection {scissors}, Result : Draw, try again")

        elif machine_select==paper:
            print(f"Select the computer {paper}, You selection {scissors}, Result : You Win!..., felicitate..")

        else:
            print(f"Select the computer {Rock}, You selection {scissors}, Result : You Lost :(, try again :)")

        if selection=="x":
            print("Exit Program...Loading...")
            break
 
Moderatör tarafında düzenlendi:

ZuL-RaA

Kadim Üye
9 Ara 2017
5,550
837
Semerkant
Merhabalar,

Öncelikle oyunu ingilizce yapıp şıkları türkçe yapmak mantıklı değil. O şekilde giriş yapınca yani taş,kağıt veya makasa demeyince bugta kalıyor.

if selection=="x": kodu bir tab içerde kalmış. X desekte çalışmamasının nedeni bu.

Ayrıca her şeyi doğru girdiğimizde kısır döngüye giriyor. While durmuyor. Ben break ile sonlandırdım ama siz bu kodu While True içine alırsanız her seferinde şıkkı sorar.

selection = input(user_selection)
machine_select = random.choice(options)

kod: https://paste.ubuntu.com/p/w3xhctDKjG/
 

laz123123

Üye
8 Ocak 2017
140
2
Merhabalar,

Öncelikle oyunu ingilizce yapıp şıkları türkçe yapmak mantıklı değil. O şekilde giriş yapınca yani taş,kağıt veya makasa demeyince bugta kalıyor.

if selection=="x": kodu bir tab içerde kalmış. X desekte çalışmamasının nedeni bu.

Ayrıca her şeyi doğru girdiğimizde kısır döngüye giriyor. While durmuyor. Ben break ile sonlandırdım ama siz bu kodu While True içine alırsanız her seferinde şıkkı sorar.

selection = input(user_selection)
machine_select = random.choice(options)

kod: https://paste.ubuntu.com/p/w3xhctDKjG/

usta cevap için sağolasın. Neden sürekli while şıkı çeviriyor da if elif else komutlarına geçemiyor bunu anlamadım birde, while a nasıl bir işlem yapmalıyım ki kısır döngüye girmesin yardımcı olursan <3
 

ZuL-RaA

Kadim Üye
9 Ara 2017
5,550
837
Semerkant
usta cevap için sağolasın. Neden sürekli while şıkı çeviriyor da if elif else komutlarına geçemiyor bunu anlamadım birde, while a nasıl bir işlem yapmalıyım ki kısır döngüye girmesin yardımcı olursan <3

Çünkü bir kez kullanıcıdan değeri alıyor. Sonra döngü içinde ona göre işlem yapıyor.
Her işlem sonunda ekrana bir şey yazdırıyor ancak sonra ne döngüden çıkıyor ne de tekrar bir değer alıyor. Aynı şekilde taş kağıt veya makas ı rastgele belirleme kodu da döngü dışında. O da belirli bir şekilde hep aynı şeyi basıyor.

Kullanıcıdan veri almayı da rastgele bir şıkkı seçme kodunu da while içine alırsanız istediğiniz gibi olur.
 

laz123123

Üye
8 Ocak 2017
140
2
Çünkü bir kez kullanıcıdan değeri alıyor. Sonra döngü içinde ona göre işlem yapıyor.
Her işlem sonunda ekrana bir şey yazdırıyor ancak sonra ne döngüden çıkıyor ne de tekrar bir değer alıyor. Aynı şekilde taş kağıt veya makas ı rastgele belirleme kodu da döngü dışında. O da belirli bir şekilde hep aynı şeyi basıyor.

Kullanıcıdan veri almayı da rastgele bir şıkkı seçme kodunu da while içine alırsanız istediğiniz gibi olur.

Kod:
import random

options = ["rock","paper","scissors"]
Rock = options[0]
paper = options[1]
scissors = options[2]

user_selection = """

If you selection rock; Rock
If you selection paper; paper
IF you selection scissors; scissors

exit programs press in "x"
"""
while True:
    selection = input(user_selection)
    machine_select = random.choice(options)
    if selection==Rock: 
        if machine_select==Rock:
            print(f"Selection computer {Rock}, You selection {Rock}, Result : Draw, try again")

        elif machine_select==paper:
            print(f"Selection computer {paper}, You selection {Rock}, Result : You win!..., felicitate..")

        else:
            print(f"Selection computer: {scissors}, You selection {Rock}, Result = You Lost :(,try again :)")

    if selection==paper:
        if machine_select==paper:
            print(f"Select the computer {paper}, You selection {paper}, Result : Draw, try again.")   

        elif machine_select==Rock:
            print(f"Select the computer {Rock}, You selection {paper}, Result : You Win!..., felicitate..")

        else:
            print(f"Select the computer {scissors}, You selection {paper}, Result : You Lost :(, try again :)")

    if selection==scissors:
        if machine_select==scissors:
            print(f"Select the computer {scissors}, You selection {scissors}, Result : Draw, try again")

        elif machine_select==paper:
            print(f"Select the computer {paper}, You selection {scissors}, Result : You Win!..., felicitate..")

        else:
            print(f"Select the computer {Rock}, You selection {scissors}, Result : You Lost :(, try again :)")

    if selection=="x":
        print("Exit___Program___Loading")
        break

bu şekilde yazdırdım ama gene de bana şıkları veriyor sürekli
 

laz123123

Üye
8 Ocak 2017
140
2
Şu an kısır gönüye girmez, sürekli yeniden input olarak normal Döngüye girer. Siz tam olarak ne istiyorsunuz?

benim istediğim; taş kağıt makas oyunu yani. Ben bir seçim yapıcam,bilgisayarda random bir seçim yapıcak, win,draw,lose bunları bana geri yazdırıcak. Böyle bir şey yapmam için kendi yazdığım kod üzerinde nasıl bir değişiklik yapmalıyım ben bakıyorum hala bir hata göremiyorum körüm herhalde
 
Son düzenleme:

ZuL-RaA

Kadim Üye
9 Ara 2017
5,550
837
Semerkant
benim istediğim; taş kağıt makas oyunu yani. Ben bir seçim yapıcam,bilgisayarda random bir seçim yapıcak, win,draw,lose bunları bana geri yazdırıcak. Böyle bir şey yapmam için kendi yazdığım kod üzerinde nasıl bir değişiklik yapmalıyım ben bakıyorum hala bir hata göremiyorum körüm herhalde

Kör değilsiniz çünkü en son ki kodda hata yok. Oyun oldu. Dediğiniz oluyor en sonra ise, tekrardan oyunu başlatıyor eğer bir şkık yerine x derse de oyundan çıkıyor. Kör
 

laz123123

Üye
8 Ocak 2017
140
2
Kör değilsiniz çünkü en son ki kodda hata yok. Oyun oldu. Dediğiniz oluyor en sonra ise, tekrardan oyunu başlatıyor eğer bir şkık yerine x derse de oyundan çıkıyor. Kör

biz aynı kodu mu çalıştırıyoruz ben çalıştırınca sürekli bana input etmem gereken bölüm geliyor ve win,draw,lose bunlardan hiç birini print etmiyor
 
Moderatör tarafında düzenlendi:

ZuL-RaA

Kadim Üye
9 Ara 2017
5,550
837
Semerkant
biz aynı kodu mu çalıştırıyoruz ben çalıştırınca sürekli bana input etmem gereken bölüm geliyor ve win,draw,lose bunlardan hiç birini print etmiyor

Sonradan farkettim ben konu çalışır hale getirmiştim. Doğru hale değil. Büyük küçük harf farkı vs. gibi bir sürü hata vardı bende mobilden yazdım.

https://paste.ubuntu.com/p/tYt5wkxTw6/

Ha bu arada,

taş kağıda yenilir.
 

laz123123

Üye
8 Ocak 2017
140
2
Sonradan farkettim ben konu çalışır hale getirmiştim. Doğru hale değil. Büyük küçük harf farkı vs. gibi bir sürü hata vardı bende mobilden yazdım.

https://paste.ubuntu.com/p/tYt5wkxTw6/

Ha bu arada,

taş kağıda yenilir.


Peki kodun çalışması ve yukarıda kalması ben de hala şıkkın bana geri döndüğünü zannetmem, uğraştığınız için sağ olun <3
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.