python的数据类型

 Python的数据类型包括以下几种:

1.整数型--int

  • 比如1,2,3,这些我们数学上常用的整数,都是整数
  • 还包括负整数,但是不包括小数
>>>a=8
>>>type(a)
<class 'int'>

2.长整数--long

  • 32位系统上是2**31-1,64位系统上是2**63 -1,超出位数,python会转用高精度去计算,可以是无限大的整
  • 版本2.7.11以上,如果整数超出位数的话会自动转为长整数,以前是在整数后面加个小写或者大写的l
#py2.7.11
>>> b=999999999999999999999999999999999999999999
>>> type(b)
<type 'long'>
#py3.5.1
>>>b=999999999999999999999999999999999999999999999999999
>>> type(b)
<class 'int'>

可以看到2.7.11长整数还是单独分类的,但是到了3.5.1,就没有整数和长整数之分了

 3.浮点数--float

  • 就是带小数的数,比如
>>> a=1.35
>>> type(a)
<class 'float'>

4.复数--complex

  • 没用过,查了资料,complex=-4+5j,包括实数和虚数,-4是实数,5j是虚数,虚数是什么?就是不真实的不存在的数吧,比如N的平方是负数的话,那么N的平方根就是虚数了

5.字符串--str

>>> Str="westber"
>>> type(Str)
<class 'str'>
>>> str="123"
>>> type(str)
<class 'str'>
>>> str=" "
>>> type(str)
<class 'str'>
  • 上面d代码可以看出一般字符串在引号之间(引号可以是单引号'',双引号"",三引号''' ''',)输入字母,数字,甚至是空格都可以

6.列表--list

假如一个列表 nums=[1, 3, 5, 7, 8,13,20];

访问列表中的值,就是列表加索引下标,要访问它的第几个元素,就用它的索引下标

复制代码
'''nums[0]: 1'''
print "nums[0]:", nums[0]
'''nums[2:5]: [5, 7, 8] 从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素'''
print "nums[2:5]:", nums[2:5]
'''nums[1:]: [3, 5, 7, 8, 13, 20] 从下标为1切割到最后一个元素'''
print "nums[1:]:", nums[1:]
'''nums[:-3]: [1, 3, 5, 7] 从最开始的元素一直切割到倒数第3个元素,但不包含倒数第三个元素'''
print "nums[:-3]:", nums[:-3]
'''nums[:]: [1, 3, 5, 7, 8, 13, 20] 返回所有元素'''
print "nums[:]:", nums[:]
复制代码

更新列表,就是对列表中的元素进行重新赋值

nums[0]="ljq";
print nums[0];

删除列表中的元素,就是del 列表名称加索引下标,如下:

del nums[0];
'''nums[:]: [3, 5, 7, 8, 13, 20]'''
print "nums[:]:", nums[:];

列表脚本操作符 列表对+和*的操作符与字符串相似。+号就是把多个列表合并为一个列表,*号是乘法运算符,列表*N表示列表里的每个元素重复N遍,如下:

print len([1, 2, 3]); #3
print [1, 2, 3] + [4, 5, 6]; #[1, 2, 3, 4, 5, 6]
print ['Hi!'] * 4; #['Hi!', 'Hi!', 'Hi!', 'Hi!']
print 3 in [1, 2, 3] #True
for x in [1, 2, 3]: print x, #1 2 3

列表截取

L=['spam', 'Spam', 'SPAM!'];
print L[2]; #'SPAM!'
print L[-2]; #'Spam'
print L[1:]; #['Spam', 'SPAM!']

列表一些数&方法,可以用help(list)查到

复制代码
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始
list.insert(index, obj) 将对象插入列表
list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素,倒转
list.sort([func]) 对原列表进行排序
复制代码

7.元组--tuple

>>> tuple_test=(2,4)
>>> type(tuple_test)
<class 'tuple'>
>>> tuple_test[0]
2
>>> tuple_test[0]=3
Traceback (most recent call last):
  File "<pyshell#33>", line 1, in <module>
    tuple_test[0]=3
TypeError: 'tuple' object does not support item assignment
#上面那句英文的意思就是元组对象不支持元素赋值操作,因为元组元素不能修改
>>> t_test=(1,[2,3,4])
>>> type(t_test)
<class 'tuple'>
>>> t_test[1][0]=5 #这里对元组的第二个元素的第一个元素进行赋值操作
>>> t_test
(1, [5, 3, 4])
>>> 没有报错,说明赋值成功,说明元组的元素如果本身是可变的,那么这个元组的元素就可以修改
>>> tup=(50)
>>> type(tup)
<class 'int'>  
>>> tup=(50,)
>>> type(tup)
<class 'tuple'>
#从上面这段代码可以看出,当元组只有一个元素时,这个元素后面要加逗号,不然它的类型默认是括号里面的50这个整数型的类型就是int

 8.字典--dictionary

dict_test={"a":1,"b":2,"c":3} ,字典的格式就是字典名称={key:value,key:value}这样的键值对格式,下面是字典的键和值得遍历

>>> for key in dict_test:
    print (key)

    
a
c
b
>>> for value in dict_test:
    print (value)

    
a
c
b
#以上可以看出,当使用for + str +in 字典名称时,遍历出来的都是字典的键
>>> for value in dict_test.values:
    print (value)

    

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    for value in dict_test.values:
TypeError: 'builtin_function_or_method' object is not iterable
#错误示范,要遍历字典的值的话就必须 for +value(这个值名称自己定义)+字典名称.values(),就会遍历出来,下面是正确示范
>>> for value in dict_test.values():
    print (value)

    
1
3
2
  • 列表是有序的对象集,字典是无序的对象集,dict = {'alex': '123', 'Ben': '234', 'Eric': '456'}

  • 字典的键值没有类型限制,无乱是整型还是字符串都可以作为键值,但是键是不可变的(就是不能重新进行赋值),值是可变的

    dict1 = { 'abc': 123 },dict2 = { 'abc': 123, 28: 66 }

  • 访问字典的值得操作,如下:
    >>> dict = {'name': 'luffy', 'age': 28, 'class': '1'};
    >>> print "dict['name']: ", dict['name']
    dict['name']:  luffy
    >>> print "dict['age']: ", dict['age']
    dict['age']:  28
  • 修改字典的元素,如下操作:

       

>>> dict = {'name': 'luffy', 'age': 28, 'class': '1'};
>>> dict["age"]=27; #修改已有键的值
>>> dict["colleage"]="shenda"; #增加新的键/值对
>>> print "dict['age']: ", dict['age']
dict['age']:  27
>>> print "dict['colleage']: ", dict['colleage']
dict['colleage']:  shenda

删除、清空操作
del dict['name']; # 删除键是'name'的元素
dict.clear(); # 清空词典所有元素
del dict ; # 删除整个字典,字典不存在

>>> del dict['name'];
>>> dict
{'age': 27, 'colleage': 'shenda', 'class': '1'}
>>> dict.clear()
>>> dict
{}
>>> dic={"a":123,"b":456}
>>> del dic
>>> dic

Traceback (most recent call last):
  File "<pyshell#37>", line 1, in <module>
    dic
NameError: name 'dic' is not defined  #这里再打印字典,会报字典不存在就是没有被定义的错误
原文地址:https://www.cnblogs.com/wspcoding/p/5493731.html