Rastgele karıştırılan listeden ilk öğenin ne olduğuna dayalı olarak bir değeri (1) basan basit, arbritrary bir işlev oluşturdum.Python: Basit bir işlev içinde beklenmeyen yazdırma değerleri
Aşağıdaki koda bakıyorum: Bir değişken oluşturuyorum ve 1 olarak ayarladım, o zaman küçük bir liste oluşturuyorum (1,2,3) ve sonra listeyi karıştırıyorum. Eğer bu listenin ilk öğesi (shuffle'dan sonra) 1 veya 2 ise, bu durumda 'doğru' değerini yazınız, eğer listenin ilk elemanı 3 ise, '0'a' ayarlayınız. daha sonra işlevi tekrar çalıştırın. If ifadesinden görebildiğiniz gibi, 'value' değeri 0 olarak ayarlandığında, herhangi bir baskı gerçekleşmeden önce fonksiyonun tekrar çalıştırıldığından (sandalye()) bunun basılmasını beklemiyorum.
Bunu çalıştırdıktan sonra, 1'in 5 değerini içeren bir çıktı bulması bekleniyor. Sorun şu ki, yazdırılan 0 değeri görüyorum. Bu çok basit bir işlev gibi görünüyor ve bunun neden olduğunu görmediğim için biraz aptal hissediyorum. Herhangi bir fikir?
def chair():
correct = 1
a = [1,2,3]
random.shuffle(a)
if a[0] == 3:
correct = 0
chair() #run function again without printing
print correct
for i in range(5):
chair()
Mükemmel. Bu küçük değişim tam ihtiyacım olan şeydi. Teşekkür ederim. – Steve