मैं यह जानना चाहता हूं कि दो नंबर N1 और N2 समान अंक के क्रमपरिवर्तन हैं। उदाहरण के लिए 123
और 321
समान अंक के क्रमपरिवर्तन हैं, जहां 234
और 123
नहीं हैं। मैंने उस समस्या को हल करने के लिए पायथन का उपयोग किया है जिसमें से मैं एक विशेषज्ञ नहीं हूं। मैं Windows 7
पर उपयोग कर रहा हूं। विनिर्देश Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
हैं।पायथन में वैश्विक नाम
अजगर कोड नीचे दिखाया गया है,
def k(n, m):
s1 = n
s2 = m
k = 0
fl = 0
while k < 10 :
arr1[k] = 0
arr2[k] = 0
k = k + 1
while s1 > 0 :
t = s1 % 10
arr1[t] = 1
t = s2 % 10
arr2[t] = 1
s1 = s1/10
s2 = s2/10
k = 0
while k < 10 :
if arr1[k] != arr2[k]:
fl = 1
k = k + 1
return fl
मैं k.py
के रूप में फ़ाइल को बचाया और निम्न आदेश import k
का उपयोग कर आयात किया। लेकिन जब मैंने कोड को k.k(123, 321)
के रूप में निष्पादित करने का प्रयास किया तो मुझे निम्न त्रुटि मिल रही है।
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
k.k(123,321)
File "k.py", line 7, in k
global arr2
NameError: global name 'arr1' is not defined
मैं इस प्रकार सरणियों घोषित करने की कोशिश,
arr1 = []
arr2 = []
मैं भी कोशिश की,
global arr1 = []
global arr2 = []
और
global arr1
global arr2
लेकिन मैं अब भी वही त्रुटि हो रही है । मेरे कोड में क्या गलत है?
मैंने SO में निम्नलिखित उत्तरों की जांच की है लेकिन मैं अपनी समस्या का समाधान नहीं कर सका।
Use of "global" keyword in Python
मैं क्या माना जाता था कि अजगर में आप किसी भी चर घोषित करने के लिए नहीं है, बजाय आप बस उन्हें उपयोग कर सकते हैं। क्या मैं इस धारणा के बारे में गलत हूं?
कोई सुझाव? धन्यवाद।
() str (एन) 'विचार करने के लिए हल कर सकता है चाहता हूँ == अनुसार क्रमबद्ध (एसटीआर (एम)) 'जो –
@ जोन क्लेमेंट्स के लिए थोड़ा आसान है: सरल समाधान के लिए धन्यवाद :) – Deepu