Python中一切皆对象,每个对象由:标识(identiny)、类型(type)、值(value)组成。
- 标识id是唯一标识对象,通常对应于计算机中存储位置。使用内置函数id(obj)可返回对象的obj的标识。
- 类型用于表示对象存储的数据的类型,类型可以限制对象的取值范围以及可执行的操作,可以使用type(obj)获取对象的所属类型
- 值表示对象所存储的数据的信息。使用print(obj)可直接打印出来。
引用
变量也成为:对象的引用。
变量位于:栈内存
对象位于:堆存储中
标识符
标识符:用于变量、函数、类、模块等的名称
规则:
- 区分大小写
- 第一个字符必须是字母、下划线。其后跟字母、数字、下划线
- 不能使用关键字
- 以双下划线开头结尾的有特殊意义,尽量避免使用 eg:_int_
变量的声明和赋值
A=111
变量使用前必须先初始化。
删除变量及垃圾回收机制
del A。把表示删除以后,对象被垃圾回收机制回收。
链式赋值
链式赋值用于同一个对象赋值给多个变量
互换:a=3,b=4
b,a=a,b
最基本的内置数据类型介绍
(一)数字
数字
+、-、*、/(浮点数除法)、//(整数除法)、%(取余)、**幂
Divmod()同时得到商和余数
1、整数:
二进制:0b或0B
八进制:0o或0O
十六进制:0x或0X
字型转换int()、float()
2.float 浮点数:
3.14=314e-2
四舍五入 round(value) round(2.33)==2
应用举例:绘制一个坐标计算起点到终点的距离
运行结果:
(二)bool布尔型
True or false
同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
Is比较的对象id地址是不是相等,==比较的数值value是不是相等默认调用_eq_()。
整数缓存问题
Python仅仅对比较小的整数对象进行缓存(范围【-5,256】)缓存起来,而非是所有整数对象。需要注意的是,这仅仅是在命令中执行,而在Pycharm或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化范围是[-5,任意正整数]
(三)、字符串
字符串是不可变的,无法对源字符串进行修改。但可以将字符串的一部分复制到新的字符串中。
字符串的编码(Unicode),默认为16位。ASCII是Unicode码的子集。
使用内置函数order()可以把字符串转换成Unicode码。
A=”abd” b=’i/’love you’
多行三个连续的双引号
Len(字符串对象)表示字符串的长度
转义字符
|
转义字符 |
描述 |
|
\ |
在行尾表示续行符,在中间是表示转义字符 |
|
\\ |
反斜杠字符 |
|
\’,\” |
单双引号 |
|
\b |
退格 |
|
\n |
换行 |
|
\t |
横向制表符 |
|
\r |
回车 |
字符串连接
+号
str()实现数字转化为字符串
字符串的本质就是字符序列,可以通过在字符串后加[],在[]里面的偏移量。
a='xdcgfers'
>>> a[5]
'e'
字符串不可变但可以替换 replace()
字符串切片slice操作
|
操作方法 |
|
|
[:] 全取 |
|
|
[2:] 从下标为二的索引开始取值 |
|
|
[:end] 从开始到end-1 |
|
|
[start:end] 从start-1到end-1 |
|
|
[start:end:step] 从start-1开始,每隔step个取一个,直到end-1 |
|
|
负数表示倒叙 |
字符串切分split(),以空格、换行符、制表符为分割标准
Join()与split()相反,拼接完了以后还是一个对象,而+号拼接是生产多个对象
测试+和join()运行时间对比
Zifuchuan.py
运行结果:
字符串驻留机制和字符串比较
字符串驻留:仅保存一份相同的且不可变字符串的方式,不同的值被存在字符驻留池中,对于标识符驻留地址相同。
成员字符
In 、not in,判断字符是否在字符串中。
字符串常用的方法
查找方法
|
方法 |
|
|
Len (a) |
|
|
a.startswith(‘’)以字符开头 |
|
|
a.endawith()是否以字符结尾 |
|
|
A.find() 开头字符 |
|
|
A.rfind(“大”) 结尾字符 |
去除首尾信息
可以通过strip(“”)去除字符串首尾指定信息,lstrip()左边的信息,rstrip()右边的信息去除
大小写转换
|
a.capitalize() |
产生新的字符串,首字母大写 |
|
a.title() |
产生新的字符串,每个首字母大写 |
|
a.upper() |
产生新的字符串,所有字母大写 |
|
a.lower() |
产生新的字符串,所有字母小写 |
|
a.swapcase() |
所有字母大小写相互转换 |
格式排版
Center(),ljust(),rjust()
其他方法
- isalmum() 是否为字母或数字
- Isalpha() 检测字符串是否由字母组成
- Isdigit() 是否由数字组成
- isupper() 是否为大写字母
- islower() 是否为小写字母
- Isspace()是否为空白符
字符串格式化
Format()基本语法以{}和:
填充和对齐
^ 、<、>居中,左对齐,右对齐。后面跟宽度,:号后跟填充字符。
可变字符串
可以使用io.StringIO对象或array模块。左移>>相当于除法,右移相当于乘法,python没有自增自减。