Python初学个人笔记(小白向)——《Learn Python the HARD WAY》

本文为初学Python的个人总结、笔记,比较小白向,

使用书为中文书名《“笨方法”学Python》(3版),

如有错误欢迎指出:D

1.print的东西打印在一行,在print之间加","
2.#号之后为注释内容
3.打印中文字符应该在文件头部添加:"   #_*_coding:UTF-8_*_   ";如果还是出错可尝试添加:"#_*_coding: GB2312_*_"          
4.优先级1:/相除   *相乘  %相除取余数
5.优先级2:+-
6.使计算结果有小数部分:在计算的整数后加".0"0个数随精确到的位数
7."="单等号是赋值给左边变量
8."=="双等号是检查左右两边是否相等
9.打印print语句中变量替换:%s——用字符串str替换(常用)
                                            %r——用字符串repr替换(常用,显示原始数据raw data,常用在调试)
                                           %d——用整数替换(常用)
                                           %f——用浮点数替换(常用)
                                           %e——用指数替换
                                           %b——用二进制替换
                                           %d——用十进制替换   %i——用有符号十进制  %u——用无符号十进制
                                           %o——用八进制替换
                                           %x——用十六进制替换
10.round(x,y)函数:返回浮点数x四舍五入的值,y为保留的小数位数,不写y则默认保留到整数
     受机器自身精度影响、python版本影响(2版本保留离0远的一方,3版本保留接近偶数的一方)
11.版本迁移需要注意一下:round()、/和//、print、以及一些比较另类的库
12.打印时双引号变成单引号:python会用最有效的方式打印。(与py3版本有差异)
13.打印的字符中有中文,使用%r会乱码,应该使用%s
14.打印转义序列:换行字符串:"\n",使用%r时会直接输出\n
                             回车字符:"\r"
                             水平制表:"\t",或者跳到下一个Tab位置
                             垂直制表:"\v"
                             退格字符:"\b"
                              换页字符:"\f"                
                                 空字符:"\0"
                    1到3位八进制数:"\ooo"
                 1到2位十六进制数:"\xhh"
                               响铃字符:"\a"
15.读取控制台的输入:input()——需要输入数字或计算式,如要输入字符串,应该带双引号""括起来
                     raw_input()——将所有输入(包括数字)作为字符串看待,返回字符串类型
   py3中input()接收任意输入,默认接收到的是str类型,py3中没有raw_input()
   py2中input()默认接收为数字类型为int\float,raw_input()默认接收返回的是字符串类型str
   type(objec)——可以查看变量类型
16.input()、raw_input()的括号中可输入"字符串"作为提示语,一般建议使用raw_input()来与用户交互
17.argv:sys.argv[]是一个可以从程序外部获取多个参数(列表)的桥梁,sys.argv[0]指向程序本身(脚本名)
     解包:a, b, c = argv:将接收的参数依次赋予左边的参数,a指向argv[0]即程序本身
18.区别input、raw_input和argv:argv是程序执行命令时就要输入的,input\raw_input是程序执行过程中接收的
19.固定一个提示符可以赋予一个变量,然后放入input()\raw_input()的括号中,如需修改则修改一次变量命名即可
20.print之后三个双引号之间可以加大片文本:print """……"""
21.python -m pydoc k:k改为关键词,查找相关文档
     python pydoc.py k:同上
22.读写文件使用open()、read():直接命令行open(),需要在括号内加入路径+文件名
   由于转义的原因,可以把路径中的 单斜杠\ 改为 双斜杠\\ ,避免报错
   使用脚本中的open(),则需要把目标文件和脚本放入同一目录下
   每次open之后都应该把文件关闭close()
   open(name,mode)——打开,模式mode:默认'r'只读 'w'只写  'r\w+'读写 'a'追加
   read()——读取文件内容,可以把结果赋给一个变量
   readline——读取文本文件的一行
   truncate——清空文件
   write(stuff)——把stuff写入文件
