大家好,欢迎来到 Crossin的编程教室 !
在编程届,有一个不成文的习惯:在教授/学习一门新语言时,会以输出“Hello World”作为第一个代码实例。
因此,相信很多同学的第一行 Python 代码都是:
代码语言:javascript复制print('Hello World')
不过别小看这一行代码,据我所知,有不少人都不是一次就运行成功的,严重的甚至卡壳到必须求助外援才最终搞定。
正确的程序千篇一律,而出错的代码却各有各的bug,以下列举一些可能踩到的坑:
1. 没加引号
代码语言:javascript复制print(Hello World)
报错:
SyntaxError: invalid syntax
字符串没有加引号,就会被当做变量名来处理,这里相当于在括号中写了两个变量名,既没有定义,也不符合语法。
2. 用了中文标点
代码语言:javascript复制print(“Hello World”)
或者
代码语言:javascript复制print("Hello World")
报错:
SyntaxError: invalid character in identifier
Python中的所有符号都必须是英文半角符号。
3. 引号/括号未关闭
代码语言:javascript复制print("Hello World)
或者
代码语言:javascript复制print("Hello World"
报错:
SyntaxError: EOL while scanning string literal
引号、括号都必须成对出现。这种bug发生时,报错信息常会报在出错代码的下一行,增加了调试的难度。
4. 引号不匹配
代码语言:javascript复制print("Hello World')
报错:
SyntaxError: EOL while scanning string literal
虽然在Python中单引号、双引号都可以表示字符串,但不可混用。否则等同于没有关闭引号。
5. 大小写混淆
代码语言:javascript复制Print("Hello World")
报错:
NameError: name 'Print' is not defined
Python是大小写敏感的语言,语法关键字、变量名、函数名、类名、模块名等等都需要严格按照定义时的大小写输入。
6. 缩进错误
代码语言:javascript复制 print("Hello World")
报错:
IndentationError: unexpected indent
“缩进”在Python中决定着代码的运行逻辑,所以不可以随便在行首增加空格。
7. 版本错误
代码语言:javascript复制print "Hello World"
报错:
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello World")?
这行代码在 Python2 里是可以正常运行的,但到了 Python3 里,print是一个函数,必须加上括号来调用。此时你应该检查一下正在学习的教程,是否已经过时了。
你在写「Hello World」的时候还遇到过什么奇葩的bug?欢迎来留言讨论~