Python学习

来源:互联网 发布:滴滴司机 知乎 编辑:程序博客网 时间:2024/05/24 13:28

开博第一篇文章本来想写前端相关的,由于某些原因,开始学习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.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 "未完待续"


原创粉丝点击