每日一语录:
你给我胆子大一点,80%的人都很水,你觉得比你厉害的人也许还不如你,他们可能是演的大胆一点而已,勇敢的人先享受世界,要学会屈媚,穿着体面点,说话笃定点,行动大胆点,想成为谁,就去扮演谁,先装模做样,再像模像样,最后有模有样
今天重新更新python,之前写了v1版的arcMall花了很多时间,现在继续python~
错误与异常
学过java的都知道代码终会有错误与异常
那么接下来讲一下python中遇到的异常
1.ZeroDivisionError,除数为0时触发
num1=100num2=0result=num1/num2
2.TypeError:操作类型不匹配时候触发
result=10+'5'
3.AttributeError: 当对象没有指定的属性或方法时触发
class Person: def __init__(self, name, age): self.name = name self.age = ageperson=Person("李易峰",12)print(person.name)print(person.age)print(person.gender)num=[10,20,30]num.add(40)
4.IndexError:当索引超出范围(索引越界)时触发。
num=[10,20,30]print(num[4])
5.NameError:当使用了不存在的变量时触发
print(name)
6.KeyError:当访问字典中不存在的 key 时触发。
obj={'name':'李易峰','age':12}print(obj['name'])print(obj['gender'])
7.ValueError:当值不合法,但类型正确时触发。
int('hello')
如何处理异常?
1.初级
try: obj = {'name': '李易峰', 'age': 12}print(obj['name'])print(obj['gender'])except:print("程序异常")
2.捕获指定异常
try: obj = {'name': '李易峰', 'age': 12}print(obj['name'])print(obj['gender'])except IndexError:print("程序异常")
3.多个异常
try: a=int(input("请输入a")) b=int(input("请输入b")) result=a/bprint(result)except ZeroDivisionError:print("0不能作为除数")except ValueError:print("程序异常,你必须输入数字")except Exception:print("程序异常")
4.一个except可以捕获多个异常
try: a=int(input("请输入a")) b=int(input("请输入b")) result=a/bprint(result)except (ZeroDivisionError,ValueError) as es:if isinstance(es,ZeroDivisionError):print("0不能作为除数")if isinstance(es,ValueError):print("程序异常,必须输入数字")
5.完整写法
try: a=int(input("请输入a")) b=int(input("请输入b")) result=a/bprint(result)except (ZeroDivisionError,ValueError) as es:if isinstance(es,ZeroDivisionError):print("0不能作为除数")if isinstance(es,ValueError):print("程序异常,必须输入数字")else:print('挺好的,try中的代码没有任何异常!')finally:print('无论有没有异常,我的计算都结束了!')
6.当程序遇到不符合预期情况时,可以使用raise语句手动触发(抛出)异常。
try: age=int(input("请输入年龄"))if age>10:print("你是儿童")if age<5:print("你是小孩儿")else: raise ValueError("错误")except:print("程序异常")
异常传递机制
当程序遇到不符合预期情况时,可以使用raise语句手动触发(抛出)异常。
def test(): result="10"+5print(result)def test1(): try:test() except Exception as e:print(f'程序异常{e}')def test2(): try: test1() except:print("程序异常")test2()
自定义异常
class SchoolNameError(Exception): def __init__(self,msg): super().__init__("名称异常"+msg)def checkName(name):if len(name)>10: raise SchoolNameError("名称过长")else:print("名称正常")checkName("1234")
本节终~
arcMallV2版AI智能购物功能正在开发ing,大家敬请期待~
需要了解服务器和域名的购买以及返佣政策的可以找我,我有朋友做这方面对这些比较了解。今天开始建立两个群,第一个群:只讨论java+vue的项目,学历提升和卖服务器的就别进了,进了也会被踢。第二个群:只讨论python项目,以后python的代码和教程会在群里开源,学历提升和卖服务器的就别进了,进了也会被踢。