show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解了 try 的完全体
- try
- 尝试运行
- except
- 发现异常时运行的代码块
- else
- 没有发现异常时运行的代码块
- finally
- 无论是否发现异常最终都要运行的代码块
- try
- 这几个py文件可以进行调试吗?
cd fruits
- 首先进入fruits目录
- 代码如下
a = input("How many apples do you have?\n")
try:
a = int(a)
print("You got " + str(a) + " apples!")
except ValueError:
print("\33[41meerror\33[0m ", a, "NaN")
quit()
b = input("How many bananas do you have?\n")
try:
b = int(b)
print("You got " + str(b) + " bananas!")
except ValueError:
print("\33[41meerrpr\33[0m ", b, "NaN")
quit()
- 首先
- 在变量名上想办法
- 名字
- 本身就有某些含义
- 具有某些可读性
- 可以把
- a 换成 apple
:1,6s/a/apple/gc
- 过程中需要用Y/n进行确认
- a 换成 apple
- 完成替换
- b 换成 banana
:8,$s/b/banana/gc
- 变量名 变长
- 并不会让 程序变慢
- 只是 换个 指向同一盒子空间的名字 而已
- process中的a和b也要进行修改
- main.py
import get_fruits
import process
import output
- get_fruits.py
apple = input("How many apples do you have?\n")
try:
apple = int(apple)
print("You got " + str(apple) + " apples!")
except ValeError:
print("\33meerror\33[0m ", apple, "NaN")
quit()
banana = input("How many bananas do you have?\n")
try:
banana = int(banana)
print("You got " + str(banana) + " bananas!")
except ValueError:
print("\33[41meerrpr\33[0m ", banana, "NaN")
quit()
- process.py
try:
from get_fruits import apple,banana
total = apple + banana
except:
print("\33[41merror\33[0m",end="")
print("your input is invalid!")
quit()
- output.py
try:
from process import total
print("You got " + str(total) + " fruits!")
except:
print("\33[41merror\33[0m",end="")
print("your input is invalid!")
quit()
- 在主控函数中
- 一路next
- 就会直接跳过调试子模块的过程
- 一路next
- 可以在子模块文件中设置断点吗?
- 可以试试
- 在get_fruits.py第一行设置断点
- 确实可以跳转到子模块中
- 可以设置到process中吗?
- 我们这次尝试着调试了多个文件
- 可以在指定文件位置设置断点
- 然后再用continue直接跳过去
- 可以在指定文件位置设置断点
- 发现导入部分
- 可以再分为两个子模块
- 一个输入 a
- 一个输入 b
- 可以再拆分么?🤔
- 我们下次再说!👋