Python'a yeni başlıyorum ve kendimi okuduğumu anladım. Anladığım kadarıyla kodun hemen hemen bütününde iyi bir şekilde çalışıyordum. Anladığım kadarıyla okuduğumu anladım, ama oldukça basit bir döngü olduğunu düşündüğüm şeye çok takıldım.Python kavrayışını listelemek için döngü
n = 10000
def sim(y):
count = 0
for i in range(10000):
if 0.9 <= y[i] <= 1.8:
count += 1
probability = count/10000.0
print("P(a < x <= b) : {0:8.4f}".format(probability))
print ("\t case: \n"),sim([0.25 if random() < 0.8 else 1.5 for r in range(n)])
Şimdiye kadar aşağıdaki varyasyonlarını çalışıyordum ama böyle " 'int' nesne unsubscriptable olduğu" ve "desteklenmeyen işlenen türü (ler) için + olarak listelerin kullanımına ilişkin tüm alma hataları var: 'int' ve 'list' '.
def sim(y):
c4 = sum([y for range(y) in range(len(y)) if 0.9 < y[i] <= 1.8])/10000
print("P(a < x <= b) : {0:8.4f}".format(c4))
amacı temelde (sim iletilen parametre almak) ve 0.9 ve 1.8 arasındaki bir durumda sadece bu değerler için 1 doğru bulundu artan ise bunun uzunluğu boyunca yineleme etmektir. Bu durum için her n rastgele kontrol etmeye çalışıyorum. Sonra sadece doğru olanları topla. Bu arada
, cevap 0.2 çevresinde çalışmalıdır - bunu sadece yaklaşık 1.5 olmak tek yolu 0.9 ve 1.8 arasında uyacak şekilde düşünmek kontrol etmek istiyorsanız. Ben öğreniyorum olarak Ben teşekkür ederiz.
Teşekkür Martijn ama görünmüyor özetlenebilir bütün numaraları almak gibi. 0,00 sonuç döndürüyor. 0.9
stackuser
@stackuser: ah, çünkü bu tamsayı bölümüdür; bunun yerine bölme yapmak için düzeltildi. –
@stackuser: Versiyonumu dene .. '' '' '' ın bir indeksi değil, '' 'den gelen bir değerdir. Kod, '' '' üzerinden değil, '' '' ('' '' '' '' '' '' '' '' '' '' lo '' lo lo lo lo lo lo .. .. –