python:验证条件和引发异常的最佳方法

标签 python exception if-statement

嗨 我必须验证向量是否包含全 0 或 1,如果不包含则引发异常:

def assert_all_zero_or_one(vector):
    if set(vector)=={0}: return 0
    if set(vector)=={1}: return 1
    raise TypeError

执行此操作

assert_all_zero_or_one([1,1,1]) # return 1
assert_all_zero_or_one([0,0]) # return 0
assert_all_zero_or_one([1,0,1]) # raise TypeError

我不喜欢这个解决方案..有没有用 python 做的最好方法?

最佳答案

我认为您的解决方案很好地传达了您的意图。你也可以这样做

def assert_all_zero_or_one(vector):
    if set(vector) not in ({0}, {1}): raise TypeError
    return vector[0]

所以你只构建一次set(vector),但我认为你的更容易理解。

关于python:验证条件和引发异常的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5015775/

相关文章:

python - 大型平面平行板电容器内的简单摆

python - 更有效地到达最近的中心

c# - .NET Remoting 异常未在客户端处理

python - 如何在Python中使用循环计算二元组数

python - 在 python 中处理大尺寸数组

exception - JavaScript中的ATL COM错误信息

exception - Xamarin System.Net.WebException 缺少 WebExceptionStatus.NameResolutionFailure

php - 我的 IF 语句正在更改 PHP 中的变量

java - 在 Java 中遵循 if-else 阶梯的更好选择是什么?

Python:如果第一个变量为真,则检查第二个变量?