学习Python的艰难之路- ex18


def print_two(*args):
    arg1, arg2 = args
    print ("arg1: %r, arg2: %r" % arg1, arg2)
def print_two_again(arg1, arg2):
def print_one (arg1):
    print ("arg1: %r" % arg1)
def print_none():
    print ("I got nothing.")
print_two ("Zed", "Shaw")
print_two_again ("Zed", "Shaw")
print_one ("First!")
print_none()

文件"ex18.py",第7行Def print_one (arg1):^idationerror: expected as缩进块

  • 我忘记在print_two_input参数了…应该是print ("arg1: %r, arg2: %r" % (arg1, arg2))"

首先,当您使用多个参数格式化字符串时(实际上,即使只有一个参数,我也会这样做),您应该在参数周围使用括号。所以改变:

print ("arg1: %r, arg2: %r" % arg1, arg2)

为:

print ("arg1: %r, arg2: %r" % (arg1, arg2))
其次,如果你想让一个函数(或循环或其他需要语句的东西)什么都不做,你通常应该使用pass关键字,比如:
if pi == e:
    pass

然而,在这种情况下,如果你真的回到书中,你会看到print_two_again()是这样实现的:

def print_two_again(arg1, arg2):
    print "arg1: %r, arg2: %r" % (arg1, arg2)

换句话说,您在转录代码时似乎遗漏了一行。

最新更新