注:该博客仅为个人学习笔记,授课老师@林应 保留所有权利,侵删。
目录
- 1,为什么要用python
- 2,环境搭建
- 3,如何学好python
- 4,python常用关键字
- 5,python运算符
- 6,python基础语法
- 7,2.x 和3.x的区别
- 1,为什么要用python?
''' C语言开发效率太低,而shell只是一种胶水语言。作者的目的:创造一种C和shell之间,功能全面,易学易用,可拓展的语言 优点 简单,容易学习。 免费开源 高级语言,细节隐藏。 解释性,可移植。一次编写,到处运行。 面向对象 可扩展。可嵌入C/C++,或者使用C/C++提高性能。numpy库本质就是c,来实现高效率,一般python里的数值运算建议用numpy。
扩展库 语法简单 应用场景丰富 接口测试 UI自动化 数据分析处理 技术成熟,大量参考/例子代码,stackoverflow社区 缺点 慢! shell脚本不友好 一个爬虫小例子,用来爬取某个网站的省份信息。
''' import requests#请求 from xml.parsers.expat import ParserCreate#解析器 '''处理xml文件,边读边解析的方式''' class DefaultSaxHandler(object): def __init__(self, provinces): self.provinces = 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 #拿到省份信息 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)#处理xml parser = ParserCreate()#解析器 parser.StartElementHandler = handler.start_element parser.EndElementHandler = handler.end_element#处理起始结束标记 parser.CharacterDataHandler = handler.char_data#处理文本数据 parser.Parse(content)#分析拿到的文本 return provinces provinces = get_provinces('http://www.ip138.com/post') print(provinces)
- 2,环境搭建:anaconda+pycharm,或者ipython notebook
- 3,如何学好python?
'''如何学好编程,这可以作为一个通用的范式,在学习一门新的语言时,先从这个框架上掌握,其他遇到问题慢慢搞 基础部分 基本语法 基本数据类型 对象的定义和声明 循环和判断:for, foreach, if, while, do... 逻辑运算 位运算 数据结构 数组 字符串 系统标准库自带的类型 如何实现常用数据结构:链表、堆栈、二叉树... 输入输出 标准输出输出:print, echo, input... 文件读写:文本按行/二进制偏移量和大小 格式化字符串 异常处理 抛出和捕获异常:try/catch, try/except... 异常和错误的区别以及应用场合 进阶提高 常用算法 分治 贪心 动态规划 数据库访问 建立连接 执行SQL查询 读取查询记录 面向对向 继承 多态 静态变量与方法 其它 多线程/进程 匿名函数 语言相关特定知识 Java的反射 C++的模板 Python的协程... 作者提到很重要的一点,可以将这些基础的语法细节做一个整理,用的时候直接贴就行,因为你不可能时时刻刻对语法都记得这么清楚 然后日常刷算法可以用link code练手,时刻保持状态 '''
- 4,python常用关键字
''' 常量 True False None,相当于c里面的NULL 对象和容器 class import from del 判断 if elif else is:判断是什么 in:判断在不在一个容器里 assert 循环 for while continue break pass 异常 raise try except finally as '''
- 5,python基础运算符
''' 算术运算 +-*/ %取余 **幂 //除法只取整数 比较运算 >, >= <, <= == != 逻辑运算,用的单词,位运算用的是符号 and or not 位运算,0b开头是二进制 >> <<左移,乘2的多少次方,右移,除以2的多少次方 & | ^亦或 '''
- 6,python基础语法
''' 缩进,用tab,正规用是4个空格,全局风格要统一 注释, 单行用#,多行用''' ''' 多行代码换行:\ 中文支持 首行加入# -*- coding: utf-8 -*- 多行字符串:""" """ 单双引号:无区别,如果两者同时存在,则另一个作为普通字符处理,如'abc"abc"abc' '''
- 7,2.x 与3.x的区别
''' print:3必须加括号 unicode:3默认unicode编码,即不用担心中文 除法:3默认整数相除得到浮点数结果 异常:3只能抛出继承自baseException的异常 xrange:3没有 二进制和八进制:3必须写成0开头,0b,0o 3取消了long,同一为int 3增加了进制转换 ,print((1024).to_bytes(2, byteorder = 'big'))#高位在前
其他问题,遇到百度即可
'''
转载于:https://www.cnblogs.com/jingyiyang/p/9845287.html