热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python引用和对象的分离_python学习(一)——简介、对象与引用

目录python简介pythonpython特点python2与python3python解释器python开发环境(IDE)对象标识符类型数字型(numbers)序列集合映射可调

目录

python简介

python

python特点

python2与python3

python解释器

python开发环境(IDE)

对象

标识符

类型

数字型(numbers)

序列

集合

映射

可调用类型

模块

其他类型

引用

参考资料

python简介

python

python:官网](www.python.org) ,译为“大蟒蛇”,吉多·范罗苏姆(Guido van Rossum )在荷兰国家数学和计算机科学研究所设计出来的,在1989年发明,1991年正式公布。

python特点

可读性强,在一行语句过长的情况下,可以使用行连接符“\”连接;

是一门解释性语言,易于学习,便于理解,但性能较低;

易于维护;

面向对象编程;

免费开源;

具有可移植性、支持跨平台操作;

有着丰富的库;

具有可拓展性,胶水式语言;

数据库,python提供所有主要的商业数据库接口;

GUI编程;

python2与python3

python2在2000年发布,最新版本为2.7,已停止更新。

python3在2008年发布,两者之间存在兼容问题,可以使用2to3的转换工具无缝迁移。这是python自带的脚本,可以参照官网说明,简单使用方式如下:

2to3 file.py# 在命令行中使用,打印转换文件和源文件区别

2to3 -w file.py# 通过传入-w参数,将需要的修改协会原文件中

# 以上操作均是在原文件的基础上创建副本,可传入-n为直接修改

python解释器

解释器说明CPython基于C语言的解释器,最常用的解释器

Jython基于Java解释器,可以直接调用Java库

IronPython.NET平台上使用的解释器,可以直接调用.NET平台的类

PyPy使用Python语言实现的解释器

python开发环境(IDE)

IDLE为python默认安装开发环境。

自己可使用一些集成的python开发环境,如Anaconda、Pycharm等,可有效提高编程效率,还可以按需使用文本编辑器,如Sublime Text3、VS code、notepad++等,也可利用Jupyter等进行网页编程。

在cmd命令行中也可直接使用 python ex1.py 来运行python文件,以下是cmd命令行的简单认识:

">>>"是提示符

交互窗口的关闭:Ctrl + Z,quit(),直接关闭

中断程序运行:Ctrl + C

对象

对象是python中对数据的抽象,实际上是一个内存块,每一个对象由以下元素构成:

组成成分说明标识(identity)用于唯一标识对象,通常对应于对象在计算机内存中的地址 id(obj)

类型(type)对象存储的数据类型 type(obj),一个对象的类型是不可改变的

值(value)对象所存储的数据信息 print(obj),有些值可变,有些不可变,由其类型决定

注:在某些情况下有可能基于可控的条件改变一个对象的类型。但这通常不是个好主意,因为如果处理不当会导致一些非常怪异的行为。

对象绝不会被显式地销毁,当无法访问时它们可能会被作为垃圾回收。

标识符

用于变量、函数、类、模块等的名称。它有如下特定规则:

对大小写敏感;

第一个字符必须是字母、下划线;

不能使用关键字,可使用help() help>keywords查看,也可在官方文档中查询;

以双下划线开头和结尾的名称通常有特殊含义,尽量避免。

关键字如下:

False await else import pass

None break except in raise

True class finally is return

and continue for lambda try

as def from nonlocal while

assert del global not with

async elif if or yield

标识符有约定俗成命名规则如下:

类型规则例子模块和包名全小写字母,尽量简单,若多个单词之间用下划线numpy

函数名全小写字母,多个单词之间用下划线隔开identify_words

类名首字母大写,采用驼峰规则MyClass

常量名全大写字母,多个单词使用下划线隔开PI

类型

数字型(numbers)

类型说明说明++整型数包含:整型(int),布尔型(bool)整型可以表示任意大小的数字,仅仅收受内存限制

浮点型数float,表示双精度浮点数其取值范围和溢出处理受底层的极其架构控制,注意:python不支持单精度浮点数

复数型complex,以一对双精度浮点数来表示复数值z.real与z.imag可分别取实部、虚部

序列

