मैंने निम्नलिखित कोड लिखा है और यह चलता है लेकिन मैं लूप के लिए 4 का उपयोग कर रहा हूं और मैं जानना चाहता हूं कि इस कोड को लिखने का कोई और प्रभावी तरीका है या नहीं।
n = int(input('Please Enter the highest number \n'))
col = 2*n-1
for i in range(1, n+1):
for j in range(1, col+1):
if j >= i and j <= col-i+1:
print(n-i+1, end=' ')
elif j < i:
print(n+1-j, end=' ')
else:
print(j+1-n, end=' ')
print()
for i in range(n-1, 0, -1):
for j in range(1, col+1):
if j >= i and j <= col - i + 1:
print(n-i+1, end=' ')
elif j < i:
print(n + 1 - j, end=' ')
else:
print(j + 1 - n, end=' ')
print()
2 जवाब
आप केंद्र (di, dj)
के सापेक्ष स्थिति ढूंढ सकते हैं, और फिर उस सेल के लिए लेबल के रूप में इसके सबसे बड़े घटक का उपयोग कर सकते हैं:
n = int(input('Please Enter the highest number \n'))
col = 2 * n
for i in range(1, col):
row = []
for j in range(1, col):
di, dj = abs(n-i), abs(n-j)
row.append(max(di,dj) + 1)
print(' '.join(str(x) for x in row))
- चूंकि आंतरिक लूप समान हैं, आप दो बाहरी लूपों को एक में मिला सकते हैं, उदा। दो श्रेणियों का पीछा करके:
from itertools import chain
...
for i in chain(range(1, n + 1), range(n - 1, 0, -1)):
...
- इस तरह की स्थिति को सरल बनाया जा सकता है:
i <= j <= col - i + 1
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।