0

我通过观看一系列教程来学习 python 3,
在其中一个关于可选函数参数 ( *args) 的视频中,讲师使用 for 循环打印传递给函数的可选参数(元组)。

当我尝试运行讲师的脚本时,出现错误:


导师脚本:

def test(a,b,c,*args):  
    print (a,b,c)  
for n in args:  
    print(n, end=' ')  

test('aa','bb','cc',1,2,3,4)  

输出:

C:\Python33\python.exe C:/untitled/0506.py  
Traceback (most recent call last):  
  File "C:/untitled/0506.py", line 4, in <module>  
    for n in args: print(n, end=' ')  
NameError: name 'args' is not defined  

Process finished with exit code 1  

def test(a,b,c,*args):  
    print (a,b,c)  
    print (args)  

test('aa','bb','cc',1,2,3,4)  

输出:

aa bb cc  
(1, 2, 3, 4)  
Process finished with exit code 0  

是什么导致了错误?
PS:我使用的是 Python 3.3.0。

4

1 回答 1

2

你的缩进错误:

def test(a,b,c,*args):  
    print (a,b,c)  
    for n in args:  
        print(n, end=' ')  

test('aa','bb','cc',1,2,3,4)  

缩进在 Python 中很重要;您的版本在函数之外for n in args:声明了循环,因此它立即运行。由于只是一个局部变量,它没有在函数之外定义,你得到一个.test()argstest()NameError

于 2013-03-25T18:14:02.273 回答