我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python内建类型与标准类型

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python内建类型与标准类型

前言

全可以访问相同的对象, 因此我们讲 这种变量名也叫对象的 "引用".

验证1:

a = 2
b = 3
print(id(a),id(b))  #140734889681584 140734889681616
b = 2
print(id(b))    #140734889681584

验证2:

b = 3
print(id(b))    #140734889681616
b +=1
print(id(b))    #140734889681648

相加其实是创建一个新的对象,然后把这个标签b移到这个新的对象上

思考: 为什么Python的变量是这样的? 和C/C++差异这么大捏?

  • 空间考虑: 比如一个数字2, 在Python中只有这么一个数字2; 而一个C/C++程序中可能会有N个2.
  • 时间考虑: 比如 a=b 这样的赋值, 只是修改了一下贴标签的位置, 不需要对对象进行深拷贝. 为什么Python可以这么做, 而C/C++不能这样设计呢?
    • C++中的赋值相当于深拷贝, a = 100 b = a ->内存中存放了两份100
    • java和python相当于浅拷贝 a = 100 b = a ->a和b都是100的引用,内存中只存放了一份100

Python的GC机制, 是这样的设定的基础.

理解对象和类型

关于不可变类型和可变类型

  • python中的 int,str,float,tuple其实是不可变类型的变量 (即:没办法修改一个已经存在的int类型的对象的值),只能创建新的,不能修改已经有的
s = "hehe"
s[0] = 'a'; #error 报错 TypeError: 'str' object does not support item assignment

s = 'a'+s[1:]   #只能重新创建
print(s)    #aehe
#原来的hehe对象已经销毁,s贴在了aehe这个对象的身上

列表和字典都是可变对象:

  • 有些对象是 "相似" 的, 于是我们把对象归归类. 比如把所有的整数归为一类, 把所有的浮点数对象归为一类,把所有的字符串归为一类.
  • 相同的类型的对象, 须有相同的操作. 比如, 所有的整数对象, 都可以进行加减乘除操作. 所有的字符串都可以使用切片操作.

关于动态静态强弱类型

  • Python是一种 动态强类型 编程语言.
  • 动态是指运行时进行变量类型检查; 强类型 指类型检查严格, 并且"偏向于"不允许隐式转换.

  • 动态类型:一个变量在运行过程中类型发生变化
  • 静态类型:一个变量在运行过程中类型不能发生变化
  • 强类型:越不支持隐式类型转化,类型越强
  • 弱类型:越支持隐式类型转化,类型越弱

类似的, C语言是一种静态弱类型语言. Java的类型检查更为严格, 一般认为是静态强类型, 而Javascript则是动态弱类型

如:

int a = 10; long b = 20; a = b ->C++可以 java不可

int a = 10; bool b = false; a = b ->C++可以,把false当成0 java不可

动态类型:小规模下更好,使用灵活

大规模常用静态类型,否则多人协作容易有歧义

但是类型:越强越好

标准类型

  • 整型
  • 浮点型

注意:如果想要比较两个浮点数是否相同,不能直接比较,因为会有精度损失,要做差比较

  • 复数型
  • 布尔型
  • 字符串
  • 列表
  • 元组
  • 字典

其它内建类型

  • 类型
  • NULL对象(None)
  • 文件
  • 函数
  • 模块

类型的类型

前面我们说, 类型也是对象

print(type(type(100)))  #<class 'type'>  
print(id(type(100)))    #140734889206240

None ->空类型

Python有一个特殊的类型, 称为NoneType. 这个类型只有一个对象, 叫做None

print(type(None))   #<class 'NoneType'>
  • NoneType类似于C语言中的void
  • None类似于C语言的空指针NULL(NULL的含义:特指0号地址的内存)
  • None这个对象没啥有用的属性, 它的布尔值为False
def func():
    print("haha")
ret = func()    #打印haha     函数没有返回值却接收了,就是None
print(ret)  #打印None,

内建类型的布尔值

所有的标准对象, 均可以用于布尔测试(放到if条件中).

下列对象的布尔值是False:

  • None
  • False
  • 所有值为0的数字(0, 0.0, 0.0 + 0.0j (复数))
  • "" (空字符串)
  • [] (空列表)
  • () (空元组)
  • {} (空字典)
if "":
    print("True")
else:
    print("False")
#打印:False

其他情况下, 这些内建对象的布尔值就是True.

到此这篇关于python内建类型与标准类型的文章就介绍到这了,更多相关python内建类型 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python内建类型与标准类型

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python标准类型分类

一、 存储模型依据变量在内存中的组织分类。Python的类型, 就象绝大多数其它语言一样,能容纳一个或多个值。一个能保存单个字面对象的类型我们称它为原子或标量存储,那些可容纳多个对象的类型,我们称之为容器存储。(容器对象有时会在文档中被称为
2023-01-31

Python随手笔记之标准类型内建函数

Python提供了一些内建函数用于基本对象类型:cmp(),repr(),str(),type()和等同于repr()的(' ')操作符 (1)type()type的用法如下:type(object)接受一个对象作为参数,并返回它的类型。他
2022-06-04

Python-typing: 类型标注与支持 Any类型详解

Any docs Any 是一种特殊的类型。 静态类型检查器将所有类型视为与 Any 兼容,反之亦然, Any 也与所有类型相兼容。 这意味着可对类型为 Any 的值执行任何操作或方法调用,并将其赋值给任何变量:from typing im
2022-06-02

Python学习 :六个标准数据类型

一、Numbers(数字类型)数字类型主要分为两种—— 整数(Integer)与 浮点数(Float)整数分为整型和长整型(在Python3中已经不再区分为整型与长整型,统一称为整型)注意:数字类型是不可变的数据类型            
2023-01-30

Python标准库之typing的用法(类型标注)

PEP 3107引入了功能注释的语法,PEP 484 加入了类型检查 标准库 typing 为类型提示指定的运行时提供支持。 示例:def f(a: str, b:int) -> str:return a * b如果实参不是预期的类型:但是
2022-06-02

python五大标准数据类型的介绍

这篇文章主要介绍“python五大标准数据类型的介绍”,在日常操作中,相信很多人在python五大标准数据类型的介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python五大标准数据类型的介绍”的疑惑有所
2023-06-02

Python内建类型float源码分析

这篇文章主要介绍“Python内建类型float源码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python内建类型float源码分析”文章能帮助大家解决问题。1 回顾float的基础知识1.
2023-06-30

Python内建类型dict源码分析

本篇内容主要讲解“Python内建类型dict源码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python内建类型dict源码分析”吧!深入认识Python内建类型—&mdas
2023-07-05

Python内建类型int源码分析

今天小编给大家分享一下Python内建类型int源码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。问题:对于C语言,下面
2023-06-30

Python内建类型str源码分析

这篇文章主要讲解了“Python内建类型str源码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python内建类型str源码分析”吧!1 Unicode计算机存储的基本单位是字节,由8
2023-06-30

云服务器类型划分标准

云服务器可以按照以下标准来进行分类:按照服务器的处理器架构来分,可以分为IntelliJIDEA、ARMv8-GPU、Xen等不同的服务器类型。按照云服务器的存储类型来分,可以分为云硬盘、云内存、云闪存等不同的云服务器类型。按照云服务器的部署方式来分,可以分为私有云、公有云和混合云等不同的云服务器类型。按照云服务器的数据备份方案来分,可以分为本地备份、云备份、远程备份等不同的云服务器类型。按照云服务器的服务类型来...
2023-10-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录