zoukankan      html  css  js  c++  java
  • 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  #这里再打印字典,会报字典不存在就是没有被定义的错误
  • 相关阅读:
    启动hadoop 2.6遇到的datanode启动不了
    .net开发遇到的一个问题
    there are 0 datanode.....
    更改HDFS权限
    VMware提示:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。解决方案
    Hive学习
    linux下mysql安装
    (5.2)mysql高可用系列——测试环境部署
    【转】mysql索引的探究
    【3.1】【mysql基本实验】mysql复制(主从复制/异步复制/半同步复制,一主一从)
  • 原文地址:https://www.cnblogs.com/wspcoding/p/5493731.html
Copyright © 2011-2022 走看看