1-3 数据类型

 

 

数字

int(整型)

在64位系统上,整数的位数为64位,取值范围为-2^63~2^63-1,即-9223372036854775808~9223372036854775807

long(长整型)

跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

注意:在Python3里不再有long类型了,全都是int

In [1]: a=2**64

In [2]: type(a)

Out[2]: int

In [3]: b=2**60

In [4]: type(b)

Out[4]: int

In [5]: c=2**564

In [6]: type(c)

Out[6]: int

float (浮点型)

即小数

>>> type(2.32)

字符串

在Python中,加了引号的字符都被认为是字符串!

那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合

In [7]: name="lewen"

In [8]: age="23"

In [9]: age2=23

In [10]: msg='''my name is lewen ,I am 23 years old '''

In [11]: msg = "my name is lewen,I'm 22 "

In [12]: msg = ''' I know what I need,

    ...: I know what I want,

    ...: I know what I should,

    ...: I know how to do '''

In [13]: print(msg)

I know what I need,

I know what I want,

I know what I should,

I know how to do

In [14]: name

Out[14]: 'lewen'

In [15]: age

Out[15]: '23'

In [16]: name + age

Out[16]: 'lewen23'

In [17]: name *10

Out[17]: 'lewenlewenlewenlewenlewenlewenlewenlewenlewenlewen'

注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

In [19]: age2

Out[19]: 23

In [20]: name +age2

---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

<ipython-input-20-5c3c6609ec11> in <module>

----> 1 name +age2

TypeError: must be str, not int

布尔型(bool)

布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断

但其实你们并不明白对么? let me explain, 我现在有2个值 , a=3, b=5 , 我说a>b你说成立么? 我们当然知道不成立,但问题是计算机怎么去描述这成不成立呢?或者说a< b是成立,计算机怎么描述这是成立呢?

没错,答案就是,用布尔类型

>>> a=3
>>> b=5
>>> 
>>> a > b #不成立就是False,即假
False
>>> 
>>> a < b #成立就是True, 即真
True

列表(List)

如果要把全班的人名在内存里存下来,用上面的字符串类型可以做到,但取的时候不方便。

names = "Alex,Jack,Rain,Rachel,Mack..."

你print(names)它打印的是所有人的信息,如果想取出Rain,没办法(可以用字符串切割方式,但是很麻烦)。此时,用列表就比较合适。

>>> names = ["Alex","Jack","Rain","Rachel","Mack"]
>>> names[2] #为何names[2]就能取出Rain?
'Rain'

因为列表的是通过下标来标记元素位置的。 下标从0开始,每添加一个元素,就自动+1

元素的添加有2种方式,插入、追加,插入指可以插入到列表的任意位置

插入

>>> names
['Alex', 'Jack', 'Rain', 'Rachel', 'Mack']
>>> names.insert(3,"小明")  #3代表你想插入的位置
>>> names
['Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack']
>>> 

追加

添加到列表的尾部

>>> names
['Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack']
>>> names.append("小强")
>>> names
['Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack', '小强']

修改

直接根据下标找到元素重新赋值即可

>>> names[0] = "金角大王Alex"
>>> names
['金角大王Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack', '小强']

删除元素

这个不是通过下标了,是根据元素名子。

>>> names
['金角大王Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack', '小强']
>>> names.remove("小明")
>>> names
['金角大王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '小强']

上面的命令会删除从左开始找到的第一个小明, 如果有多个小明,则只删除找到的第一个。

判断元素是否在列表里

>>> names
['金角大王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '小强']
>>> 
>>> "Mack" in names
True

字典类型

In [1]: a={'name':"lewen"}

In [2]: a.fromkeys
Out[2]: <function dict.fromkeys(iterable, value=None, /)>

In [3]: a.fromkeys()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-9d34a8419b22> in <module>
----> 1 a.fromkeys()

TypeError: fromkeys expected at least 1 arguments, got 0

In [4]: a.fromkeys("name")
Out[4]: {'n': None, 'a': None, 'm': None, 'e': None}

In [5]: a.fromkeys('name')
Out[5]: {'n': None, 'a': None, 'm': None, 'e': None}

In [6]: a.fromkeys('name,name')
Out[6]: {'n': None, 'a': None, 'm': None, 'e': None, ',': None}

In [7]: a.items()
Out[7]: dict_items([('name', 'lewen')])

In [8]: a.keys()
Out[8]: dict_keys(['name'])

In [9]: a.values()
Out[9]: dict_values(['lewen'])

In [10]: a.popitem("name")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-10-0c98f7f2108d> in <module>
----> 1 a.popitem("name")

TypeError: popitem() takes no arguments (1 given)

In [11]: a.popitem()
Out[11]: ('name', 'lewen')

In [12]: a
Out[12]: {}

In [13]: a.update("name"="lewen2")
  File "<ipython-input-13-04ee2899c746>", line 1
    a.update("name"="lewen2")
            ^
SyntaxError: keyword can't be an expression


In [14]: a.update("name":"lewen2")
  File "<ipython-input-14-b3b649d35dfa>", line 1
    a.update("name":"lewen2")
                   ^
SyntaxError: invalid syntax


In [15]: a.update({'name':'lewen2'})

In [16]: a.pop()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-16-9c070c907602> in <module>
----> 1 a.pop()

TypeError: pop expected at least 1 arguments, got 0

In [17]: a
Out[17]: {'name': 'lewen2'}

In [18]: a.pop('name')
Out[18]: 'lewen2'

In [19]: a.update({'name':'lewen3'})

In [20]: a.setdefault('dek')

In [21]: a
Out[21]: {'name': 'lewen3', 'dek': None}

In [22]: a.setdefault('test',d='setnone')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-22-908e608a1759> in <module>
----> 1 a.setdefault('test',d='setnone')

TypeError: setdefault() takes no keyword arguments

In [23]: a.setdefault('test','setnone')
Out[23]: 'setnone'

In [24]: a
Out[24]: {'name': 'lewen3', 'dek': None, 'test': 'setnone'}

In [25]: a.setdefault('dek','dek')

In [26]: a
Out[26]: {'name': 'lewen3', 'dek': None, 'test': 'setnone'}

In [27]: b=a.copy()

In [28]: b
Out[28]: {'name': 'lewen3', 'dek': None, 'test': 'setnone'}

In [29]: a.popitem()
Out[29]: ('test', 'setnone')

In [30]: a
Out[30]: {'name': 'lewen3', 'dek': None}

In [31]: b
Out[31]: {'name': 'lewen3', 'dek': None, 'test': 'setnone'}

In [32]: a.clear()

In [33]: q
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-33-e222fcdf3350> in <module>
----> 1 q

NameError: name 'q' is not defined

In [34]: a
Out[34]: {}

In [35]: b
Out[35]: {'name': 'lewen3', 'dek': None, 'test': 'setnone'}

In [36]: b.fromkeys((name))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-36-2de96f37eaa1> in <module>
----> 1 b.fromkeys((name))

NameError: name 'name' is not defined

In [37]: b.fromkeys(('name',))
Out[37]: {'name': None}

In [38]: b
Out[38]: {'name': 'lewen3', 'dek': None, 'test': 'setnone'}

In [39]: b.fromkeys(('name','dek'))
Out[39]: {'name': None, 'dek': None}

In [40]: b.fromkeys(('name','dek','test'))
Out[40]: {'name': None, 'dek': None, 'test': None}

In [41]: b
Out[41]: {'name': 'lewen3', 'dek': None, 'test': 'setnone'}

In [42]:

 

posted @ 2019-11-19 08:16  Fadewalk  阅读(181)  评论(0)    收藏  举报