python课程学习第一课

    xiaoxiao2021-03-25  187

    sax边读边解析,效率高;dom一次都读进来pass:什么也不做,一般用于占位语句def:定义一个函数 简单爬虫 import requests import xml.etree.ElementTree as ET from xml.parsers.expat import ParserCreate class DefaultSaxHandler(object): def __init(self,provinces): self.provinces=provinces def get_provinces(url): content=requests.get(url).content.decode('gb2312') start=content.find('<map name=\"map_86 id=\"map_86\">') end=content.find('<\map>') content=content[start:end+len('</map>')].strip() print(content) provinces=[] handler=DefaultSaxHandler(provinces) parser=ParserCreate() parser.StartElementHandler=handler.start_element parser.EndElementHandler=handler.end_element parser.CharacterDataHandlerhandler.char_data parser.Parse(content) return provinces def start_element(self,name,attrs): if name!='map': name=attrs['title'] number=attrs['href'] self.provinces.append((name,number)) def end_element(self,name): pass def char_data(self,text): pass provinces=get_provinces('http://www.ip138.com/post') print(provinces)

    Python简介 1.优点

    简单,容易学习免费开源高级语言,细节隐藏解释性,可移植。一次编写,到处运行面向对象可扩展。可嵌入c/c++,或者使用c/c++提高性能扩展库

    2.缺点 - 慢! - shell脚本不友好

    doc命令

    pip install package(包名)pip –verbose install package(若安装包失败可以打印出失败原因)pip list(列出已安装的包)pip install package(包名) -i –trusted-host site:改变安装源,从国内的镜像中安装。eg.pip install -i –trusted-host http://pypi.douban.com/simple/ pandas

    文件读写:文本/二进制 文本:行读写 二进制:偏移量+大小

    格式化字符串:print(‘%s,%d’%(‘aaa’,100))

    常用关键字

    常量

    TrueFalseNone(相当于null)

    对象和容器

    classimportfromdel:从对象里删除一个元素

    判断

    ifelifelseisin:判断对象在不在容器里assert: 循环forwhilecontinue:跳出当前循环breakpass:什么都不做 哪种情况下使用:若无pass则报错,用pass做填充 class Empty(object): #pass def fun(): return 100; print(fun())

    异常

    raisetryexceptfinallyas

    常用运算符

    算术运算符

    +-*/%**:指数运算//:除法之后只取整数部分

    比较运算符

    >,>=<,<===!=

    逻辑运算

    andornot

    位运算 :无异或 可用not(y1==y2)来表示

    >>右移一位除2<<左移一位乘2&|^ print(0b1101|0b0101)#0b1101 13 print(0b1101&0b0101)#0b0101 5 print(0b1101^0b0101)#0b1000 8 def pow2(n):#n是不是2的指数 return (n&(n-1))==0 print(pow2(16)) print(pow2(32)) print(pow2(33))

    基本语法

    缩进 try: x=100 y=200#与上行不对齐 except IndentationError: print('IndentationError')

    注释:

    #:单行注释”’:多行注释\n:换行 (一行写不完,分两行写但仍实际是一行): str1='abc'\ 'def' print(str) print('hello\nworld') str2='''hello world''' print str2 print('hello world')#出错 单双引号:单引号相当于双引号 print('abc') print("abc") print('abc"123"def')'''单引号中有双引号不用转义,双引号中有单引号不用转义,单引号中有单引号需要转义,双引号中有双引号需要转义''' print("abc'123'def") print('abc\'123\'def') print("abc\"123\"def") python3默认utf-8支持,Python2需声明 若打开错误则在开头声明 # -*- coding:utf-8 -*-#coding:utf-8

    Python2.x和3.x的区别

    print函数:3.x一定要加()Unicode:3.x默认使用unicode编码除法运算:3.x整相除也能得到浮点数结果异常:3.x只能抛出继承自BaseException的异常xrange:3.x取消xrange(2.7中为种子生成器),range和xrange一样为实现为惰性求值(全生产放到list中,再从list中取值)二/八进制:3.x必须强制写成0b1011和0o7236。不等式:3.x取消了<>,只有!=‘’(正则表达式中):3.x中必须使用repr函数多个模块改名:Queue->queue,repr->reprlib数据类型 3.x取消了long,统一为int新增bytes类型,并可与string相互转换dict的keys/items/values方法返回迭代器,iterkeys函数被废弃,has_key被in取代 x=range(5) print(type(x))#3.x中输出range类型,2.x中输出list类型 print((1024).to_bytes(2,byteorder='big'))#2个字节,高字节在左边 print((1024).to_bytes(4,byteorder='little'))#4个字节,高字节在右边 print((-1024).to_bytes(2,byteorder='big',signed=True))#负数 print((-1024).to_bytes(4,byteorder='little',signed=True)) print('%x'%(3124)) print('%d'%(0x0c34))
    转载请注明原文地址: https://ju.6miu.com/read-38907.html

    最新回复(0)