python基础——python对象模型

本文介绍了Python的基础对象模型,包括数字、字符串、列表、字典等主要类型,以及变量的自动识别和转换。同时,讨论了`type()`和`isinstance()`函数在类型检查中的作用。此外,还探讨了Python变量的内存管理和赋值特性,强调了变量名的命名规则。文章以实例展示了变量共享和修改值时内存地址的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python基础学习1——python对象模型

整体介绍

对象类型类型名称示例说明
数字int(整型),float(浮点型,也就是小数),complex(复数)123,3.14,1.3e3,3+4j数字大小没有限制范围
字符串str‘asf’,“sds as”,‘’‘Pthn’‘’,r’abc’,R’dds’使用单引号、双引号、三引号作为界定符,或者以r或R引导,表示字符串
字节串bytesb’hello world’以字母b引导,可以配合使用单引号、双引号和三引号作为界定符。(字节串和字符串的区别会在后面进行详细的解释)
列表list[1,2,3],[‘a’,‘b’],[‘a’,2],[‘a’,‘2’]元素可以是任意类型
字典dict{1:’food,2:’taste‘}元素形式对应位“键:值”
元组tuple(2,3,4),(3,)(后边详讲元组得时候会有重点讲解)最大的特点是不可变
集合set
frozenset
{‘a’,‘b’,‘c’}可变,元素不允许重复
布尔型bool'True,Flase逻辑值,关系运算、成员测试运算符、同意性测试
空类型NoneTypeNone代表空的意思
异常Exception、ValueError、TypeError一般来说见到他们的时候都是说明自己的代码出bug了,可能是大家最烦的一类对象
文件f = open(‘data.dat’, ‘rb’)open是Python内置函数,使用指定
可迭代对象生成器对象、range对象、zip对象、enumerate对象、map对象、filter对象等(后边会经常遇到这些函数,在后边内容会有详解)的模式打开文件,返回文件对象具有惰性求值的特点,除range对象 之外,其他对象中的元素只能看一次
编程单元函数(def定义)
类(class定义)
模块(类型为module)
类和函数都属于可调用对象,模块 用来集中存放函数、类、常量或其 他对象

python的变量说明

python区别于c语言的重要一点就是无需声明变量,并且可以自动识别各个变量,各个变量之间可以互相转换。

在这里插入图片描述

并且可以在此介绍python的两个内置函数——type()和isinstance()函数

type()函数:

type(object)

object是任意类型的对象,type(object)返回于object的类型

在这里插入图片描述

isinstance()函数:

isinstance(object, classinfo)
object :实例对象
classinfo :类型可以是直接或间接类名、基本类型以及元组

(本节只简单介绍类型的几种,等到讲解到类时会再将此函数拿出来进行详解)

在这里插入图片描述

只要object的类型是classinfo,那么就会返回true,否则就是false。

不太好理解的是第三行函数代码,classinfo是一个元组,object只要满足元组类型中的其中一个即可,元组中含有int(整数),所以函数返回值是true。

python变量的内存管理

变量名称=赋值语句,例如a=2+5。

python变量的内存管理机制很特殊,首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址。

下面图片是第一次打开python,进行赋值。
在这里插入图片描述

然后,关闭python并且重新打开,如下图所示。
在这里插入图片描述

正确印证python变量的赋值过程。

并且python之中是允许不同的变量名指向同一个值的,具体过程如下面所示:

在这里插入图片描述

在这里插入图片描述

两个变量指向同一个值时,一个变量修改值以后,其内存地址将会变化,但这并不影响另一个变量。具体如下图所示:

在这里插入图片描述

在这里插入图片描述

(x+=2此表达式与x=x+2的含义相同)

python变量名的命名规则

  1. 变量名必须字母或下划线开头,但以下划线开头的变量在Python中有特殊含义(注意不要用数字开头);
  2. 变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等);
  3. 不能使用关键字作变量名,可以导入keyword模块后使用print(keyword.kwlist)查看所有 Python关键字;例如and,as等等;
  4. 不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名,这将会改变其类型和含义,可以通过dir(builtins)查看所有内置模块、类型和函数;
  5. 变量名对英文字母的大小写敏感,例如student和Student是不同的变量。

python数字介绍

  1. 十进制整数如,0、-1、9、123

  2. 十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整

    数,必须以0x开头,如0x10、0xfa、0xabcdef

  3. 八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11

  4. 二进制整数,只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b100

    (进制之间的转换就不在这里赘述了)
    6、7来表示整数,必须以0o开头,如0o35、0o11

  5. 二进制整数,只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b100

    (进制之间的转换就不在这里赘述了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值