मैं पायथन क्रैश कोर्स पुस्तक के माध्यम से काम कर रहा हूं और मुझे नहीं पता कि रैंडम वॉक भाग के साथ किसी समस्या को कैसे ठीक किया जाए। जब मैं कोड चलाता हूं, तो कमांड प्रॉम्प्ट एक "प्रोसेसिंग" मोड में फंस जाता है जिसे मैं तब तक नहीं छोड़ सकता जब तक कि मैं विंडो बंद नहीं करता, अर्थात अटक गई इमेज

पहले तो मैंने सोचा कि शायद मैंने रास्ता बहुत लंबा बना दिया है, लेकिन कोड काम नहीं कर रहा है, भले ही वह सिर्फ 5 कदम हो।

यहाँ RandomWalk वर्ग के लिए कोड है:

    from random import choice
    class RandomWalk():
    """A class to generate random walks."""

    def __init__(self,num_points=5):
        """Initialize attributes of a walk"""
        self.num_points = num_points

        #All walks start at (0,0).
        self.x_values = [0]
        self.y_values = [0]

    def fill_walk(self):
        """"Calculate all the points in the walk"""

        #Keep taking steps until the walk reaches the desired length
        while len(self.x_values) < self.num_points:
        #Decide which direction to go and how far to go there
            x_direction = choice([1,-1])
            x_distance = choice([0,1,2,3,4])
            x_step  = x_direction * x_distance

            y_direction = choice([1,-1])
            y_distance = choice([0,1,2,3,4])
            y_step = y_direction * y_distance

        #Reject moves that go nowhere
            if x_step == 0 and y_step == 0:
                continue

        #Calculate the next x and y values
        next_x = self.x_values[-1] + x_step
        next_y = self.y_values[-1] + y_step

        self.x_values.append(next_x)
        self.y_values.append(next_y)

यहाँ रैंडमवॉक चलाने के लिए कोड है:

import matplotlib.pyplot as plt

from random_walk import RandomWalk

#Make a random walk, and plot the points.

rw = RandomWalk(5)
rw.fill_walk()

plt.scatter(rw.x_values, rw.y_values, s=15)
plt(show)

मैं उम्मीद करता हूं कि कोड का परिणाम मैटप्लॉट व्यू होगा जो मुझे यादृच्छिक 5 कदम चलना दिखाता है।

किसी भी मदद के लिए धन्यवाद!

-1
Vinicius Hiroki Moriyama 14 अप्रैल 2020, 23:39

1 उत्तर

सबसे बढ़िया उत्तर

आप अपने लूप में कभी भी x_values या num_points को अपडेट नहीं करते हैं ताकि आप एक अनंत लूप बना सकें।

मुझे लगता है कि आप RandomWalk कक्षा की अंतिम पंक्तियों पर एक टैब चूक गए हैं

0
ToTheMax 14 अप्रैल 2020, 23:42