在上次笔记中,已经提前练习了命令行的使用方法,可使用cd 命令进入某一目录。
打开gedit,一字不落输入书中代码
print "Hello World!"
print "Hello Again"
print "I like typing this."
print "This is fun."
print "Yay! Printing."
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'
不管对错,先在命令行中运行一次。
进入源码文件保存的目录后,执行python ex1.py,回车。
可以看到,在界面上显示了你在源码中写与双引号或单引号之间的内容。
现在详细剖析这段代码。
1.print
咋一看,学过C语言的人都有一种似曾相识的感觉,与C语言中的printf()语句类似,作用都是输出内容到界面上。这个作用从print的单词意思(打印)也可以猜出来。
从显示结果看,每个print后都自动换行了。说明print语句自动包含了换行符“\n”,为了测试这个猜测,可以在源码任意一行手动添加一个换行符
print "Hello World!"
print "Hello Again"
print "I like typing this."
print "This is fun."
print "Yay! Printing."
print "I'd much rather you 'not'.\n"
print 'I "said" do not touch this.'
输出如下:
在第6行和第7行之间有一空行,这就是那个手工增加的换行符起的作用。注意"\n"要放在引号里边而不是外边。
print "I'd much rather you 'not'.\n" #正确
print "I'd much rather you 'not'."\n #错误
我们在源码中故意制造点错误出来,将最后一行的末尾的单引号去掉。
print 'I "said" do not touch this. #<---末尾没有单引号,与前一单引号没有形成配对
执行代码,输出如下:
英文看不懂就去查字典。
File "ex1.py", line 7
print 'I "said" do not touch this.
^
SyntaxError: EOL while scanning string literal
这个提示里面主要关注两个地方,一是行号,二是异常原因
上面提示得很明显,第7行(line 7),语法错误(SyntaxError),当扫描字符串时行未正确结束。
EOL(end of line),来自维基百科的解释:
换行(英语:newline,Line break,end-of-line(EOL)),在计算机领域中是一种加在文字最后位置的特殊字元,在换行字元的下一个字元将会出现在下一行,实际上换行字元根据不同的硬件平台或操作系统平台会有不同的编码方式。
换行字符可以看作是行的结束符,也可以看作行之间的分隔符,这两种处理方式之间存在一些歧义。如果换行字符被当作分隔符,那么文件的最后一行就不需要再有换行字符。但是多数系统的做法是在最后一行的后面也加上一个换行字符,也就是把换行字符看作是行的结束符。这样的程序在处理末行没有换行字符的文件时,可能会存在问题。相反地,有的程序把换行符看作分隔符,就会把最末尾的换行字符看作是新行的开始,也就是多出了一个空行。
2.双引号、单引号
有其他语言基础的人都知道,单引号或双引号之间是一串字符,程序将原样输出到界面。这里要注意的是原代码的最后两句
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'
第一句以双引号开始,双引号结束,中间包含单引号
第二句以单引号开始,单引号结束,中间包含双引号
首先,引号都得成对出现,另外单引号配单引号,双引号配双引号,否则将造成python混乱。同样会报行未正确结束的异常。