python也快学了一个月了,从一开始的是基础语法,到函数式编程(面向过程编程),再到面向对象编程,一步步的蒙圈。终于,我们离开了在windows上面的蒙圈,来到了ubuntu系统中蒙圈了两天,今天又重新开始了python的学习。
1.python中常见的魔法属性和方法
输出
__str__():输出当前对象 在内存中的地址 十六进制表示字符串!
__repr输出
__str__():输出当前对象 在内存中的地址 十六进制表示字符串!
__repr__(): 用于在交互模式下,直接操作变量时~获取变量数据的定义!
比较
__gt__():grant than大于
__lt__(): less than小于
__ge__(): grant or equals大于或者等于
__le__(): less or equals小于或者等于
__ne__(): not equals 不等于
__eq__(): equals 等于
运算
__add__():加法
__sub__():减法
__mul__():乘法
__truediv__():除法
__floordiv__():整除__(): 用于在交互模式下,直接操作变量时~获取变量数据的定义!
比较
__gt__():grant than大于
__lt__(): less than小于
__ge__(): grant or equals大于或者等于
__le__(): less or equals小于或者等于
__ne__(): not equals 不等于
__eq__(): equals 等于
运算
__add__():加法
__sub__():减法
__mul__():乘法
__truediv__():除法
__floordiv__():整除
2.对象在集合中的剔重
# coding:utf-8
class User:
def __init__(self, name, passwd, nickname):
self.name = name
self.passwd = passwd
self.nickname = nickname
def __hash__(self):
return self.name.__hash__()
def __eq__(self,other):
if self.name == other.name:
return True
return False
def __ste__(self):
return self.name + ";" + self.nickname
def __repr__(self):
return self.name + ";" + self.nickname
u1 = User("tom","123","汤姆")
u2 = User("jerry","123","汤姆")
u3 = User("shuke","123","汤姆")
u4 = User("jerry","123","假杰瑞")
u5 = User("tom","123","假汤姆")
u = set()
print(u)
u.add(u1)
print(u)
u.add(u2)
print(u)
u.add(u3)
以及在一个列表中,包含了大量的数字数据,剔除列表中的重复数字
nums = [1,2,3,2,3,3,2,4,5,6,7,5,4,6,8,8,98,6,5]
nums_set = set(nums)
nums = list(nums_set)
3.异常处理
什么是异常:不正常的情况都称为异常!
语法错误!~写错了!解释器解释执行时就会出错!错误
运行错误!~运行过程中,由于不同数据的处理出现的错误!异常
运行结果错误!程序没有出错,但是运行的结果不是期望的结果!BUG
错误:通过错误信息的定位,直接修改!
异常:通过处理代码~将可能出现错误的代码包含,进行选择处理:异常处理
BUG:程序中出现的一种业务漏洞,需要完善!
在现实生活中,如果出现不正常的情况:处理思路
这件事情可能会出问题——try
如果出现问题~该做什么 except
如果没有出现问题~该做什么 else
这件事情做完了,总结一下经验教训 finally
异常处理步骤:
(1)基本处理方式
a)在try中包含可能会出现异常的代码,在except中直接处理即可!
(2)多个异常共同处理
a)可以通过except指定异常名称
b)except NameError as e: 捕捉NameError错误
c)except (NameError, ValueError) as e: 捕捉NameError, ValueError错误
d)except: 捕捉所有可能出现的错误!
(3)多个异常独立处理
a)每个异常添加一个except
对于异常的处理!尽量做到精确处理!
如果你是一个有非常丰富开发经验的人,对于常规异常,~可以直接except: