作为脚本语言,python语言格式严格,同时和编译语言有些许类似,格式化输出,强类型等。感觉使用起来不是很顺手,同时,我一直对其的理解不是很清晰。直到自己动手搭建python环境后,发现python在某些方面确实比较方便。首先,强大的模块包,使大家可以不必重复造轮子,轻松地完成相应功能,而且python的包安装起来也十分方便(python setup.py install)。其次,python语法十分灵活,可以避免大家苦心构造所需的变量形式,极大地减轻了人力消耗。好了,这就是目前对python肤浅的理解。接下来,对一些零散的知识点记录一下,方便今后查看O(∩_∩)O哈哈~
1、if not x 判断真假
`if x is not None`和`if not x is None`写法等价,推荐`if x is not None`
使用if not x这种写法的前提是:必须清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。
参考:http://blog.csdn.net/sasoritattoo/article/details/12451359
2、id和is
(ob1 is ob2) 等价于 (id(ob1) == id(ob2))
"==" 与 "is"的区别:"=="是比较内容相当,如变量值相等;"is"是比较对象的id是否相等。下面是测试:
>>> a = 1
>>> b = 1
>>> id(a)
505300120
>>> id(b)
505300120
>>> print(a == b)
True
>>> print(a is b)
True
>>> a = 1.0
>>> b = 1.0
>>> id(a)
11372688
>>> id(b)
11372608
>>> print(a ==b)
True
>>> print(a is b)
False
当a,b为1的时候id相同,而为1.0的时候不同,这种情况在string字符串的时候也会出现,即当很短的a,b赋值很短的字符串的时候,它们的id值相同,而很长的则不会;
可以得到一个简单的结论就是:解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了
3. 判断变量是否在list之中 if x not in list;if x in list
4、列表推导式 [x for x in list]
5、元组与列表类似,不同之处在于元组的元素不能修改。也可以按下标取值等
参考:http://www.runoob.com/python/python-tuples.html python元组
6、列表和元组可以连续赋值
x, y = (1,2)或 (x, y) = (1,2)
x=1,y=2
# Assign values from a list
(r,g,b) = ["Red","Green","Blue"]
assert r == "Red"
assert g == "Green"
assert b == "Blue"
# Assign values from a tuple
(x,y) = (1,2)
assert x == 1
assert y == 2
7、__init__.py:可以为空,只要它存在,就表明此目录应被作为一个package处理。python可以导入模块和函数
参考:http://www.cnblogs.com/BeginMan/p/3183629.html 深入Python(2): __init__.py 用法
8、连接数据库用MySQLdb返回元组,可以配置返回列表
9、常用函数
range
>>>range(5)
>>>[0,1,2,3,4]
join
>>> str = 'goujinping'
>>> ','.join(str)
'g,o,u,j,i,n,p,i,n,g'
split
>>> str = "Line1-abcdef
Line2-abc
Line4-abcd"
>>> str.split( )
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
append
>>>aList = [123, 'xyz', 'zara', 'abc']
>>>aList.append( 2009 )
>>>print "Updated List : ", aList
Updated List : [123, 'xyz', 'zara', 'abc', 2009]
10、脚标灵活,可以为负,脚标从0开始。[]不包括最右面的元素
参考:http://woodpecker.org.cn/diveintopython/native_data_types/lists.html
11、for强大,可以按行读取文件。
for line in open("test.txt")
for index,val in list