Python的常用内置对象

Python的常用内置对象

对象是python语言中最基本的概念,在python中处理的一切都是对象。

表1: Python的内置对象

对 象 类 型类型名称示例简要说明
数字int, float, complex1234, 3.14, 1.3e5, 3+4j数字大小没有限制,内置支持复数及其 运算
字符串strstr ‘swfu’, “I’m student”, ‘’‘Python ‘’’, r’abc’, R’bcd’使用单引号、双引号、三引号作为定界 符,以字母r或R引导的表示原始字符串
字节串bytesb’hello world’以字母b引导,可以使用单引号、双引 号、三引号作为定界符
列 表list[1, 2, 3],[‘a’, ‘b’, [‘c’, 2]]所有元素放在一对方括号中,元素之间 使用逗号分隔,其中的元素可以是任意 类型
字 典dict{1:‘food’ ,2:‘taste’, 3:‘import’}所有元素放在一对大括号中,元素之间 使用逗号分隔,元素形式为“键:值”
元 组tuple(2, -5, 6), (3,)不可变,所有元素放在一对圆括号中, 元素之间使用逗号分隔,如果元组中只 有一个元素的话,后面的逗号不能省略
集 合setfrozenset {‘a’, ‘b’, ‘c’}所有元素放在一对大括号中,元素之间 使用逗号分隔,元素不允许重复;另外, set是可变的,而frozenset是不可变的
布 尔 型boolTrue, False逻辑值,关系运算符、成员测试运算 符、同一性测试运算符组成的表达式的 值一般为True或False
空 类 型NoneTypeNone空值
异 常Exception、 ValueError、 TypeError……Python内置大量异常类,分别对应不同 类型的异常
文 件f = open(‘data.dat’, ‘rb’)open是Python内置函数,使用指定的 模式打开文件,返回文件对象
其 他 可 迭 代 对 象生成器对象、range对象、 zip对象、enumerate对象、map对象、filter对象 等具有惰性求值的特点
编程单元函数(使用def定义) 类 (使用class定义) 模块 (类型为module)类和函数都属于可调用对象,模块用来集中存放函数、类、常量或其他对象

python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;


Python变量

Python属于强类型编程语言,Python解释器会根据赋值或运算来自动推断变量类型。Python还是一种动态类型语言,变量的类型也是可以随时变化的。

需要注意以下问题。

  1. 变量名必须以字母或下画线开头但以下画线 开头的变量在Python中有特殊含义,请参考第6章内容。
  2. 变量名中不能有空格或标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问等)。
  3. 不能使用关键字作为变量名,Python关键字的介绍请见2.3节。要注意的是,直着Python版本的变 化,关键字列表可能会有所变化。
  4. 不建议使用系统内置的模块名、类型名或函数名以及已导人的模块名及其成员作为变量名,这会 改变其类型和含义,甚至会导致其他代码无法正常执行。可以通过difr(_ _ builtins_ _ )查看所有 内置对象名称。
  5. 变量名对英文字母的大小写敏感,例如student和Student是不同的变量
>>> x = 4
>>> print(type(x))
<class 'int'>
>>> x = 'Hello world.'
>>> print(type(x))                 #查看变量类型
<class 'str'>
>>> x = [1,2,3]
>>> print(type(x))
<class 'list'>
>>> isinstance(3, int)             #测试对象是否是某个类型的实例
True
>>> isinstance('Hello world', str)
True
>>> x = 3
>>> x
3
>>> x**2
9

字符串和元组属于不可变序列,不能通过下标的方式来修改其中的元素值,试图修改元组中元素的值时会抛出异常。

在Python中,允许多个变量指向同一个值 。

x = 3 y = 3 x += 6内存变化如下:

  1. 赋值语句的执行过程是:首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址。
  2. Python采用的是基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。 Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,这也是变量类型随时可以改变的原因。
  3. Python具有自动内存管理功能,对于没有任何变量指向的值,Python自动将其删除。Python会跟踪所有的值,并自动删除不再有变量指向的值。尽管如此,显式使用 del 命令删除不需要的值或显式关闭不再需要访问的资源,仍是一个好的习惯,同时也是一个优秀程序员的基本素养之一。

数字

