मैं पाइथन के लिए एक नौसिखिया हूं और खुद को सूची की समझ पढ़ रहा हूं। मैं लगभग सभी फॉर-लूप कोड के साथ अच्छा प्रदर्शन कर रहा हूं, मैं सूची समझने के लिए अनुवाद कर रहा हूं, लेकिन जो मैंने सोचा था वह काफी सरल लूप था।पाइथन फॉर-लूप समझने के लिए
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)])
अब तक मैं निम्नलिखित में बदलाव की कोशिश कर रहा है, लेकिन यह जैसे कि " 'int' वस्तु unsubscriptable है" और "का समर्थन नहीं संकार्य प्रकार (ओं) + सूचियों के उपयोग से संबंधित सभी हो रही त्रुटियों है: 'int' और '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))
उद्देश्य मूल रूप से पैरामीटर सिम पारित कर दिया() लेने के लिए और इसके बारे में लंबाई से अधिक पुनरावृति 0.9 और 1.8 के बीच हालत से पाया केवल उन मूल्यों के लिए 1 से incrementing जबकि सच है। मैं उस स्थिति के लिए प्रत्येक एन रैंडम की जांच करने की कोशिश कर रहा हूं। फिर केवल उन लोगों को योग करें जो सत्य हैं।
वैसे, इस सवाल का जवाब 0.2 चारों ओर बाहर काम करना चाहिए - आप यह सिर्फ लगता है 0.9 और 1.8 के बीच फिट करने के लिए लगभग 1.5 जा रहा है एक ही तरीका है की जाँच करना चाहते हैं।
मैं के रूप में मैं सीख रहा हूँ आपके धैर्य की सराहना।
धन्यवाद मार्टिजन लेकिन ऐसा लगता है कि यह सभी संख्याओं को सारांशित नहीं किया जा रहा है। यह 0.00 परिणाम लौट रहा है। मैंने 0.9
stackuser
@ स्टैक्यूसर: आह, ऐसा इसलिए है क्योंकि यह पूर्णांक विभाजन है; इसे इसके बजाय फ्लोट विभाजन बनाने के लिए सही किया गया। –
@ स्टैक्यूसर: मेरा संस्करण आज़माएं .. 'i'' y' में कोई अनुक्रमणिका नहीं है, यह * 'y' से एक मान * है। कोड 'y' से अधिक हो जाता है, न कि' रेंज() '.. –