开博第一篇文章本来想写前端相关的,由于某些原因,开始学习Python,这里权当学习笔记吧。
第一章
1.1. / 默认是整除
>>> 1/2
0
解决方案:要用实数(包含小数点的十进制数)而不是整数进行运算,或者让Python改变除法的执行方式。
>>>1.0 / 2.0
0.5
>>>1 / 2.0
0.5
>>>1.0 / 2
0.5
>>> 1 / 2.
0.5
如果希望Python只执行普通的除法,那么可以在程序前加上以下语句,或者直接再解释器里面执行它:
>>> from _future_ import division
还有另外一个方法,如果通过命令行(Linux)运行Python,可以使用命令开关-Qnew。
1.2. // 整除操作
1.3. ** 幂 运算符(比取反的优先级高)
pow(2,3)
1.4. 长整形书书写方法和普通整数一样,但是结尾有个L。
1.5. if语句
if time % 60 == 0 : print 'On the hour!'
1.6.调用模块内函数的方法
>>> import math
>>>math.floor(32.9)
或者
>>>from math import sqrt
>>>sqrt(9)
1.7.负数的平方根是虚数(cmath,complex math)
>>> import cmath
>>> cmath.sqrt(-1)
1j
1.8.值被转换为合理行使的字符串
(1)通过str函数,它会把值转换成合理形式的字符串
(2)repr会创建一个字符串,它以合法的Python表达式的形式来表示值
1.9.除非对input有特别的需要,否则应该尽可能使用raw_input函数
1.10.如果需要写一个非常长的字符串,它需要跨多行,那么,可以使用三个引号代替普通引号。
1.11.对于长路径,可能需要很多反斜杠
使用原始字符串,以r开头
=======================================================================================================
第二章 数据结构
2.1.序列操作
2.1.1索引
2.1.2分片
分片操作对于提取序列的一部分很有用。第一个索引是需要提取部分的第一个元素的编号,而最后的索引则是分片之后剩下部分的第一个元素的编号
>>> numbers = [1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6]
[4,5,6]
>>>numbers[0:1]
[1]
>>> numbers[-3:]
[8,9,10]
>>> numbers[:3]
[1,2,3]
>>> numbers[:]
[1,2,3,4,5,6,7,8,9,10]
第三个参数为步长,可以为负数,从右向左提取
2.1.3 初始化一个长度为10的列表
>>> sequence = [None]*10
2.14. 检查一个值是否在序列中,可以使用in运算符
2.15. extend跟连接操作的区别是:extend方法修改了被扩展的序列;而原始的连接则不然,它会返回一个全新的列表。
2.16. pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值
pop方法是唯一一个既能修改列表又返回元素值的列表方法。
入栈、出栈:append、pop模拟
队列:insert、pop。。。。。。。更好的解决方案是使用collection模块中的deque对象
2.17. reverse方法将列表中的元素反向存放
2.18. sort() 修改原数据,返回none
>>> x = [4,6,2,1,7,9]
>>> y = x[:]
>>> y.sort()
>>> x
[4,6,2,1,7,9]
>>> y
[1,2,4,6,7,9]
>>> x = [4,6,2,1,7,9]
>>> y = sorted(x)
>>> y.sort()
>>> x
[4,6,2,1,7,9]
>>> y
[1,2,4,6,7,9]
2.4.1. tuple函数
以一个序列作为参数并把它转换为元组
2.4.2. 元组不可替代的原因
(1) 元组可以在映射(和集合的成员)中当作键使用——而列表不行
(2) 元组作为很多内建函数和方法的返回值存在,也就是说你必须对元组进行处理。只要不尝试修改元组,那么,“处理”元组在绝大多数情况下就是把它们当作列表来进行操作。
====================================================================================================================================
第三章 字符串
3.1 字符串都是不可变的
3.4.6. strip 方法返回去除两侧(不包括内部)空格的字符串
=====================================================================================================================================
第四章 字典
4.2.1 可以用dict函数,通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典
dict函数也可以通过关键字参数来创建字典
4.2.2 字典跟列表的区别
键类型:字典的键不一定为整型数据(但也可能是),也可能是其他不可变类型,比如浮点型(实型)、字符串或者元组。
自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字典就会建立新的项。而(在不适用append方法或者其他类似操作的情况下)不能将值关联到列表范围之外的索引上
成员资格:表达式k in d(d为字典)查找的是键,不是值。表达式 v in l(l为列表)则用来查找值,而不是索引。这样看起来好像有些不太一致,但是当习惯以后就会感觉非常自然了。
4.3 内置方法
clear()
copy() 浅拷贝,深拷贝(deepcopy)
fromkeys方法使用给定的键建立新的字典,每个键默认对应的值为None
>>> {}.fromkeys(['name' , 'age'])
{'age':None,'name':None}
get()
items() 方法将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键,值)。但是项在返回时并没有特殊的顺序。
iteritems返回一个迭代器而不是列表
keys方法将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器
pop方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除。
popitem方法类似于list.pop,后者会弹出列表的最后一个元素。但不同的是,popitem弹出随机的项,因为字典并没有“最后的元素”或者其他有关顺序的概念。
setdefault方法在某种程度上类似于get方法,就是能够获得与给定键相关联的值,除此之外,setdefault还能在字典中不含有给定键的情况下设定相应的键值。
update()
values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)。与返回键的列表不同的是,返回值的列表中可以保护重复的元素
>>> print "未完待续"