में रिकर्सिव फ़ंक्शंस के अंदर प्रिंट() का उपयोग करके मैं ल्यूजोबिर पेर्कोविक द्वारा पाइथन का उपयोग करके कंप्यूटिंग का परिचय करने के लिए पुस्तक का अनुसरण कर रहा हूं, और मुझे पुस्तक के रिकर्सन अनुभाग में उदाहरणों में से एक के साथ परेशानी हो रही है। कोड इस प्रकार है:पायथन 3
def pattern(n):
'prints the nth pattern'
if n == 0: # base case
print(0, end=' ')
else: #recursive step: n > 0
pattern(n-1) # print n-1st pattern
print(n, end=' ') # print n
pattern(n-1) # print n-1st pattern
के लिए, कहते हैं, pattern(1)
, उत्पादन 0 1 0
होना चाहिए, और यह क्षैतिज रूप से प्रदर्शित किया जाना चाहिए। फ़ंक्शन pattern(1)
पर कॉल करते समय, कुछ भी प्रिंट नहीं करता है। लेकिन अगर इसके बाद बिना किसी तर्क के प्रिंट स्टेटमेंट का पालन किया जाता है, तो परिणाम प्रदर्शित होते हैं।
>>>pattern(1)
>>>print()
0 1 0
अगर मैं पुनरावर्ती क्रिया के अंदर print()
कार्यों का end
तर्क निकालने के लिए, मैं सही आउटपुट प्राप्त (यद्यपि यह खड़ी प्रदर्शित करता है):
>>> pattern(1)
0
1
0
यह बनाता है मुझे लगता है कि पुनरावर्ती कोड में ही सही है (प्लस मैंने पुष्टि की है कि यह पुस्तक की वेबसाइट द्वारा प्रदान किए गए स्रोत के साथ था, और इरेटा शीट के साथ)। मुझे यकीन नहीं है, हालांकि, print
कथन आउटपुट को प्रिंट नहीं कर रहा है क्योंकि कार्य end
पैरामीटर शामिल है। किसी भी तरह की सहायता का स्वागत किया जाएगा।
यह समस्या आईडीई विशिष्ट हो सकता है:
इन दो कार्यक्रमों में अंतर देखें। ऐसा लगता है कि उबंटू/gnome-terminal (या IPython + emacs में) पर पायथन 3 रन का उपयोग नहीं होता है। – unutbu