python-25-零基础自学python-处理异常三兄弟try-except-else

学习内容:《python编程:从入门到实践》第二版第十章

知识点:

程序异常如何处理?try-except-else

try-尝试可能引起错误的步骤

except-错误步骤发生,打印一些需要用户知道的信息,没有就pass

else-错误不发生的时候程序继续运行的部分

练习内容:

练习10-6:加法运算 提示用户提供数值输入时,常出现的一个问题是,用户提供的是文本而不是数。在此情况下,当你尝试将输入转换为整数时,将引发ValueError异常。编写一个程序,提示用户输入两个数,再将其相加并打印结果。在用户输入的任何一个值不是数时都捕获ValueError异常,并打印一条友好的错误消息。对你编写的程序进行测试:先输入两个数,再输入一些文本而不是数。

我的代码&运行结果: 

prompt = '请输入2个数值,第一个数是:'
number1 = input(prompt)
number2 = input('第二个数值是')
try:
    number = int(number1) + int(number2)
except ValueError:
    print(f"非数字无法相加,请输入数字")
    #continue

else:
    print(f"两数之和是{number}")

这样运行的结果如下,左一个是两次输入数字,程序结束。

右图一个是两次中有一次输入非数字,程序结束,但是我希望程序继续运行↓

首先采用return,但是不对,加了函数也不对,这个时候发现问题,函数到底是怎么用的基础原理部分没有掌握,另一个是continue到底怎么用,也不明确

以上两个方法试过后,还是回归while,正好是下一个练习:

练习10-7:加法计算器 将为完成练习10-6而编写的代码放在一个while循环中,让用户犯错(输入的是文本而不是数)后能够继续输入数。

while True:
    prompt = '请输入2个数值,第一个数是:'
    number1 = input(prompt)
    number2 = input('第二个数值是')
    try:
        number = int(number1) + int(number2)
    except ValueError:
        print(f"非数字无法相加,请输入数字")
    else:
        print(f"两数之和是{number}")

 

这样就可以无限循环下去,如果是放置不管,进行数据处理,就可以不停处理不用管了

总结&问题:

1.return和continue似乎不能返回到最开始。交互更好的还是用while,只是需要设置break程序。

如果以后学会了怎么更好处理文件异常,再回来补上怎么使用的方法。

这个思考发现自己的def方法、return这些的用法不清晰明确,不知道到底什么时候可以用,什么时候不能,以及怎么用更好,好像是只学到表面的知识点,没有深入,也不会举一反三。这种情况该怎么办呢?

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 17:32:07       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 17:32:07       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 17:32:07       90 阅读
  4. Python语言-面向对象

    2024-07-10 17:32:07       98 阅读

热门阅读

  1. C++八股(三)之虚函数

    2024-07-10 17:32:07       29 阅读
  2. Linux下mysql数据库的导入与导出以及查看端口

    2024-07-10 17:32:07       30 阅读
  3. Mybatis-Flex各种查询,强烈建议收藏

    2024-07-10 17:32:07       33 阅读
  4. Mybatis-plus学习

    2024-07-10 17:32:07       23 阅读
  5. mysql函数 last_insert_id()

    2024-07-10 17:32:07       28 阅读
  6. DateTimeUtils

    2024-07-10 17:32:07       24 阅读
  7. CSS:选择器 / 14种类型

    2024-07-10 17:32:07       28 阅读
  8. css中文字书写方向

    2024-07-10 17:32:07       27 阅读
  9. 19.JWT

    19.JWT

    2024-07-10 17:32:07      29 阅读
  10. 实证Stata代码命令汇总

    2024-07-10 17:32:07       21 阅读
  11. 将 build.gradle 配置从 Groovy 迁移到 Kotlin

    2024-07-10 17:32:07       27 阅读
  12. MySQL数据库字符集utf8mb4的排序规则介绍

    2024-07-10 17:32:07       30 阅读