show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次是变量相加
- 整型数字变量可以相加
- 字符串变量也可以相加
- 但是
- 字符串和整型数字
- 整型数字和字符串
- 不能相加
- 怎么办?
- 转格式
- int("1")
- str(2)
- 可是是
- int("abc")
- 怎么办?😱
- 虽然我有了心理准备
- 但是python 显然还没有准备好
- python3 的意思是 不知道怎么把
a
转化为十进制数- 不但python3没有办法转化
- 我也没有思路
- 毕竟不是
0xa
这种形式 - 还可能有
abc
这种形式
- 但是,这种文字显然对于用户不够理想
- 我们要写一些用户能够接受的文字
#!/usr/bin/python3
a = input("How many apples do you have: ")
print("You have got " + a + " apples!")
b = input("How many banana do you have: ")
print("You have got " + b + " bananas!")
total = int(a) + int(b)
print("You have got " + str(total) + " fruits in all!")
- 尝试工作出现在倒数第二行
- 我们需要的是试着运行这一行
- 如果不行就给用户一个明确的能理解的解释
- 怎么让python3试着运行呢?
- 搜索一下python3+try
- 试着就是try
- 把需要尝试的代码部分放到try里面
#!/usr/bin/python3
a = input("How many apples do you have: ")
print("You have got " + a + " apples!")
b = input("How many banana do you have: ")
print("You have got " + b + " bananas!")
try:
total = int(a) + int(b)
except:
print("\033[41m[error]\033[0m -----Input numbers!!!")
print("You have got " + str(total) + " fruits in all!")
- 注意
- 冒号要紧跟着try、except
- 冒号是英文半角的
- 尝试的内容需要缩进4个字符
- 不多不少 必须四个
- 可以用
gg=G
自动调整缩进
- 失败了
- 不过失败的错误提示是"total"变量没有被定义
- 原来我想试着执行这句
- 里面还声明了一个变量total
- 最后一句想要输出这个total
- 所以报错了
- 怎么办?
- 都放try里面
#!/usr/bin/python3
a = input("How many apples do you have: ")
print("You have got " + a + " apples!")
b = input("How many banana do you have: ")
print("You have got " + b + " bananas!")
try:
total = int(a) + int(b)
print("You have got " + str(total) + " fruits in all!")
except:
print("\033[41m[error]\033[0m -----Input numbers!!!")
- 试试行不行
- 实验终于成功!!!
- 红颜色的error好扎眼
- 我们不要报错好不好
#!/usr/bin/python3
a = input("How many apples do you have: ")
print("You have got " + a + " apples!")
b = input("How many banana do you have: ")
print("You have got " + b + " bananas!")
try:
total = int(a) + int(b)
print("You have got " + str(total) + " fruits in all!")
except:
pass
- 这不行
- 异常错误不处理不行
- 要明确得处理
- 要明确的报错
- 知道哪里错了
- 比假装没犯错要好得多
- 不要包容所有错误,除非你确定需要这样做
- 精准地捕获异常,不写 except:pass 风格的代码
- 那什么是except:pass风格的代码呢?
- 就是那种知错不报错的方式
- 虽然接收到了错误
- 但是轻轻飘过
- 上面这是错的!
- 这是最要命的
- 让人没有解决的思路
- 无法调试!
- 程序员无语问苍天!
- 这次学习了
- try
- except
- 注意要点
- 半角冒号
- 缩进
- 输出错误信息
- 有错就报告
- 不要隐瞒
- 否则找不到出错位置
- 但是代码量好多啊
- 10行了🤯
- 可以把他输入部分和输出部分么?🤔
- 我们下次再说!👋