数字是不可变对象,可以表示任意大小的数字。

>>> 999*99   #想乘
98901
>>> 999**99 		#幂运算,等价于内置函数pow()
905697844958667709741956562802753100901389806139609538815019658231017504097064752403846139892968390554024852396172082441213697329994395340901282449426848216146865935961454742677324005498146550510264840271813301125214581059267630055862747172378231729576039278689152963667155086263379780844149098999
>>> 0.3+0.2
0.5
>>> 0.5-0.2
0.3
 0.4-0.1				#实数相减,结果稍有偏差
0.30000000000000004

Python中的整数类型可以分为

  • 十进制整数如,0、-1、9、123
  • 十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数,必须以0x开头,如0x100xfa0xabcdef
  • 八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o350o11
  • 二进制整数,只需要2个数字0、1来表示整数,必须以0b开头如,0b1010b100

浮点数又称小数

15.2, 0.31, 3.14, -11.2

Python 3.6.x开始支持在数字中间位置使用单个下划线作为分隔来提高数字的可读性,类似于数学上使用逗号作为千位分隔符。

>>> 1_000_000
1000000
>>> 1_2_3_4
1234
>>> 3.14159_26535_89793_83246
3.14159265358979383246

字符串

  • 用单引号、双引号或三引号界定的符号系列称为字符串。
  • 单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串 ‘abc’、‘123’、“Python”、’’’ Tom said, “Let’s go” ‘’’。
  • 字符串属于不可变序列。
  • 空字符串表示为’'或 “”。
  • 三引号’’'或"""表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。

常见的转义字符

表2: 转义字符

转义字符含义转义字符含义
\b退格,把光标移动到前一列位置\一个斜线\
\f换页符\’单引号’
\n换行符\”双引号”
\r回车\ooo3位八进制数对应的字符
\t水平制表符\xhh2位十六进制数对应的字符
\v垂直制表符\uhhhh4位十六进制数表示的Unicode字符

Python运算符

表3: Python 运算符

运算符功能说明
+算术加法,列表,元组,字符串合并与连接,正号
-算术减法,集合差集,相反数
*算术乘法,序列重复
/真除法
//求整商,但如果操作数中有实数的话,结果为实数形式的整数
%求余数,字符串格式化
**幂运算
<,<=,>,>=,==,!=(值)大小比较,集合的包含关系比较
or逻辑或
and逻辑与
not逻辑非
in成员测试
is对象同一性测试,即测试是否为同一个对象或者内存地址是否相同
|,^,&,<<,>>,~位或,位异或,位与,左移位,右移位,位求反
&,|,^集合交集,并集,对称差集
@矩阵相乘运算符

Python关键字简要说明

表4: 关键字

关键字含义
False常量,逻辑假
None常量,空置
True常量,逻辑假
and逻辑与运算
as在import或except语句中给对象器别名
assert断言,用来确认某个条件必须满足,可以来帮助调试程序
break用来循环中,提前结束break所在层次的循环
class用来定义类
continue用在循环中,提前结束本次循环
def用来定义函数
del用来删除对象或对象成员
elif用在选择结构中,表示else if 的意思
else可以用在选择结构、循环结构和异常处理结构中
except用在异常处理结构中,用来捕获特定类型的异常
finally用在异常处理结构中,用来表示不论是否发生异常都会执行的代码
for构造for循环,用来迭代序列或可迭代对象中的所有元素
from明确指定从哪个模块中导入什么对象,例如from math import sin;还可以与 yield 一起构成 yield表达式
global定义或声明全局变量
if用在选择结构中
import用来导入模块或模块中的对象
in成员测试
is同一性测试
lambda用来定义lambda表达式,类似于函数(匿名函数)
nonlocal用来声明nonlocal变量
not逻辑非运算
or逻辑或运算
pass空语句,执行该语句时什么都不做,常用作占位符
raise用来显式抛出异常
return在函数中用来返回值,如果没有指定返回值,表示返回空值None
try在异常处理结构中用来限定可能会引发异常的代码块
while用来构造while循环结构,只要条件表达式等价于True就重复执行限定的代码块
with上下文管理,具有自动管理资源的功能
yield在生成器行数中用来返回值
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值