valueerror是什么错误

人气:401 ℃/2022-12-27 14:47:03

valueerror是什么错误呢?不知道的小伙伴来看看小编今天的分享吧!

ValueError异常是当方法接收正确数据类型但值不合适的参数时,将引发Python中的ValueError异常。 关联的值是一个字符串,提供有关数据类型不匹配的详细信息。用户代码可能引发TypeError异常,以指示不支持并且不意图对某个对象进行尝试的操作。

ValueError异常及其处理方法:

以ValueError Exception为例

import math

math.sqrt(-10)

输出量

Traceback (most recent call last):

File "/Users/krunal/Desktop/code/pyt/database/app.py", line 3, inmath.sqrt(-10) ValueError: math domain error

如您所见,我们收到了ValueError:数学域错误。

如何在Python中处理ValueError异常

要处理ValueError异常,请使用try-except块。

import math

data = 64

try:

print(f"Square Root of {data} is {math.sqrt(data)}")

except ValueError as v:

print(f"You entered {data}, which is not a positive number")

输出量

Square Root of 64 is 8.0

现在,让我们将负值分配给数据变量并查看输出。

import math

data = -64

try:

print(f"Square Root of {data} is {math.sqrt(data)}")

except ValueError as v:

print(f"You entered {data}, which is not a positive number")

输出量

You entered -64, which is not a positive number

您可以看到我们的程序引发了ValueError并执行了except块。

我们的程序可以在int()和math.sqrt()函数中引发ValueError。 因此,我们可以创建一个嵌套的try-except块来处理它们。

以上就是小编今天的分享了,希望可以帮助到大家。

ValueError是什么意思

Python报错怎么调试?

Python的学习调试之路一般是这样的:

  1. 新手:把报错内容贴在QQ技术群或者贴吧里向技术大佬求助
  2. 初入门:了解了Python的常见的报错异常分类:如ValueError、SyntaxError、IntentError等,并会根据这些异常,在代码中添加print()方法来搞明白报错原因
  3. 中级开发人员:不仅了解上面的各种异常Error和Exception,还能根据报错堆栈准备定位报错位置及原因
  4. 高级开发人员:除了可以解决以上常见的问题,还会利用IDE本身的调试工具或者Python的pdb来排查疑难杂症。

实例分析如何做程序调试:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. score = int(input('输入分数:\n'))
  4. if score >= 90:
  5. grade = 'A'
  6. elif score >= 60:
  7. grade = 'B'
  8. else:
  9. grade = 'C'
  10. print('%d 属于 %s' % (score,grade))

上面的程序,如果输入的是数字是没有问题的,比如:

  1. ➜ lezhi.io python3 score.py
  2. 输入分数:
  3. 100
  4. 100 属于 A

假如我们随便输入一些字符呢?

  1. ➜ lezhi.io python3 score.py
  2. 输入分数:
  3. adjfkd
  4. Traceback (most recent call last):
  5. File "score.py", line 4, in <module>
  6. score = int(input('输入分数:\n'))
  7. ValueError: invalid literal for int() with base 10: 'adjfkd'

初学Python的人可能觉得无从下手,只得把报错贴在网上寻求帮忙。 下面我说下这种情况下的办法:

  1. 一般报错的最下面是报错的主要错误类型:ValueError也就是值类型错误,官方文档是这样定义的:当操作或函数接收到具有正确类型但值不适合的参数,并且情况不能用更精确的异常例如IndexError来描述时将被引发
  2. 然后后面是具体的描述,是帮我们定位具体原因的关键,上面的意思是:”当使用int()来做类型转换时发生错误”,很明显, “adjfkd”不能直接转换成数字。
  3. 再接着向上看, 会显示报错的代码和行数
  4. 根据此,我们知道了问题所在,就可以着手做修复工作,以下为修复示例:
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import sys
  4. try:
  5. score = int(input('输入分数:\n'))
  6. except ValueError as ex:
  7. print("请输入一个有效的数字")
  8. sys.exit(-1)
  9. if score >= 90:
  10. grade = 'A'
  11. elif score >= 60:
  12. grade = 'B'
  13. else:
  14. grade = 'C'
  15. print('%d 属于 %s' % (score,grade))

推荐

首页/电脑版/网名
© 2026 NiBaKu.Com All Rights Reserved.