मैं पायथन क्रैश कोर्स पुस्तक के माध्यम से काम कर रहा हूं और मुझे नहीं पता कि रैंडम वॉक भाग के साथ किसी समस्या को कैसे ठीक किया जाए। जब मैं कोड चलाता हूं, तो कमांड प्रॉम्प्ट एक "प्रोसेसिंग" मोड में फंस जाता है जिसे मैं तब तक नहीं छोड़ सकता जब तक कि मैं विंडो बंद नहीं करता, अर्थात
पहले तो मैंने सोचा कि शायद मैंने रास्ता बहुत लंबा बना दिया है, लेकिन कोड काम नहीं कर रहा है, भले ही वह सिर्फ 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 उत्तर
आप अपने लूप में कभी भी x_values
या num_points
को अपडेट नहीं करते हैं ताकि आप एक अनंत लूप बना सकें।
मुझे लगता है कि आप RandomWalk कक्षा की अंतिम पंक्तियों पर एक टैब चूक गए हैं
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।