参考书为:《PyQt5快速开发与实战》
1、Python数据类型
- int(有符号整型)
- long(长整型[也可以代表八进制和十六进制])
- float(浮点型)
- complex(复数)
(1)Python允许你同时为多个变量赋值。例如:
a = b = c = 1
a, b, c = 1, 2, "john" //c为字符串对象
2、字符串
(1)常用字符串方法
https://jingyan.baidu.com/article/f006222874a00efbd2f0c863.html
#join方法,相当于将右边字符串每个字符中间插入左边字符
>>b='hello world'
>>'-' .join(b)
h-e-l-l-o- -w-o-r-l-d
(2)字符串的比较
#按照ASCII的大小比较
print 'A'>'B' #输出false(-1)
print 'b'>'B' #输出true(1)
print 'Abc'=='Abc' #输出true(0)
print 'Ab'>'Abc' #输出false
print 'Abc'>'Abbd' #输出true
3、列表、元组、字典
(1)列表和元组的区别
列表是动态数组,它们不可变且可以重设长度(改变其内部元素的个数)。
元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。
元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。
这些区别结实率两者在设计哲学上的不同:
列表可被用于保存多个互相独立对象的数据集合
元组用于描述一个不会改不安的事务的多个属性
#两个元组合并
>>> t1 = (1, 2, 3, 4)
>>> t2 = (5, 6, 7, 8)
>>> t1 + t2
(1, 2, 3, 4, 5, 6, 7, 8)
元组不支持改变大小,但是我们可以将两个元组合并成一个新元组
4、控制语句
各种控制语句跟C之类区别不大,for语句略有不同
#这里将列表里面的3个元素分别赋值给x,然后遍历输出
xlst=['1','b','xxx']
for x in xlst:
print(x)
语句的结束,是通过识别回车符识别语句的结束的。
5、函数的定义
(1)用def
#用def定义一个函数f01(a,b,c)
def f01(a,b,c):
print('a,b,c,',a,b,c)
a2,b2,c2,=a+c,b*2,c*2
return a2,b2,c2
(2)用lambda
#定义了fun1(x,y)
fun1 = lambda x,y : x + y
print('fun1(2,3)=' , fun1(2,3))
6、partial
原理是定义了一个匿名函数,不会使程序效率变高,只会使代码简洁
#先导入functools模块
import functools
def add(a, b):
return a + b
#将plus3设定为add函数输入了固定参数b=3的函数
#如果改为:plus3 = functools.partial(add, 3)
#这里的参数3会赋值给add(a, b):中的a
plus3 = functools.partial(add, b=3)
#4+3=7 所以rst2的结果会是7
rst2 = plus3(4)
print('plus3(4)=' , rst2)
6、类和对象
与C语言比较,类相当于一个结构体。而对象,则相当于结构体变量。
类创建了一个模板,里面有初始化好的全局变量以及对象的变量,还有定义好的各种方法(函数)。
而对象,就是根据这个类的模板,创建的实例。
7、 if __name__ == "__main__":
具体参考以下,举例:
当在A模块中调用B模块,B模块中某部分代码不想被A调用,只想在运行B模块本身时使用。
则可以在B模块添加“ if __name__ == "__main__": ”
且将不想被外部调用的代码放在此行代码下面。
https://www.cnblogs.com/chenhuabin/p/10118199.html
7、 property与del
(1)函数property()可以用来监测一个类的属性或变量,前提是该类必须继承自object类
当该属性或变量变化时可触发对应的方法:
class MyClass(object):
def __init__(self):
self._param = None
def getParam(self):
print( "get param: %s" % self._param)
return self._param
def setParam(self, value):
self._param = value
print( "set param: %s" % self._param )
def delParam(self):
print( "del param: %s" % self._param)
del self._param
#这里相当于C语言进行函数指针的赋值,当读取param时
#会触发getParam方法,改变param时触发setParam方法
param = property(getParam, setParam, delParam)
if __name__ == "__main__":
cls = MyClass()
cls.param = 10
cls.param = 20
cls.param = 30
print("current param : %s " % cls.param )
del cls.param
还有一种,使用”@property“ 访问类的属性:
class MyClass(object):
def __init__(self):
self._param = None
@property
def param(self):
print( "get param: %s" % self._param)
return self._param
@param.setter #当设置param时会触发此方法
def param(self, value):
print( "set param: %s" % self._param )
self._param = value
@param.deleter #当删除param时会触发此方法
def param(self):
print( "del param: %s" % self._param)
del self._param
if __name__ == "__main__":
cls = MyClass()
cls.param = 10
print("current param : %s " % cls.param )
del cls.param
(2)del:这个关键字是用来删除引用的。
在python中,变量是用来引用对象的,比如:“a = 1”,这里变量”a“就是引用了对象“1‘。
当我们进行多个变量赋同样的值时,比如:
a=1
b=1
c=1
其实,a,b,c都只是引用了对象”1“,它们并没有创建新的对象。
而”del“,就是用来删除变量的。也就是删除对象的引用。比如:”del b“
变量(引用)b被删除了,但是a,c仍旧存在。对象”1“也依然存在。