笨方法学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

时间: 2024-08-28 19:48:28

笨方法学python(第三版)学习笔记1的相关文章

《笨办法学python第三版》习题26,原错误代码及正确代码

#import ex25 1 def break_words(stuff): 2 """This function will break up words for us.""" 3 words = stuff.split(' ') 4 return words 5 6 def sort_words(words): 7 """Sorts the words.""" 8 return sor

Day 2 笨方法学Python

手打第25个练习,出错的地方有: def 定义后indent 4个空格,第一行空了以后,直接换行是跟上面对其的,但是运行时是错误的,我的解决方法是,重新手动空格4个: 还发现一个问题就是,中文解释,以前老是出错 # -*- coding : utf-8 -*- 网上看到的加上这个就可以了,但是我的还是出错.今天偶然在削微寒的博客http://www.cnblogs.com/xueweihan/的GIthub上找到了答案 #coding:utf-8 换成这个语句就可以了.以后,尽量每句都加上注释,

笨方法学python(5)加分题

这篇对应的是习题17,更多文件操作 # -*- coding: utf-8 -*- #对文件更多操作复制A文件的内容到B文件 #from sys import argv from os.path import exists prompt = "> " from_file = raw_input("please input the filename where you want to copy from: >") #in_file = open(from_

笨方法学python(6)加分题--列表与字典的区别

he string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H N A P L S I I G Y I R And then read line by line: "PAHNAPLSIIG

笨方法学python(4)加分题

自己在看笨方法学python这本书,把自己觉得有学到东西的记下来,并不是每个习题都有记录 这次对应的是:习题 6: 字符串(string)和文本 这次只要是想说明一下,在print语句中,只要带有格式化字符的,会当作格式化来处理 脚本1: 结果1: 打出的结果没有%r,那是因为当作格式化处理了 脚本2: 结果2: 会报错,因为print joke_evaluation %hilarious 是格式化的标识 脚本3: 结果3:

笨方法学python学习笔记

创建于:2016-02-29 更新于:02-29 python版本:2.7 %r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符号则是用来向用户展示输出的: 每行print后面加个,(comma)的话,print就不会输出换行符. argv的命令行参数为字符串,因此涉及数字时需要用int()转为数字,raw_input()也是字符串. 读写文件常用方法:close,read,readline,truncate,write os.path里有一个属性exis

python cookbook第三版学习笔记十三:类和对象(三)描述器

__get__以及__set__:假设T是一个类,t是他的实例,d是它的一个描述器属性.读取属性的时候T.d返回的是d.__get__(None,T),t.d返回的是d.__get__(t,T).说法比较绕,我们来看一个实例: class Descriptor(object):     def __get__(self, instance, owner):         return 'get',self,instance,owner class T(object):     d=Descri

笨办法学Python(三十)

习题 30: Else 和 If 前一习题中你写了一些 "if 语句(if-statements)",并且试图猜出它们是什么,以及实现的是什么功能.在你继续学习之前,我给你解释一下上一节的加分习题的答案.上一节的加分习题你做过了吧,有没有? 你认为 if 对于它下一行的代码做了什么? If 语句为代码创建了一个所谓的"分支",就跟 RPG 游戏中的情节分支一样.if 语句告诉你的脚本:"如果这个布尔表达式为真,就运行接下来的代码,否则就跳过这一段.&quo

python cookbook第三版学习笔记六:迭代器与生成器

假如我们有一个列表 items=[1,2,3].我们要遍历这个列表我们会用下面的方式 For i in items:   Print i 首先介绍几个概念:容器,可迭代对象,迭代器 容器是一种存储数据的数据结构,容器将所有数据保存在内存中,典型的容器有列表,集合,字典,字符数组等.如items就是一个列表容器.   可迭代对象:这个对象是否可迭代.如items也是一个可迭代对象.简单来说如果可以用for循环的对象都称为可迭代对象.如果要判断是否是一个可迭代的对象.可以用print isinsta