23.判断目标文件是否存在:exists() 括号内填入文件名,返回布尔值true和false
24.cat filename:显示filename文件的内容
25.len():返回括号内变量的长度
26.def 函数名(参数):   ——定义函数,函数名不能以数字开头,def行的末尾需要有冒号,冒号函数体需要缩进四个空格,需要将获取的列表解包可以参考17点argv,函数间参数名可重复使用
27.*a :表示把所有输入放入a列表
28.判断文本文件的行数: len(filename.readlines())  lines一定要加s
29.seek(0)  处理对象为字节,0则是跳转到文件0byte的位置(第一个字节),运行后会回到文件的开始
30.file.readline()——readline()每运行一次就会读取文件file的一行,扫描文件的每一个字符直到一个\n,然后就停止读取,返回此前的文件内容,file会记录每次调用readline之后的读取位置,再下一次运行readline时就可以读取接下来的一行。
31.函数中的return,将return 右边的值作为调用函数后的返回值
32.import——导入一个包\模块\功能
33.pop()——将列表括号内制定位置的元素移除,同时可以将移除的元素\键值赋予某个变量,不填时默认删最后一位
34.split(str,num)——通过指定分隔符str=''对字符串进行切片,默认所有空格空字符换行符\n制表\t,num为分割次数
35.sorted()——对括号内的列表\字符串进行排序
36.if 条件:——表达条件后开始if语句需要加冒号:
37.如果遇到多个if\elif块都是true,只有顺序下遇到的第一个true块会被执行
38.列表操作:
   list.append()——向列表list中的尾部添加一个对象\元素
   list.count()——计算列表list中某元素出现的次数
   list.index()——找到列表中某元素第一个匹配项的索引位置
   list.insert(index,obj)——向列表中指定的索引位置插入某元素
   lsit.pop()——移除元素默认最后一个并返回该元素
   list.remove()——移除列表中第一个匹配到的元素
   list.sort()——对列表进行排序
   list.reverse()——反向排列列表的元素
39.list1.extend(list2\sequence)——向列表list1中的尾部添加另一个列表或序列
40.创建列表: 列表名称 = []   使用方括号开始和结束列表内容的定义
41.for循环可以使用未被定义的变量,循环开始时就被定义,每循环一次就被重新定义一次
42.range(num1, num2)——从num1到num2,但不包括num2,只到num2前一个数
43.for循环和while循环的区别:for循环只能对一些东西的集合进行循环
                             while循环可以对任意对象进行驯化,一般任务用for
44.exit包:exit(0)——无错误退出
           exit(1)——有错误退出
45.while Ture:  ——可以创建一个无限循环
46.判断字符串的组成:a.isdigit()——是否所有都是纯数字(无负号)
                     a.isalpha()——是否所有都是纯字母
                     a.isalnum()——是否数字字母组合
                     a.islower()——是否所有为小写
                     a.isupper()——是否所有为大写
                     a.istitle()——是否所有单词都是首字母大写
                     a.isspace()——是否都是空白字符\空格
47.if语句的嵌套不要超过两层,尽量保持在一层,每一个if语句都必须包含一个else,即使执行不到,也要在执行的时候打印出错误信息。
48.最好的调试方式是使用print在各个想要检查的关键环节将关键变量打印出来检查
49.''.join(list)——以str=''把list中的元素连接起来形成一个新的字符串
50.字典dict = {key:value}  字典中同一个键不允许出现两次,定义时会记住最后一个赋予的值
    dict.clear()——删除dict内所有元素
    dict.copy()——返回dict的浅复制
    dict.fromkeys(seq[,val])——创建一个新的字典,以列表seq的元素作为新字典的键,默认所有的值为val
    dict.get(key,default=None)——指定key存在则返回key的值,否则返回default
    dict.has_key(key1)——如果key1存在则返回true,否则返回false
    dict.items()——以列表的形式返回可遍历的(键,值)元组数组
    dict.keys()——以列表形式返回dict的所有键
    dict.values()——以列表形式返回dict的所有值
    dict.setdefault(key,default=None)——key存在返回key的值,如果不存在,返回default,添加键和值为default
    dict.update(dict1)——把dict更新到dict2
    dict.pop(key[,default])——删除字典指定键和值,并返回指定键的值,字典中无指定键则返回default
    dict.popitem()——随机返回并删除字典中的一对键和值
51.class 类(对象):
       def 函数(实例):
          实例.属性=
   a = classname(obj)——创建了类classname的一个实例
   初始化函数 def __init__(self):    __是两个_
   类的变量在类的实例中共享
52.实例是类的一个接口、通道
53.同时使用python2和3版本,编译时在代码文件头添加: #! python2
                                                    #! python3
   或者运行时py -2 hello.py或py -3 hello.py

