最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习python的我帮助有限. 下面是自己学习过程整理的一些内容. 基础版: 基础教程上面的项目例子,都会先出一个基础的代码版本,然后根据第一个版本,进行相应的补充完善.我们先来看一下util.py这个文件. #encoding:utf-8 #生成器,for循环时会依次返回每一行,它只在文件的最后追加了一个…
今天写一下基础教程里面的第二个项目,主要使用python来做一个pdf的图,比较简单. 首先我们需要安装用到的模块pip install reportlab即可. 书上是用urlopen从往上下了一个txt文件,然后打开处理一下得到数据,因为我从这个url路径没有获取到数据,所以直接写了一点数据在程序里. urlopen比较简单,以后写爬虫也会经常用到,所以这里就不讲了,只单独讲讲reportlab模块. #encoding:utf8 from reportlab.graphics.shapes…
5.1 print和import的更多信息 1. print()3.0之后print不再是语句,而是函数, >>> print('udg',12,13)   udg 12 13 >>> name='yanliang'  >>> print(name)  yanliang 2. import 把某件事当做另外一件事导入 import somemodule from somemodule import somefunction from somemodul…
本章的名字虽然叫列表和元组,但是本章讲的最多的是列表,元祖指讲了很少的一部分.因为元组和列表很多方面都是一样的. 列表和元组的区别:列表可以被修改,元祖不可以被修改. python包含的6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象. 内建函数返回的是元组,因为元组是不可以被修改的. 列表的形式是[] ,元素之间通过逗号分隔. 序列(例如列表和元组)和映射(例如字典)是两类主要的容器.序列中的每个元素都有自己编号,而映射中的每个元素则有一个名字(也称为…
/  表示整除,当导入_future_模块中的version时,/ 表示正常的的除法, 此时可用//表示整除,不论数字是整型还是浮点型,都可以用//表示整除. ** 表示幂次方  例如 2**3   表示2的3次方  结果为8 ** 运算符的优先级比负号 - 的运算符优先级高,所以 -3**2 = -9    (-3)**2 = 9 Pow(3,2)函数也表示幂次方的计算,此函数表示3的2次方,结果为9 输入使用input函数,input(“please input a number:”)   …
一.print 和 import 的更多信息 print 打印多个表达式也是可行的,只要将它们用逗号隔开就好: >>> print('Age:' , 42) Age: 42 可以看到,每个参数之间都插入了一个空格符.如果想要同时输出文本和变量值,却又不希望使用字符串格式化的话,那这个特性就非常有用了. 从模块导入函数的时候,可以使用 import  somemodule 或者 from  somemodule import  somefunction 或者 from somemodule…
1.http://docs.python.org/dev/3.0/whatsnew/3.0.htmlpython-announce-listpython-help2.交互式编译器3.非整数除法 .1.>>> from__future__import divisionSyntaxError: invalid syntax.2.Linux -Qnew4.整数除法 // 就算是浮点数也会执行整除取余 2.75%0.5幂运算符 ** (pow(base,times[mod]))幂运算符比取反等级…
下面进入Python的面向对象: 对象的魔力: 多态:---可以对不同类的对象使用同样的操作 封装:---对外部隐藏对象内部的工作方式 继承:---以普通的类为基础建立专门的类对象 (1)多态: isinstance(...) isinstance(object, class-or-type-or-tuple) -> bool   检查object的类型 isinstance(object, tuple) 检查是否为元组 绑定到对象上的函数称为方法   例如>>> [1,2,'a'…
字典 字典是Python唯一内建的数学映射类型,字典中的值没有特殊的顺序,键可以是数字,字符串,甚至是元组 字典的创建: 字典由键值对构成,字典中键是唯一的,而值不唯一.>>> a_map={"a":1,"b":2,"c":2}  >>> a_map["a"] dict函数来创建字典: >>> items=[('a','b'),(1,2)]  >>> a_…
python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] (4)分片赋值,name[2:]=list('ar') 列表方法:对象.方法(参数) (1)a.append(6)   在列表末尾添加新的对象 (2)a.count("dh")   统计元素在列表中出现的次数 (3)a.extend(b)   可以在列表的末尾一次性追加多个值 (4)a.…
1.8 函数 pow(x,y) x^y abs(x)          取数的绝对值 round(x)   会把浮点数四舍五入为最接近的整数 floor(x)     向下取整的函数,但是需要先import  math模块 1.9 模块 用import导入模块来扩展Python的功能 (1)import 模块    然后用法:模块.函数 (2)from 模块 import 函数     然后用法:函数 (3)使用变量来赋值,然后使用函数,,,如:foo=math.floor()   foo(12…
(1)计算裴波那契数列: fbis=[0,1] num=int(input("please input the number")) for i in range(num-2): fbis.append(fbis[-2]+fbis[-1]) print(fbis) 6.3 创建函数 callable():函数可以确定函数是否可以被调用 最简单的例子: def hello(name): return "hello"+name+"are you OK?"…
字符串是不可修改的,标准序列操作(索引,分片,判断成员资格,求长度,取最大值 最小值)对字符串都是有效的. 格式化字符串,类似于C语言的输出是的感觉. >>> format="hello %s   %s are you ok?" >>> value=("yanliang","24") >>> print(format % value) hello yanliang   24 are you o…
<python基础教程(第二版)>学习笔记 语句/循环/条件(第5章) print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' ==> AB CD # 插入了一个空格print 1,2,3 ==> 1 2 3print (1,2,3) ==> (1, 2, 3)#在脚本中以下ABCD连在一起输出print 'AB',print 'CD' import somemodule #导入模块from somemodule imp…
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“python -V”查看版本号,注意V是大写字母,这条命令是Windows命令,而不是python shell的命令 3.让解释器只执行普通的除法运算:from __feture__ import division 4.执行整除运算的运算符:// 5.取幂运算符:2**4 相当于2的4次方,-2**4…
<python基础教程(第二版)>学习笔记 基础部分(第1章)python常用的IDE:Windows: IDLE(gui), Eclipse+PyDev; Python(command line);Linux/Unix: python 1/2=0 # 整除结果为0from __future__ import division # 可以执行普通的除法python -Qnew # 可以执行普通的除法 //整除, 例如: 1//2=0:%取余数:**乘幂长整型数: 末尾带L,例如: 10000L十…
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 ▶ If条件语句 条件语句的使用实例如下: #!/usr/bin/python # -*- coding: UTF-8 -*- # 例2:elif用法 num…
<python基础教程(第二版)>学习笔记 文件和素材(第11章) 打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r'c:\somefile.txt') #默认是读模式+ 表示是可以读写:r 读模式:w 写模式:a 追加模式:b 二进制模式:换行符在Windows为\r\n,在Unix中为\n, Python会自动转换: buffering缓冲:0表示无缓冲:1表示有缓冲(使用flush或close才会写到硬盘中): sys…
<python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person:    def setName(self,name):        self.name=name    def getName(self):        return self.name foo=Person()foo.setName('AAA')foo.getName()foo.namefoo.name='BBB' 私有属性,名字前面加上两个下划线.class Person:    def _…
<python基础教程(第二版)>学习笔记 函数(第6章) 创建函数:def function_name(params):  block  return values 记录函数:def function_name(params):  'NOTE' #注释  block  return values function_name.__doc__help(function_name) return # 没有返回值 位置参数和关键字参数:关键字参数要提供参数的名字:def function_name(…
<python基础教程(第二版)>学习笔记 字典(第4章)创建字典:d={'key1':'value1','key2':'value2'}lst=[('key1','value1'),('key2','value2')]; d=dict(lst)d=dict(key1='value1', key2='value2')字典基本操作:d={'key1':'value1','key2':'value2'}; len(d) ==> 2 #字典中的键值对数量d={'key1':'value1','…
<python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符串:使用%,%左侧是格式字符串,%右侧是需要格式化的值例如:print '%s=%d' % ('x',100) ==> x=100使用%% 格式字符串可以输出 %模板字符串:from string import Templates=Template('$x is 100');  s.substitute…
<python基础教程(第二版)>学习笔记 列表/元组(第2章)序列中的下标从0开始x='ABC' ==> x[0]='A', x[1]='B', x[2]='C'负数索引从右边开始.最后一个元素下标是-1:x[-1]='C''ABC'[0]  ==>  'A'raw_input("x:")[3] 输入数据当作字符串列表分片:x[2:5], x[-3:-1], x[-3:], x[:3], x[:]  #列表名字[起始下标:结束下标]列表分片+步长: x[0:1…
一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看,发现很难看懂,一个功能分散在几个文件中,各个类的耦合非常紧.虽然自己有几年的c++开发经验,但初看这个python代码也觉得头晕. 二.原版 以下是其源码 from __future__ import generators def lines(file): for line in file: yield l…
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(exception object)来表示异常情况.当Python无法正常处理程序时就会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯终止执行. 为了引发异常,可以使用一个类(Exception类或其子类)或实例参数调用raise语句. raise Exception raise Exception('He…
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 4. http://www.runoob.com/python/python-modules.html 5. http://www.pythoner.com/ 6. http…
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 ▶ 变量赋值 Python中变量不需要声明,变量赋值操作就是变量声明和定义的过程. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.例子如下: #!/…
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000   ▶ 中文编码 Python中默认的编码格式是ASCII格式.如想支持中文,则在文件开头加入# -*- coding: UTF-8 -*- 或者 #codin…
之所以选择py交易有以下几点:1.python是胶水语言(跨平台),2.python无所不能(除了底层),3.python编写方便(notepad++等文本编辑器就能搞事情),4.渗透方面很多脚本都是py编写的(而且google的网站也是py) 安装与运行交互式解释器 在绝大多数linux和 UNIX系统安装中(包括Mac OS X),Python的解释器就已经存在了.我们可以在提示符下输入python命令进行验证(作者环境ubuntu) fnngj@fnngj-H24X:~$ python P…
写在系列前,一点感悟 没有梳理总结的知识毫无价值,只有系统地认真梳理了才能形成自己的知识框架,否则总是陷入断片儿似的学习-遗忘循环中. 学习方法真的比刻苦"傻学"重要多了,而最重要的学习方法无非总结梳理,温故知新,多动手实践.作为一个编程的门外汉,要快速转型上手Python一定要践行此"术". 我完整看完的技术书籍几乎没有,从今天起就要通读下<Python基础教程>第二版,并每一章节都写一篇博客记录.总结所学. 本书共29章,计划在14天内看完.任务艰巨…