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]:
浙公网安备 33010602011771号