<python>python 2.7
来源:互联网 发布:sql删除表中的重复数据 编辑:程序博客网 时间:2024/06/05 21:07
由于以后的学习会设计到wxpython,而python3.x没有匹配的wxpython,所以重新装了python 2.7。所以所有的语法均基于python 2.7版本,我看的书是python核心编程。
一、语法
1. #后为python的注释
2.\n 换行符
3.\ 续行符
4.分号 用于分割同一行上的两个子句
5.冒号 分割函数,类,控制语句等等的标题和后续子句
# this is an exampleprint 'aaa\nbbb'print 'aaa\bbb'a = 5if a>5: print 'a>5'
运行:
>>> aaabbbaaabbb
6.赋值操作
python2.7支持以下模式的赋值:
而且,有一点不同于c语言:在交换两个变量的值时,不需要临时变量
7.标识符
首字母为_或字母
后续字符为字母,数字和_
大小写敏感
python的关键字:
and elif global or
assert else if pass
break except import print
class exec in raise
continue finally is return
def for lambda try
del from not while
说说这些关键词的用处吧:
and,or,not 布尔运算符,python中有布尔类型的,值为true,false
几个例子:
在2.7:
在3.3
(上面 3>2>1等价于 3>2 and 2>1)
在python里,数值的非零,字符串的非空可以等价于布尔的true,反之0和空字符串等价到false。
elif == else if
print 输出语句
在2.x中print是一条语句,不需要括号,但在3.x中,print()是一个函数。
二、风格
缩进:
python中没有括号,但使用缩进来表示程序的格式,tab键缩进。
三、内存管理
python 中变量不需要定义,变量没有类型,变量名可以回收使用,del语句可以收回使用中的变量。
关于对象和变量,我的看法是,对象是内存中的一块,存放数值或字符串等等,变量是独立的标识符,无法通过变量修改对象,变量可以关联到对象,从而拥有对象的值和类型。《python核心编程》书上有一种很形象的说法:
对象是内存中的一块,对象就像一个盒子,当赋值出现时,就是将变量关联到盒子上,此时变量的值就是对象的值,变量相当于这块内存的一个别名,每一次赋值,这块内存的引用计数(被引用的次数,即别名的个数),就+1,初始赋值计数为1.
当关联到该内存变量指向了另一块内存(即改变了变量的值)那么引用计数就会-1.当引用计数为0时,该块内存就会被回收。
del语句可以强制用来减少引用计数(即撤销变量)。
内存分配这里,涉及到python的一些小整数和短字符串的优化问题,我想只要大概了解一下就好了,毕竟使用python是不需要程序员掌管内存的使用的。
四、对象
python中的对象是有类型和值和内存地址的。即三个特性:实体(identity):可以用id()获取,类型和值
标准数据类型:
1.数值:普通整数,长整数,浮点数,复数
①整数在32位机表示大小:-2**31 -- 2**31-1。整数有10进制,8进制(以0开头),16进制(以0x开头)。
②长整形是整形的超集,在数字后加l或L区别。同样有三种进制。
③浮点数对应于c中的double型,可以用10进制和科学计数法表示。
④复数形如a+bj。
有复数num,num.real获取num的实数部分,num.imag获取虚数,num.conjugate()获取复数记号形式。
数值操作:+,-,*,/,%,**,对整数:~(取反),<< ,>>, &,^,|
数值函数:类型转换函数-int(obj),float(obj),long(obj),complex(obj)/complex(real,imag),
abs(num),取绝对值
coerce(num1,num2),将num1和num2转换成同一种类型,返回一个表列形式的转换结果。
divmod(num1,num2),返回(num1/num2,num1%num2)
pow(num1,num2,mod=1),乘方,若有mod参数,再对乘方求除法余数。
round(flt,ndig=0),返回一个数,其精确到flt小数点后ndig位。若ndig缺省,则返回最接近flt的整数。
进制转化-hex(),oct()
ASCII转换-ord(str),chr(num)
2.字符串string
3.列表list
4.表列tuple
5.字典dictionary
内建数据类型:
1.type 2.none 3.file 4.function 5.module 6.class 7.class instance 8.method
内部数据类型:
1.code 2.frame 3.traceback 4.slice 5.ellipsis 6.xrange
对象的操作:
1.比较
< ,> ,<= ,>= ,== ,!= ,<>(不再使用) 返回值是布尔值true 或false
2.对象的比较
判断变量是否关联到同一个对象。使用is 和 is not。相当于用id()来判断。
例子:
第一个例子中a,b指向同一个1.3可以理解,第二个例子中这两个1.3在内存中位置是不同的。
再看:
发现上述情况,这是python中对小整数和短字符串的优化,使内存中只有一个小整数和短字符串,因为python解释器认为小整数和短字符串经常使用。
大整数,长字符串时:
3.布尔运算
前面已有叙述。
内建函数:
cmp(obj1,obj2), repr(obj), 'obj' , str(obj) ,type(obj)
1.cmp(obj1,obj2)比较obj1 和 obj2 的大小,obj1 > obj2 返回值>1,若obj1 < onj2,返回值<1,若两者等于,返回0.
cmp的参数可以是
2.str(obj)与repr(obj)和 'obj'
这三个函数是返回obj的字符串形式。
但三者是有一些区别的.
先说str()和repr()的区别:str(obj)返回的是obj的可打印字符串表达形式。比如:
而repr(obj)返回的是obj的正是字符串:
再谈repr()和' '
两者功能一样,但书写要注意使用转义字符:
3.type(obj):该函数返回obj的类型。
该函数可以通过与其他type(obj1)的比较,判断obj的类型。
例子:
可以得出,a是float类型。
对象的分类:
1.根据存储摸型分类:
只能存储一个对象的类型称为,文字/离散存储,数字,字符串
反之,称为包容器存储,list,tuple,dictionary
2.根据是否可修改分类:
可修改: list,dictionary
不可修改:数字,字符串,tuple
3.根据访问模型分类:
直接访问(单个元素):数字
序列方式访问(通过下标访问):字符串,list,tuple
映射图放射访问(通过关键字访问):dictionary
- <python>python 2.7
- Python 2.7 : 安装Python
- python 2.7 : Python基础
- Python
- Python
- Python
- python
- Python
- PYTHON
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- 敏捷开发产品管理系列之一:序言及设立迭代目标
- App安全领域未被重视
- c# 通过反射属性, 把源对象写入目标对象
- python数据结构--二叉树建立与遍历
- centos 如何搭建ftp服务器
- <python>python 2.7
- 装修市场规则汇总
- VC 按钮添加图标,位图
- storm简介
- BroadcastReceiver
- ERROR 2003 Can’t connect to MySQL server on ‘localhost’
- IP欺骗
- linux-gcc 编译时头文件和库文件搜索路径
- 虚拟机中的网络配置