Python学习3-数据类型

来源:互联网 发布:mac装了双系统怎么切换 编辑:程序博客网 时间:2024/05/16 10:11

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

基本的数据类型

整数

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

>>> 12345678901234567890123456789012345671234567890123456789012345678901234567891

浮点数

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

>>> 9.9e-6+100100.0000099>>> 0.95625845/30.31875281666666666

布尔值

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

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

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

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

字符串

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

>>> "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 zhangsanWath's your name?>>> print(r"hello \n")hello \n>>> print('''hello... tom''')hellotom

空值

空值用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)>>> t1>>> t = (1,)>>> t(1,)>>> t = (1,2,3)>>> t(1, 2, 3)

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

>>> t = (1,2,3)>>> t[0]1>>> t[0]=4Traceback (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 dTrue>>> 'd' in dFalse>>>

也可以使用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'}
原创粉丝点击