在工作中当遇到一些问题时,难免会想到有没有一种语法简洁且能快速解决问题的方法。一个偶然的机会让我对Python爱不释手。使用Python很久了,但一直都是在使用而没有静下心来好好总结和归纳,正好趁这个假期好好梳理和总结一下以备今后忘记方便查阅
1.什么是python
解释:一种解释型的、面向对象的、带有动态语义的高级程序设计语言
2.python的缺点
(1)运行速度慢
(2)所有源代码不能加密
3.python的优点
(1)跨平台、兼容性好
(2)语法简洁、开发中重点放在解决问题上
(3)有丰富的库
(4)无需考虑内存管理
4.python的应用
google实现爬虫和搜索引擎中的很多组件
YAHOO使用它(把汗其他技术)管理讨论组
NASA在其系统中使用Python开发,又将其作为脚本语言
YouTuBe视频分享服务
5.Python文件形式
源代码
--Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译
字节码
--Python源文件经编译后生成扩展名为“pyc”的文件;
--编译方法 - import py_compile
py_compile.compile("hello.py")
优化代码
-- 经过优化的源文件,扩展名为‘.pyo’
- python -O -m py_compile hello.py
以上三种形式均可直接运行
6.算术运算符
'/'实数除法:3/2, 3.0/2
‘//’整数除法:3.0//2 , 5.6//2
'%' 求余数:除法求余数,17除6余数5
‘**’求幂运算:2**3=8
7、逻辑运算符
'and'逻辑与:True and False
‘or’逻辑或:True or False
‘not’逻辑非:not Ture
8、序列的基本操作
1. len():求序列长度
2. + :链接2个序列
3. * :重复序列元素
4. in: 判断元素是否在序列中
5. max(): 返回最大值
6. min(): 返回最小值
7. cmp(tuple1,tuple2) 比较两个序列的值是否相同 1(序列1大于序列2) 0(序列1等于序列2) -1(序列1小于序列2)
9、元组()
--元组通过圆括号中逗号分割的项目定义。
--元组通常用在使语句或用户定义的函数能够安全地采用一组值得时候,即被使用的元组的值不会改变
创建元组
--一个空元组由一对空的圆括号组成
如myempty = ()
--含有单个元素的元组
singleton =(2,)
-- 一般的元组
zoo = ('wolf','elephant','penguin')
new_zoo = ('monkey','dolphin',zoo)
元组操作
--元组和序列类型一样属于序列类型,可以通过索引和切片操作
--元组值亦不可改变
10.列表[]
--list是处理一组有序项目的数据结构,列表是可变类型的数据
--列表的组成:用[]表示列表,包含了多个逗号分隔开的数字,或者字符串
如:List1 = ['Simon','jason','张三']
List2 = [1,2,3,4,5]
列表操作:
-取值
1.切片和索引
2.list[]
-添加
1.list.append()
-删除
1.del(list[])
2.list.remove(list[])
-修改
list[]=x
-查找
var in list
11.字典{}
--字典是python中唯一的映射类型(哈希表)
--字典对象是可变的,但是字典的的键必须使用不可变对象,并且一个字典中可以使用不同类型的键值
-- keys()或者values()返回键列表或者值列表
-- items()返回包含键值对的元组
创建字典
--{}
--使用工厂方法dict()
例如:fdict= dict(['x',1],['y',2])
--内建方法:fromkeys(),字典中的元素具有相同的值,默认为None
例如:ddict ={}.fromkeys(('x','y'),-1)
访问字典中的值:
--直接使用key访问:key不存在会报错,可以使用had_key()或者in和not in判断,但是has_key()方法即将作废
--循环遍历:
例如:for key in dict1.keys();
--使用迭代器:for key in dict1:
更新和删除:
- 直接用键值访问更新:内建的update()方法可以将整个字典的内容拷贝到另一个字典中。
- del dict['a'] 删除字典中键值为a的元素
dict.pop('a')删除并返回键值为'a'的元素
dict.clear()删除字典所有元素
del dict1 删除整个字典
字典相关的内建函数:
--type(),str(),cmp(),(cmp很少用于字典的比较,比较依次是字典的大小、键、值)
工厂函数dict():
--例如:dict(zip('x','y'),(1,2))或者dict(x=1,y=2)
--{'y','x',1}
-- 使用字典生成字典比用copy慢,因此这种情况下使用copy()
字典常用函数:
len()、hash()(用于判断某个对象是否可以做一个字典的键,非哈希类型报TypeError错误)
dict.clear():删除字典中所有元素
dict.fromkeys(seq,val=None):以seq中的元素为键创建并返回一个字典,val为制定的默认值
dict.get(key,default=None):返回key的value,如果该键值不存在返回default指定的值
dict.has_key(key):判断字典是否存在key,建议使用in和not代替
dict.items():返回键值对元组列表
dict.iter*():iteritems(),iterkeys(),itervalues()返回迭代子元素而不是列表
dict.pop(key[,default]):同get(),区别若key存在,删除并返回dict[key],若不存在且default未指定值,跑出
keyError异常。
dict.setdefault(key,default=None):同set(),若key存在则返回其value,若key不存在,
则dict[key]=default
dict.update(dict2):将dict2中的键值对添加到字典dict中,如果有重复覆盖,则将不存在的条目添加到原字典中
dict.values():返回字典中所有值得列表