全书以练习题的方式来讲解Python 的基本知识,总共有52个习题,200页左右的内容,可以说是比较短小简练的,没有讲解特别细致,但这恰恰轻松易学,初学Python看这个还算挺不错的。下面对自己在看完这本书之后几个重要的点做一下总结:
1. 使用print输出一行,行尾自动换行。
2. 如果涉及到代码中的编码问题,在文件的开头加上一行: # -*- coding: utf-8 -*-
3. #号是用来注释的,如果要做多行注释,在每行前面放一个#就可以了。
4. 运算优先级: PEMDAS 即括号(Parentheses)、指数(Exponents)、乘(Multiplication)、除(Division)、加(Addition)、减(Subtraction)。
5. 四舍五入的是round()函数,如round(1.443)。
6. 可使用双引号或者单引号来识别字符串。
7. 用%格式化变量。
8. 如果想要在字符串中通过格式化字符放入多个变量,需要将变量放到圆括号中,且变量之间用逗号隔开。如:print "a person has %d eyes and %d %s" % (1,1,nose)。
9. %r用来做测试比价好,它会显示变量的原始数据,会自动选择最有效的方式打印字符串,%s是向用户显示输出的。
10. print “*” * 10作用是将“*”输出10遍。
11. 单引号一般用来创建简短的字符串。
12. print """ coding """ 在三个双引号(单引号也是可以的)之间放入任意多行的文字,需要注意的是三个引号之间不能有空格。
13. 转译字符同JAVA、C几乎是差不多的
14. 使用了%r之后转义序列就不起作用了,所以记住:%r用于调试、%s用于显示。
15. 在print 之后加一个逗号,这样就不会自动换行了,但会自动带一个空格。
16. 获取用户输入的信息,可使用raw_input(),如x=raw_input(),不要使用input()函数,这样会将你输入的东西当做python代码进行处理,存在安全问题。 如果用x=int(raw_input())则会把用户输入的字符串用int()转换成整数。
17. 用%r会自动带引号,而且如果打印的字符串前面有个u,表示字符串是Unicode,而%s则不会出现上述情况。
18. 如果在raw_input()的括号里放一些字符串。则是显示出一个提示,告诉他人应该输入什么东西,如name = raw_input(“What's your name?”),后面不会自动带空格。
19. 在windows下输入python -m pydoc XX 可以查看相应函数的说明文档,如 python -m pydoc raw_input
20. import语句可以将某些模块导入进来,如 from sys import argv(从sys这个软件包中取出argv这个模块), argv即所谓的“参数变量(argument variable)”,保存着运行python脚本时传递给python脚本的参数。第0个参数就是文件名,示例代码如下
from sys import argv
script, name, age = argv
print "The script is called: ", script
print "your name is: ", name
print "you are %s years old " % age
21. 读取文件:open函数会接受一个参数,并返回一个值(file文件),然后调用read()可读取文件。需要注意的是python不会限制打开文件的次数,即可以多次打开同一个文件。示例代码如下(分别用argv和raw_input从用户那里获取文件信息)
from sys import argv
script, filename = argv
txt = open(filename)
print "Here is your file %r: " % filename
print txt.read()
print "Type the filename again:"
file_again = raw_input("> ")
txt_again = open(file_again)
print txt_again.read()
22. 在命令行里输入python按回车键则会进入python环境。然后可输入并运行一句句的代码。想退出就可按quit()再敲回车或者在windows环境下用Ctrl+Z即可。
23. 几个与文件相关的命令:close--关闭文件;read--读取文件内容;readline--读取文本文件中的一行,将指针移动到\n后面,所以读取了\n结尾自动换行;truncate--清空文件;write(xxx)将xxx写入文件;seek(0)回到文件的开始
24. open()中可附加一些参数,如‘w’表示写入模式,‘r’表示读取,‘a’表示追加,默认是以r模式打开。此外,还可在每个后面附加“+”修饰符,可以把文件用同时读写的方法打开,示例代码如下:
from sys import argv
script, filename = argv
print "Here is your file %r: " % filename
txt = open(filename, 'r+')
print "read the file "
print txt.read()
print "now truncate the file"
txt.truncate()
print "now write it "
txt.write("Hello World")
print "now finally close it "
txt.close()
25. exists命令将文件名字符串作为参数,如果文件存在的话返回True,不存在返回False。
26. len()函数的功能是以数的形式返回传递字符串的长度,示例代码如下:
from sys import argv
from os.path import exists
script, from_file, to_file = argv
print "coping from %s to %s " % (from_file, to_file)
indata = open(from_file).read()
print "the input file is %d bytes long " % len(from_file)
print "Does the output file exists? %r" % exists(to_file)
out_file = open(to_file,'w')
out_file.write(indata)
out_file.close()
27. 可以使用def定义函数,然后是函数名和形参,接着用冒号结束该行,然后下一行开始用四个空格缩进,代表函数的内容。*args代表接受一个参数列表,示例代码如下:
def print_two (*args):
arg1, arg2 = args
print "arg1: %r, arg2: %r" % (arg1, arg2)
def print_two_again(arg1, arg2):
print "arg1: %r, arg2: %r" % (arg1, arg2)
def print_one(arg1):
print "arg1: %r" % arg1
def print_none():
print "Hello world"
print_two("haha", "heihei")
print_two_again("why", "zmq")
print_one("hehe")
print_none()
28. 一段函数和文件的示例代码:
from sys import argv
script, input_file = argv
def print_all(f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count, f):
print line_count, f.readline(),
current_file = open(input_file)
print "First let's print the whole file: "
print_all(current_file)
print "now let's rewind "
rewind(current_file)
print "let's print the three lines"
current_line = 1
print_a_line(current_line, current_file)
current_line += 1
print_a_line(current_line, current_file)
current_line += 1
print_a_line(current_line, current_file)
29. 函数一次可以返回多个值。在定义函数时可以通过放在两个“”“之间的东西来写文档注释(帮助文档)。
30. 在用交互式方式的时候,导入某个python脚本,可使用 import xx 语句,之后不用加.py后缀。但是这样会使之后调用该脚本的函数时需要重复键入xxx. ,一个捷径是用from xxx import * 的方式来导入模块。
现在到了第26个习题了(本书的一半了),虽然这个书讲的只是个大概,不过初略地浏览下做些笔记还是挺不错的,很多地方亲自实践体会才是更好的方式。这个单独作为一个章节吧,下一章节是剩下的26个习题。