我想知道两个数字N1和N2是否是相同数字的排列。例如123,and321是相同数字的排列,其中 as234和123not。我使用 Python 来解决我不是专家的问题。我正在IDLE Python GUI使用Windows 7. 规格为Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32。
Python代码如下所示,
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中检查了以下答案,但我无法解决我的问题。
我相信在 Python 中您不必声明任何变量,而是可以简单地使用它们。我对这个假设错了吗?
有什么建议么?谢谢你。