Python中表的乘法

时间:2014-07-27 17:35:06

标签: python

i = 1

def printM(n):
    while i <= 6:
        print n*i, '\t',
        i = i + 1
    print
while i <= 6:
    printM(i)
    i = i + 1

结果是错误,表示在分配前引用i!有什么问题的线索?

3 个答案:

答案 0 :(得分:0)

i函数中的printM是该函数的本地函数。如果您指的是全局i,则应该声明:

def printM(n):
    global i
    ...

请注意,在函数中使用全局状态不是可维护的模式;将它添加为参数会更好:

def printM(i, n):
   ...

答案 1 :(得分:0)

您需要注意变量本地化。通常在函数/方法中,最好不要使用全局变量。更好的方法是在函数/方法

中使用它作为局部变量的参数

代码示例:

def printM(n):
    i = 0
    while i <= 6:
        print n*i, '\t',
        i += 1
    print

i = 0
while i <= 6:
    printM(i)
    i = i + 1

输出:

0   0   0   0   0   0   0   
0   1   2   3   4   5   6   
0   2   4   6   8   10  12  
0   3   6   9   12  15  18  
0   4   8   12  16  20  24  
0   5   10  15  20  25  30  
0   6   12  18  24  30  36 

答案 2 :(得分:0)

i = 1
def printM(n):
    i = 1 (added this line)
    while i <= 6:
        print n*i, '\t',
        i = i + 1
    print

while i <= 6:
    printM(i)
    i = i + 1

如果您修改这样的代码,您会得到以下结果:

1   2   3   4   5   6   
2   4   6   8   10  12  
3   6   9   12  15  18  
4   8   12  16  20  24  
5   10  15  20  25  30  
6   12  18  24  30  36

我认为这就是你想要的。

你没有在你的功能中分配我。如果你想使用你以后使用的相同的i,你应该使用它作为函数的参数,然后看起来像这样

def printM(n, i):