基础数据类型,java八大基本数据类型


 


数字

整数(int,long):整数在3版本没有大小长度分别,内存决定整数最大长度
浮点数(float):具有小数点的数,无穷小数会做精度处理
布尔(bool):非空非0为真,0或空为假
复数(complex):复数的标志为虚部以大写 “J” 或小写 “j” 结尾

1
2
3
4
>>> a = 1 #int
>>> a = 1.5 #float
>>> a = True #bool
>>> a = 2+3j #complex

字符串(str):

  • 表示方式:使用单引号 ‘abc’ ; 双引号 “abc” ; 或者这样 ‘’’abc’’’ , “””abc”””,单个字符也称作字符串
  • 索引:str[index使用index选择访问位置,索引从左向右,从0开始,从右向左,从-1开始
    index 也是我们经常称呼的下标,下标值不可大于等于字符串最大长度
  • 切片:str[start:stop:[step…]] ,切片可以获取字符串上一定区间中的值
  • 字符串其中的内容不可变,字符串不可变数据对象
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    >>> mystr = '' #创建空字符串
    >>> mystr = "a" #单个字符同样为字符串
    >>> mystr = 'abcdefg'
    >>> mystr[0] #索引值为正时,顺序从左向右取对应位置数据
    'a'
    >>> mystr[-1] #索引值为负时,顺序从右边向左取对应位置数据
    'g'
    >>> mystr[:] #未给出开始,结束索引;选择整个列表范围内的值
    'abcdefg'
    >>> mystr[:2] #切片选择0-2范围内的值,不包含索引为2的值
    'ab'
    >>> mystr[-3:] #切片选择从-3到最后位置的值
    'efg'
    >>> mystr[0:4:2] #切片选择取索引0-4范围内的值(不包含索引4),并且步长为2
    'ac'
    >>> mystr[::-1] #切片选择整个索引范围内的值,步长为负值时,为逆序
    'gfedcba'
    >>> mystr[0] = 1 #当对字符串数据对象进行值修改,报错
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'str' object does not support item assignment

列表(list):

  • 列表(list)是使用最频繁的数据之一
  • 表示方式:使用中括号,逗号分隔每个数据元素:[ ‘a’, ‘b’ , ‘c’ ]
  • 列表同样可以支持索引切片操作
  • 列表可变数据对象,列表中的数据可以被修改
  • 可以创建一个空列表,或者只有一个元素的列表
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    >>> mylist = [] #创建空列表
    >>> mylist = [1,2,3,4]
    >>> mylist[0] #索引值为正时,顺序从左向右取对应位置数据
    1
    >>> mylist[-1] #索引值为负时,顺序从右边向左取对应位置数据
    4
    >>> mylist[:] #未给出开始,结束索引;选择整个列表范围内的值
    [1,2,3,4]
    >>> mylist[:2] #切片选择0-2范围内的值,不包含索引为2的值
    [1,2]
    >>> mylist[-3:] #切片选择从-3到最后位置的值
    [2,3,4]
    >>> mylist[0:4:2] #切片选择取索引0-4范围内的值(不包含索引4),并且步长为2
    [1,3]
    >>> mylist[::-1] #切片选择整个索引范围内的值,步长为负值时,为逆序
    [4,3,2,1]
    >>> mylist[0] = 'a' #修改列表第一个位置上的值为字母'a'
    >>> mylist
    ['a',2,3,4]#列表为可变数据对象

元组(tuple):

  • 元组和列表类似,不同之处在于元组内数据不可以被修改
  • 表示方式:使用小括号,逗号分隔每个数据元素:( ‘a’, ‘b’, ‘c’ )
  • 元组同样索引和切片操作
  • 元组中的数据不可以被修改,元组不可变数据对象
  • 单纯的创建一个只含有一个元素的元组是会被解释器认为是一个实际数据对象,并不解释成元组
  • 创建只含有一个元素的元组:(1,)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> mytuple = (1,) #正确方式创建只含有一个数据的元组
>>> mytuple
(1,)#返回值为元组
>>> mytuple = (1) #错误方式创建只含有一个数据的元组
1#返回值为整型
>>> mytuple = (1, 2, 3, 4, 5)
>>> mytuple[0]
1
>>> mytuple[-1] #索引值为负时,顺序从右边向左取对应位置数据
4
>>> mytuple[:] #未给出开始,结束索引;选择整个列表范围内的值
(1, 2, 3, 4, 5)
>>> mytuple[:2] #切片选择0-2范围内的值,不包含索引为2的值
(1, 2)
>>> mytuple[-3:] #切片选择从-3到最后位置的值
(3, 4, 5)
>>> mytuple[0:4:2] #切片选择取索引0-4范围内的值(不包含索引4),并且步长为2
(1, 3)
>>> mytuple[::-1] #切片选择整个索引范围内的值,步长为负值时,为逆序
(5, 4, 3, 2, 1)
>>> mytuple[0] = 'a' #当对元组数据对象进行值修改,报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

字典(dict):

    • 字典以键值对形式存在:{ keyvalue }
    • 其中key值会进行hash运算,生成hash表,所以字典的访问效率优于普通序列数据类型(列表,元组)
    • key值由于需要通过hash,则一些可变数据类型不可以key值,而value的类型没有限制,可以是任意数据类型
    • 由于进行了hash运算,那么在内存中字典其中的数据元素是无序的,没有办法进行一些像索引切片一样的操作
      (但是在Python3.6后,字典数据类型已经被更改为有序数据类型;查阅地址;(from collections import OrderedDict))
    • 字典中的key值是唯一
    • 字典为可变数据类型

集合(set):

  • 集合:把不同元素组合在一起形成的一个数据集合
  • 集合分为两种:可变集合(set),不可变集合(frozenset)
  • 集合的内部结构和字典类似,但是不存储value,其中的元素也会进行hash运算,可以称的上是一个没有value的字典
  • 集合中数据元素不能为可变数据对象

相关内容

    暂无相关文章

评论关闭