54.pip:Python包管理工具,提供对python包的查找、下载、安装、卸载功能。
   升级包:pip install --upgrade 包名
   安装包:pip install 包名
   卸载包:pip uninstall 包名
   查看包信息:pip show 包名
   查看已安装包:pip list
   查看已过期包:pip list --outdated
   升级pip:easy_install -U pip
55.print在python2和3中的差别:
   print在3中是一个内置函数,有多个参数,使用时需要加括号 print("Hello")
         print(value1, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
          同时打印多个value,sep表示字符串之间用什么连接,end表示结尾添加什么字符
   print在2中是一个语法结构,打印时不需要加括号  print "Hello"
56.assert_equal(fist,second)  断言fist和second是否相同,否则抛出异常
   assertEquals([String message],expected,actual,tolerance) 
   参数说明: 
       message是个可选的消息,假如提供,将会在发生错误时报告这个消息。 
     expected 是期望值,通常都是用户指定的内容。 
       actual 是被测试的代码返回的实际值。 
       tolerance是误差参数,参加比较的两个浮点数在这个误差之内则会被认为是相等的。
57.项目骨架  NAME——项目的主模块
             setup.py——python的构建工具
             bin——用来存放从命令行的脚本
             tests——存放测试脚本的文件夹
             docs
58.元组tuple:一个不能修改的列表,使用()圆括号,成员间用逗号隔开tupe_name(),只有一个元素时需要在元素后加逗号,索引从0开始,元组中的元素值不允许修改,但可以对元组进行连接组合
59.异常处理
   try:
      code1  #需要判断是否会抛出异常的代码
   except:   #这里会捕捉到上面code1代码中的异常,并根据异常抛出异常处理信息,可接收异常名称和参数,并针对不              同形式的异常来处理#except ExceptionName,args
      code2  #执行异常处理的相关代码、打印、提示等
   else:     #如果没有异常则执行else
      code3  #code1被正常执行后执行的代码
   finally:
      code4  #退出try语句块总会执行的程序
60.assert_raises(exception, callable,parameters)
   exception:错误类型,错误的class名称
   callable:函数名称
   paramets:向测试函数传递的参数
   assert_equal()在第56
61.python项目应该在最上层目录运行,保证所有的模块和文件都能被正常访问到
62.web(运行后,localhost:8080指向app.py)
   在浏览器输入ip,连接到计算机本机,浏览器对app.py这个应用程序发出HTTP请求,要求访问URL/(通常是一个网站的第一个URL)
   bin/app.py里有个列表,包含了URL和类的匹配关系('/', 'index'):如果有人使用浏览器访问这一级目录,lpthw.web将找到并加载class index,从而用它处理浏览器的请求
   lpthw.web找到了class index,然后针对这个类的一个实例调用了index.GET这个方法,返回一个字符串,通过lpthw.web传递给浏览器
   到这里,lpthw.web完成了浏览器请求的处理,将响应回传给浏览器,形成看到的页面。
63.HTTP基于TCP/IP通信协议传递数据,默认端口为80
   例如:在浏览器地址栏键入URL,按下回车
    1.浏览器向DNS服务器请求解析该URL中的域名和对应的IP地址
    2.解析出IP地址后,根据该IP地址和默认端口,和服务器建立TCP连接
    3.浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的的第三个把平稳的数据发送给服务器
    4.服务器对浏览器请求作出响应,把对应的html文本发送给浏览器
    5.释放TCP连接
    6.浏览器显示该html文本内容
   例如:浏览器键入URL(http://hello.com/text)
    1.浏览器根据URL获得信息:①使用的协议(HTTP)
                             ②想联络的服务器名称(hello.com)
                             ③要从服务器上获得的资源(/text)
    2.浏览器创建一个连接:①让操作系统OS打开一个端口(一般是80端口)
                          ②OS返回一个文件(通过网络传输和接受数据,可以让本机和/hello.com所属服务器之间进行数据交流)(TCP握手,第三次时发送请求给服务器)
    3.服务器作出响应,发送相关资源/text给浏览器
    4.释放TCP连接
64.HTML
  实现不同页面跳转可以使用<form action="/hello" method="GET(对应执行的方法)"><input type="submit" value="按钮名称"></form>
65.PowerShell 创建新文件 new-item -type file filename 
   Linux  下:touch filename.py

猜你喜欢

转载自blog.csdn.net/u014240905/article/details/79998999