笨方法学python(第三版)学习笔记1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笨方法学python(第三版)学习笔记1相关的知识,希望对你有一定的参考价值。
1. 将浮点数四舍五入:round(1.7333)
2. 格式化字符:%s %d %r
%r和%s有什么不同? %r用来做debug比较好,因为它会显示变量的原始数据(raw data),而 其它的符号则是用来向用户显示输出的。记住:%r用作debug,%s用作显示。
使用了%r后转义序列都不灵了。因为%r打印出的是你写到代码里的原始字符串,其中会包含原始的转义字符。
line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")
lines = "%s \\n %s \\n %s \\n" % (line1, line2, line3)
3. 转义序列:
换行符:\\n (还有一种将字符串扩展到多行的方法是使用三引号""",可以在一组三引号之间放入 任意多行的文字)
特殊的转义序列:双反斜杠\\\\ 这两个字符组合会打印出一个反斜杠来。
对单引号和双引号转义:
“I am 6‘2\\" tall.” # 用 \\" 将字符串中的双引号转义 6‘2“
‘I am 6\\‘2" tall.‘ # 用 \\‘ 将字符串中的单引号转义 6’2”
疑问:
while True:
for i in ["/", "-", "|", "\\\\", "|"]
print "%s\\r" % i,
其中\\r是什么作用?
4. 字符串要加引号;变量不加引号
5. 在print语句后面加个逗号,这样的话print就不会输出新行符而结束这一行跑到下一行去了。
print "How old are you?",
age = raw_input()
加逗号后,运行结果为在一行:How old are you? 27
不加逗号,运行结果为在两行:How old are you?
27
6. raw_input()和input()
raw_input() 用来获取控制台的输入,将所有输入作为字符串看待,返回字符串类型。
注意:input() 和 raw_input() 这两个函数均能接收字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。input()在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型(int, float)(比如:input(1 + 3)会返回int型的4)。
input()会把你输入的东西当做python代码进行处理,这么做会有安全问题。除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
注意:python3 里 input() 默认接收到的是 str 类型。
x = int(raw_input()) 会把用户输入的字符串用int()转换成整数
raw_input()括号里可以放入提示信息 y = raw_input("Name?")
7. python程序员风格:每行不多于80个字符
8. pydoc
pydoc是python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现,也可以生成web页面,还可以在服务器上以浏览器方式呈现。
Windows下:
D:\\>python -m pydoc <modulename> # 比如说: python -m pydoc raw_input
-m参数:Python以脚本的方法运行模块
Linux/Unix下:
$ pydoc <modulename> # 比如说: pydoc raw_input
输入q退出pydoc
9. 我们把导入(import)进来的功能叫做模组(modules)。
from sys import argv
这句话的意思是从sys代码库里取出argv这个模组。
argv是“参数变量”,包含了你传递给python的参数。
from sys import argv
script, first, second, third = argv
print "The script is called:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third
第二个语句是将argv解包,将所有的参数依次赋予左边的变量名:script, first, second, third。
需用命令行执行,注意必须传递三个参数:
argv和raw_input()有什么不同?
不同点在于用户输入的时机。如果参数是在用户执行命令时就要输入,那就是argv;如果是在命令行参数是字符串。argv和raw_input()不能合起来用。
from os.path import exists
exists命令将文件名字符串作为参数,如果文件存在返回True,不存在返回False。
print "Does the output file exist? %r" % exists(to_file)
10. 读取文件
txt = open("文件名")
print txt.read()
从open获得的东西是一个叫做“file object”的东西,可以想象成一个磁带机或者DVD机。你可以随意访问它的任意位置,并且去读取这些内容,不过这个object本身并不是它的内容。这个“file object”本身也支持一些命令。它接受命令的方式是使用句点".",紧跟着你的命令,然后是类似open和raw_input一样的参数。
open对于文件的写入操作很谨慎,只有特别指定后才会进行写入操作。
如:target.open(filename, ‘w‘)
‘w‘只是一个特殊字符串,用来表示文件的访问模式,除此还有‘r’表示读取,‘a’表示追加。
如果只写open(filename)那就使用‘r‘模式打开,这是open()函数的默认工作方式。
还有哪些修饰符可以用来控制文件访问?
最重要的是+修饰符,写法就是"w+‘,‘r+‘,‘a+‘,这样的话文件将以同时读写的方式打开,而对于文件位置的使用也有些不同。
11. 在命令行下输入python代码:
在命令行输入python然后敲回车,然后你就在python环境中了。退出输入quit()。
12. 文件相关的命令(方法/函数)
close-关闭文件。跟你编辑器的文件->保存..一个意思。
read-读取文件内容。可以把结果赋给一个变量。
readline-读取文本文件中的一行。通过扫描文件的每一个字节,直到找到一个\\n为止,然后停止读取,并返回此前文件内容。
truncate-清空文件,请小心使用该命令。
write(stuff)-将stuff写入文件。需要接收一个字符串作为参数,从而将该字符串写入文件。
f.seek(0)-f在这里是一个变量名,指的是一个文件。Python里的文件可以想象成老式磁带机或者DVD播放机,它有一个用来读取数据的“磁头”,可以通过这个“磁头”来操作文件。每次运行f.seek(0),就回到了文件的开始,而运行f.readline()则会读取文件的一行,然后“磁头”移动到\\n后面。seek()函数的处理对象是字节而非行,seek(0)只手转到文件的0byte,也就是第一个byte的位置。
13. windows下打印文件内容到屏幕上的命令是type。
14. len()函数:以数字形式返回你传递的字符串的长度。
15. def print_two(*args):
arg1, arg2 = args
print "arg1: %r, arg2: %r" % (arg1, arg2)
*argv中*的功能是告诉python让它把函数的所有参数都接受进来,然后放到名字叫args的列表去。和argv差不多,只不过前者是用在函数上面。没什么特殊情况一般不用。
16. x += y等同于x = x + y