创建与调用函数时的缩进问题

把书上一个关于创建与调用的小程序写到了IDLE新建的文件里,可以运行,但是如果直接写到IDLE上面,就会提示"SyntaxError: invalid syntax",想问一问是为什么呀
原程序如下:
def filterchar(string): 
    '''功能:过滤危险字符(如黑客),并将过滤后的结果输出
     about:要过滤的字符串
     没有返回值
     '''  
  import re
  pattern = r'(黑客)|(抓包)|(监听)|(Trojan)'
  sub = re.sub(pattern, '@_@',string)
  print(sub)
about = '我是一名程序员,喜欢看黑客方面的书,想研究一下Trojan'
filterchar(about) 
但是放到IDLE里面,就会出现如下图的报错:

img

还请各位指教

缩进一定是4个空格

def filterchar(string): 
    '''功能:过滤危险字符(如黑客),并将过滤后的结果输出
     about:要过滤的字符串
     没有返回值
     '''  
    import re
    pattern = r'(黑客)|(抓包)|(监听)|(Trojan)'
    sub = re.sub(pattern, '@_@',string)
    print(sub)
about = '我是一名程序员,喜欢看黑客方面的书,想研究一下Trojan'
filterchar(about)