类型说明说明++字符串string,不可变对象,由 Unicode 码位值组成的序列Python 没有 char 类型,将字符串中的每个码位表示为一个长度为 1 的字符串对象

元组tuple,不可变对象,元组中的元素可以是任意python对象由括号创建,逗号作为分隔,单元素后需要加逗号

字节串bytes&#xff0c;不可变对象&#xff0c;其中每个元素都是一个 8 位字节&#xff0c;以取值范围 0 <&#61; x <256 的整型数表示bytes(‘你好&#xff0c;世界, 123’,‘utf-8’)

列表list&#xff0c;可变对象&#xff0c;可以是任意元素构成[1, “123”&#xff0c; True]

字节数组可变数组可以通过内置的 bytearray() 构造器来创建

集合

类型说明说明&#43;&#43;集合set&#xff0c;可变对象可通过内置的 set() 构造器创建

冻结集合frozenSet&#xff0c;不可变集合可通过内置的 frozenset() 构造器创建

映射

类型说明说明&#43;&#43;字典dict&#xff0c;可变对象表示由几乎任意值作为索引的有限个对象的集合{keys: values}&#xff0c;不可作为键的值类型只有包含列表或字典或其他可变类型&#xff0c;通过值而非对象编号进行比较的值(高效的字典实现需要使用键的哈希值以保持一致性)

可调用类型

此类型可以被应用于函数调用操作。

类型说明说明&#43;&#43;用户定义函数通过def创建

实例方法用于结合类、类实例和任何可调用对象 (通常为用户定义函数)有着特殊的只读属性&#xff0c;self &#xff0c;func &#xff0c;doc &#xff0c;name &#xff0c;module

生成器函数使用 yield 语句 的函数或方法函数在被调用时&#xff0c;总是返回一个可以执行函数体的迭代器对象

协程函数使用 async def 来定义的函数或方法在被调用时会返回一个 coroutine 对象

异步生成器函数使用 async def 来定义并包含 yield 语句的函数或方法函数在被调用时会返回一个异步迭代器对象

内置函数内置函数对象是对于 C 函数的外部封装内置函数参数的数量和类型由 C 函数决定

内置方法内置函数的另一种形式&#xff0c;不同的是包含了一个传入 C 函数的对象作为隐式的额外参数

类通常是作为“工厂”来创建自身的实例

类实例任意类的实例通过在所属类中定义 call() 方法即能成为可调用的对象

模块

模块是 Python 代码的基本组织单元&#xff0c;由导入系统创建&#xff0c;由 import 语句发起调用&#xff0c;或者通过 importlib.import_module() 和内置的 import() 等函数发起调用。

其他类型

自定义类、类实例、I/O对象、内部类型

内部类型说明代码对象表示编译为字节的可执行Python 代码

帧对象表示执行帧

回溯对象表示一个异常的栈跟踪记录

切片对象切片对象用来表示 getitem() 方法得到的切片

静态方法对象静态方法对象提供了一种避免上文所述将函数对象转换为方法对象的方式&#xff0c;静态方法对象为对任意其他对象的封装&#xff0c;通常用来封装用户定义方法对象。当从类或类实例获取一个静态方法对象时&#xff0c;实际返回的对象是封装的对象&#xff0c;它不会被进一步转换&#xff0c;静态方法对象自身不是可调用的&#xff0c;但它们所封装的对象通常都是可调用的。

类方法对象类方法对象和静态方法一样是对其他对象的封装&#xff0c;会改变从类或类实例获取该对象的方式

引用

变量通过地址实现了对对象的引用&#xff0c;变量在栈中&#xff0c;对象在堆中&#xff0c;两者分离

python是动态类型语言&#xff0c;变量不需要显式声明类型&#xff0c;自动根据引用的对象类型来确定类型&#xff0c;因为引用的对象实际上是一个内存块&#xff0c;其中已经包含了type&#xff1b;

python是强类型语言&#xff0c;只支持对象的类型支持的操作&#xff0c;如set不可以索引

参考资料

https://docs.python.org/zh-cn/3.7/library/2to3.html

https://docs.python.org/zh-cn/3/reference/lexical_analysis.html#keywords

一视频教程

python官方文档

https://www.runoob.com/python/python-intro.html



推荐阅读
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
author-avatar
shanshanhongxing
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有