python所支持的数据类型:
整型、长整型、布尔型、浮点型、复数、字符串、列表(list)、元组(Tuple)、字典(Dict)、object
python能支持理论意义上的长整型,如C#中的长整型是Int64,即最大值为2的64次方,而python中的长整型只与机器的虚拟内存大小有关,你完全不用考虑溢出这样的异常。
python是一种动态语言,虽然在定义变量时无需定义变量的类型,但并不意味着在运行的过程中,你可以随时更改变量的类型,所以,python是一种强类型的动态语言,它与asp/javascript/php完全不一样,比如:
>>> a=123
>>> print input + a
Traceback (most recent call last):
File "", line 1, in
TypeError: cannot concatenate str and int objects
>>>
此时出现了一个异常“无法将字符串类型与数字类型的数据做连接操作”,而这样的语法在php/asp中是完全可行的。
bool型在python中用True/False来表示,当然,空字符串、0、空元组、空列表、空字典都会认为一个False值。
字符串是位于成对的单引、双引、三单引、三双引之间的字符。
列表类似于c#中的ArrayList,通过下标来访问。
元组是一个只读的列表。
字典类似于c#中的hashtable,它的键必须是可被hash的。
列表的定义方法:
>>> li = [1,2,3,4,5]
>>> li_1 = []
>>> li_2 = range(10)
>>> li
[1, 2, 3, 4, 5]
>>> li_1
[]
>>> li_2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
元组的定义与列表类似,只是把[]换成了(),但要注意:如果元组中只有一个元素,也要在该元素的后面加上,号
>>> tu = (1,2,3)
>>> tu_2 = (2) #这里会认为tu_2是一个int类型
>>> type(tu)
>>> type(tu_2)
>>> tu_2 = (2,)
>>> type(tu_2)
字典用大括号标识,多个元素用,分开,这点跟Json一样
>>> dic = {name:yibin,email:[email protected]}
>>> type(dic)
>>> dic
{name: yibin, email: [email protected]}
可以用keys()方法得到该字典的键,用values()方法得到值,用items()方法得到以键-值为一组的列表
[name, email]
[yibin, [email protected]]
[(name, yibin), (email, [email protected])]
可以把多个列表相加,如:
a = [1,2,3,4]
b = [5,6,7,8]
c = a+b
print a
print b
print c
a.append(b)
c.extend(b)
print a
print c
运行结果:
[1, 2, 3, 4]
[5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, [5, 6, 7, 8]]
[1, 2, 3, 4, 5, 6, 7, 8, 5, 6, 7, 8]
请按任意键继续. . .
注意看append与extend方法的区别。
想得知list/tuple/str/dict有哪些可用的方法和属性,可以用dir函数;可以用help()函数获取相应的帮助
>>> dir(list)
[__add__, __class__, __contains__, __delattr__, __delitem__, __delsli
ce__, __doc__, __eq__, __ge__, __getattribute__, __getitem__, __gets
lice__, __gt__, __hash__, __iadd__, __imul__, __init__, __iter__,
__le__, __len__, __lt__, __mul__, __ne__, __new__, __reduce__, __r
educe_ex__, __repr__, __reversed__, __rmul__, __setattr__, __setitem__
, __setslice__, __str__, append, count, extend, index, insert, p
op, remove, reverse, sort]
>>> dir(tuple)
[__add__, __class__, __contains__, __delattr__, __doc__, __eq__, __
ge__, __getattribute__, __getitem__, __getnewargs__, __getslice__, __g
t__, __hash__, __init__, __iter__, __le__, __len__, __lt__, __mul_
_, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __rmul__,
__setattr__, __str__]
>>>
不要惊讶于dir(tuple)为什么没有方法可用,因为tuple是只读的。
获取关于list的extend方法的帮助:
>>> help(list.extend)
Help on method_descriptor:
extend(...)
L.extend(iterable) -- extend list by appending elements from the iterable
>>>