python 动态类型
2016-02-29 00:19
423 查看
python 动态类型及字符串
缺少类型声明情况
对于C、C++或Java这些静态语言而言,变量必须进行声明。但是对于Python而言,存在动态 语言,其区别就是可以不用进行声明变量类型,就可以进行变量类型变换。如a=3 a='python' a=[1,2,3]
变量、对象和引用
对于上面的例子而言,变量a并没有进行声明,但是可以直接赋值为3,这个时候,a就是一个整型,当a赋值为’python’时,a则是字符串类型,a赋值为[1,2,3]时,则为类表类型。对于这些变化,原因是Python使用的是动态引用方式进行处理变量的。其处理如下:创建一个对象来代表值3
创建一个变量a,如果它还没有创建的话
将变量与新的对象3相连
其效果如下:
如图所示,变量实际上是采用引用方式进行指明对象的。故变量可以是不明确的数据类型。这种方式就是和C++里面的指针类似。
对于这种方式,Python有自己的一套数据处理方式,保证不会声明变量后,不会发生内存泄露。如:
>>> a=3 >>> a='python' >>> a=1.23
当创建3时,a指向3,这时a表示整型。当a指向’python’时,3这个对象如果没有其他指向,则会被垃圾回收器回收。同理,当a指向1.23时,’python’字符串则会被回收。
字符串
在Python字符串中,其处理方式也灵活多变,操作方式多样化并且操作简易灵活。其中字符串常见的字符串常量和表达式如下:操作 | 解释 |
---|---|
s1 = ” | 空字符串 |
s2 = “pthon’s” | 双引号 |
block = \”\”\”…\”\”\” | 三重引号块 |
s3 = r’\temp\spam’ | Raw字符串 |
s4 = u’spam’ | Unicode字符串 |
s1 + s2 | 合并,在s1字符串末尾加上s2字符串 |
s2*3 | 重复字符串 |
s2[i] | 取出字符串s2中的第i+1个字符 |
s2[i:j] | 取出字符串s2第i+1个字符到第j个字符的字符串 |
len(s2) | 获取字符串s2的长度 |
‘a %s parrot’ %type | 字符串格式化 |
s2.find(‘ab’) | 字符串调用,搜索s2中是否存在’ab’字串 |
s2.replace(‘ab’,’cd’) | 将所有的子串’ab’替换为’cd’ |
s1.split(‘,’) | 在,号处分割字符串 |
s1.isdigit() | 判断s1是否全为数字组成 |
s1.lower() | 将s1字符串中的英文字母转换为小写字母 |
for x in s2 | 迭代s2字符串中的字符 |
对于字符串,由于表达有限,故有些字符串不能直接表达。需要进行转义,即使用一些字符组合来表达一个字符。其中常用的转义字符表达如下:
转义 | 意义 |
---|---|
\newline | 忽略该行的换行,表示连续 |
\|反斜杠() | |
\’ | 单引号(‘) |
\” | 双引号(“) |
\a | 响铃 |
\b | 倒退 |
\f | 换页 |
\n | 新行(换行) |
\r | 返回 |
\t | 水平制表符 |
\v | 垂直制表符 |
\N{id} | Unicode数据库ID |
\uhhhh | Unicode 16位的十六进制值 |
\Uhhhh | Unicode 32位的十六进制值 |
\xhh | 十六进制值 |
\0oo | 八进制值 |
\0 | Null(不是字符串结尾) |
\other | 不转义(保留) |
扩展分片:第三个限制值
在Python中,分片表达式在可选的扩展中增加了第三个值,该值表示间隔元素进行选值。相关文章推荐
- 转载】在 Mac OS X El Capitan 文件权限问题解决方法 (以安装 IPython 为例)
- python 默认参数问题的陷阱
- Python文件处理
- python连接数据库失败
- Python+Flask微信企业号开发之发送消息
- HOW-TO:Debug Python Scripts with Eclipse
- 仿Openstack的WSGI接口及RESTul服务实现(python)(转)
- python(4) - 装饰器2
- Python解一道题的N种做法(1)
- kaggle的手写识别比赛(python sklearn-KNN)
- python(4) - 装饰器
- python 系统学习笔记(十二)---os os.path os.walk
- 使用python来批量抓取网站图片
- python类
- vim+python+OpenCV学习四 : 像素通道分割
- Python100之第一例
- python实现二叉树的前、中、后序遍历及按层遍历
- 第二天 Python3.4.2 函数是第一等公民 装饰器
- 第二天 Python3.4.2 函数的调用过程 生成器 yield
- Python图像处理库PIL的ImageFont模块介绍