python六种基本数据类型

python六种基本数据类型

Python3 中有六个标准的数据类型:

  • number(数字)

  • string(字符串)

  • tuple(元组)

  • list(列表)

  • set(集合)

  • dictionary(字典)

  • 前三种为不可变数据(不可变数据类型在第一次声明赋值声明的时候, 会在内存中开辟一块空间, 用来存放这个变量被赋的值, 而这个变量实际上存储的, 并不是被赋予的这个值, 而是存放这个值所在空间的内存地址, 通过这个地址, 变量就可以在内存中取出数据了. 所谓不可变就是说, 我们不能改变这个数据在内存中的值, 所以当我们改变这个变量的赋值时, 只是在内存中重新开辟了一块空间, 将这一条新的数据存放在这一个新的内存地址里, 而原来的那个变量就不在引用原数据的内存地址而转为引用新数据的内存地址了),后三种为可变数据。

  • 注意(区别C语言):1、变量不需要声明,且变量赋值后变量才会真正被创建;2.变量没有类型 3. 多个变量可以同时赋值

  • 内置函数 type(), 用以查询变量的类型

  • 问题:

    1.变量为什么不需要声明类型?

    这个也与python中a代表地址有关,其它语言中把值赋给a的同时也限制了a的类型,其它语言中a代表的就是一个实实在在的量,而python中a代表的是指向这个量的地址,这个地址可以指向任何类型数据的存储空间,指向整型,a就是整型,指向字符串,a就是字符串,指向函数对象,a就是函数对象,这就是python中的隐式声明。

    另一种解释:Python的变量本事是个指针。当Python解释器执行number=1的时候,实际上先在内存中创建一个int对象,然后将number指向这个int对象的内存地址,也就是将number“贴”在int对象上

    2.变量怎么回收?

    Python中的del是将这个对象的指向删除,当这个对象没有任何指向的时候,Python虚拟机才会删除这个对象。

    3.内置函数 type() 与 isinstance() 区别

    type(obj):用于判断一个未知对象的类型

    isinstance(obj1,obj2):用于判断对象obj1是否是另一个类obj2的实例,简单说就是判断obj1是不是属于obj2类型,或者理解为obj1和obj2类型是不是一样。

    type() 不会认为子类是一种父类类型,isinstance() 认为子类是一种父类类型。

    class A:
        pass
    
    class B(A):
        pass
    
    isinstance(A(), A)  # returns True
    type(A()) == A      # returns True
    isinstance(B(), A)    # returns True
    type(B()) == A        # returns False
    

number(数字)

  • int(整型), float(浮点型), bool, complex(复数类型) 四种基本类型,用于存储数值

  • 类型转换:int(),float()…

  • 数学运算 :+、-、* 都与C语言相同 / 表示做除法(结果一定为浮点数) // 表示做除法(结果只保留整数部分,去掉小数部分)% 表示做求余运算** 表示做幂次方运算 (注意运算次序)

string(字符串)

#!/usr/bin/env python3

str1 = 'Hello'

print(str1[0])
  • 字符串需要用单引号 ’ ’ 或双引号 " " 括起来 三引号–注释
  • 字符串也是一种特殊的元组。不能改变字符串中的某个元素的值
  • String类型运算:+ 对多个字符串进行连接 * 重复输出字符串n次 字符串名[: ] 截取字符串的一部分(最左边索引值为0,最右边索引值为-1,倒数第二索引值为-2…)字符串名[ ] 通过索引获取字符串中单个字符 in/not in 判断单个字符是/不是在字符串中 r/R 将转义字符等特殊字符也当成普通字符
  • 基础操作:索引、切片、乘法-多次输出、成员资格检查、长度len()、最大值、最小值

list (列表)

#!/usr/bin/env python3

list1 = [True, 1, 'Hello']

print(list1)
  • list 的数据项可以不同类型
  • list 的各个元素可以改变
  • list 是使用 [ ] 方括号包含各个数据项
  • + 多个列表进行合并成一个列表 * 列表重复输出多次 in 某个项是否在列表中
  • 可对列表项进行添加、修改、删除
  • 方法:appand(appand用于将一个对象附加到列表尾部)extend(将列表附加到列表) pop(从列表中删除一个元素—没有添加索引默认最后一个元素,并返回这一元素)remove(用于删除第一个为指定值的元素)reverse(按相反的顺序排列列表中的元素)sort(对列表顺序排列)

tuple (元组)

#!/usr/bin/env python3

tuple1 = (True, 1, 'Hello')

print(tuple1)
  • tuple 是使用 ( ) 小括号包含各个数据项
  • tuple 与 list 的唯一区别是 tuple 的元素是不能修改,而 list 的元素可以修改

set(集合)

  • set 是一个无序不重复元素的序列
  • 使用大括号 { } 或者 set() 函数创建集合
  • 用 set() 创建一个空集合
  • 使用 set 可以去重


set1 = {'me', 'you', 'she', 'me'}

print(set1)

1.怎么理解 tuple, list 是有序的序列,而 set 是无序的序列

tuple 或 list 的定义元素顺序和输出一样,而 set 不是。

dictionary(字典)

  • 字典的每个元素是键值对,无序的对象集合
  • 字典是可变容器模型,且可存储任意类型对象
  • 字典可以通过键来引用,键必须是唯一的且键名必须是不可改变的(即键名必须为Number、String、元组三种类型的某一种),但值则不必
  • 字典是使用 { } 大括号包含键值对
  • 创建空字典使用 { }

dict1 = {'name': 'steve', 'age': 18}

print(dict1)

附加资料:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 196
    点赞
  • 1046
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值