Python学习3-数据类型

Python定义变量时并不需要指定数据类型,但实际使用还是区分不同类型的。比如接口调用的参数,最好在正式业务逻辑前都做数据类型的判断。

基本的数据类型

整数

Python支持任意长度的正负整数,写法和数学中的写法一样且运算永远是精确的,如下40位的整数加法。

>>> 1234567890123456789012345678901234567
1234567890123456789012345678901234567891

浮点数

浮点数也就是小数,可以用数学中的写法,或者用科学计数法。浮点数运算则可能会有四舍五入的误差,如下0.0000099记为9.9e-6,0.95625845/3=0.31875281666666666666666666666667但是在python中丢失了精度。

>>> 9.9e-6+100
100.0000099
>>> 0.95625845/3
0.31875281666666666

布尔值

布尔值只能为True或者Flase(注意:python是区分大小写的),也可以通过运算获取布尔值,常用于条件判断。

>>> true
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> True
True
>>> false
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'false' is not defined
>>> False
False
>>> 1>2
False
>>> 1>0
True

布尔值可以用and、or、not运算。

  • and
    与运算,需要所有值都为True才返回True。
  • or
    或运算,其中一个值为True则返回True。
  • not
    非运算,True变为False,False变为True。
>>> True and False and True
False
>>> True and True and True
True
>>> True or False or False
True
>>> False or False or False
False
>>> not True
False
>>> not False
True

字符串

字符串是以单引号’或双引号”括起来的任意文本。

>>> "hello s"
'hello s'
>>> 'hello s'
'hello s'

字符串中有特殊字符时,可以使用转义字符“\”来标识,如果不想转义字符串中的“\”,使用r”表示”内部的字符串默认不转义。\n为换行标识,也可以使用”’ ”’括起来换行。

>>> print(" I'm zhangsan")
 I'm zhangsan
>>> print(' I'm zhangsan')
  File "<stdin>", line 1
    print(' I'm zhangsan')
              ^
SyntaxError: invalid syntax
>>> print(' I\'m zhangsan')
 I'm zhangsan
>>> print(' I\'m zhangsan\nWath\'s your name?')
 I'm zhangsan
Wath's your name?
>>> print(r"hello \n")
hello \n
>>> print('''hello
... tom''')
hello
tom

空值

空值用None表示。None不能认为是0或者”,而是一个特殊的值。(类似于Java中的null)


列表

列表分为有序的动态列表list、和初始化后不可修改的元组tuple。

  • list
    list是一种有序的集合,可以动态添加和删除其中的元素。用中括号[]定义。
>>> mylist = []
>>> mylist
[]
>>> mylist = ['a','b','c','d','e']
>>> mylist
['a', 'b', 'c', 'd', 'e']

list用索引访问每一个位置的元素,索引是从0开始,-1表示最后一个位置。

>>> mylist = ['a','b','c','d','e']
>>> mylist[0]
'a'
>>> mylist[1]
'b'
>>> mylist[-1]
'e'

可使用函数len()获取list元素个数。

>>> mylist = ['a','b','c','d','e']
>>> len(mylist)
5

使用list自带的函数append、insert和extend添加元素。append是添加到末尾,insert可以添加到指定位置,extend将一个list添加到另一个list末尾。

>>> mylist = ['a','b','c','d','e']
>>> mylist.append('f')
>>>mylist 
['a', 'b', 'c', 'd', 'e', 'f']
>>> mylist.insert(1,'1')
>>>mylist 
['a','1', 'b', 'c', 'd', 'e', 'f']

删除list中元素有三种方式:pop、remove、del
pop()为list自带函数,返回值为删除的元素,不加参数默认为删除最后一个。
remove()也为list自带参数,删除某一个值,如果list中有多个,都会删除。
公共函数del(),可以删除list中指定位置的值。

>>> mylist = ['a','b','c','d','e']
>>> mylist.pop()
'e'
>>> mylist
['a', 'b', 'c', 'd']
>>> mylist.pop(1)
'b'
>>> mylist
['a', 'c', 'd']
>>> mylist.remove('a')
>>> mylist
['c', 'd']
>>> mylist.remove(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> del(mylist[1])
>>> mylist
['c']

list中的元素可以为不同类型,也可以为另一个list作为元素。

>>> mylist = [1,'a',2]
>>> mylist
[1, 'a', 2]
>>> mylist.append(['3',4])
>>> mylist
[1, 'a', 2, ['3', 4]]
>>> mylist[3][1]
4
  • tuple
    元组tuple是另外一种有序的集合,和list相似,不过初始化后就不能修改。用括号()定义。
    一个元素的元组定义需要在后面加“,”以消除和数字(1)=1的歧义。
>>> t = ()
>>> t
()
>>> t = (1)
>>> t
1
>>> t = (1,)
>>> t
(1,)
>>> t = (1,2,3)
>>> t
(1, 2, 3)

元组中元素也是用索引访问,并且当中的元素是不可变的。

>>> t = (1,2,3)
>>> t[0]
1
>>> t[0]=4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

字典

dict

dict(dictionary),类似java中的map,使用键-值(key-value)对的方式存储。使用大括号{}定义。

>>> d = {}
>>> d
{}
>>> d = {"a":None,"b":0,"c":"abc"}
>>> d
{'a': None, 'b': 0, 'c': 'abc'}
{}

dict使用[key值]访问元素,如果key不存在会报错,可以使用in判断key是否在dict中存在,如果存在再去取。

>>> d = {"a":None,"b":0,"c":"abc"}
>>> d["a"]
>>> d["b"]
0
>>> d["d"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'd'
>>> 'a' in d
True
>>> 'd' in d
False
>>>

也可以使用get()函数获取元素,如果key不存在会返回None

>>> d = {"a":None,"b":0,"c":"abc"}
>>> d.get("b")
0
>>> d.get("d")
>>>

dict添加元素,可以直接赋值。

>>> d
{}
>>> d['a']='abc'
>>> d
{'a': 'abc'}

dict删除元素有三种方法

  • pop
    pop函数,必须带key值,删除指定的键值对。
  • del
    del函数,删除dict中某个值。
  • clear
    clear函数,清空dict。
>>> d.pop('a')
>>> d
{'b': 0, 'c': 'abc'}
>>> del(d['b'])
>>> d
{'c': 'abc'}
>>> d.clear()
>>> d
{}

dict与list比较,查询和插入速度快,但是占用内存比较大。

Set

set和dict类似,也是一组key的集合,值不能重复。使用set()定义,传入一个list参数。
插入重复值时只会覆盖,使用add函数添加元素,remove函数删除元素。

>>> s = set(['a','a','b'])
>>> s
{'a', 'b'}
>>> s.add(3)
>>> s
{3, 'a', 'b'}
>>> s.remove('a')
>>> s
{3, 'b'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值