python - prime_factorize(1) -> ? (Python 错误信号)

标签 python

我有一个 prime_factorize 函数,它返回一个从素数到它们的幂的字典映射。例如,50 = 2^1 * 5^2,所以 prime_factorize(50) 返回 {2 : 1, 5 : 2}

假设这是记录在案的行为,如果调用 0、1 或负数,那么发出错误信号的最不令人惊讶的方式是什么?抛出 ValueError?返回看起来像正确输出的东西(例如,prime_factorize(-5) -> {-1: 1, 5: 1})?返回空字典?

如果您有更好的格式来返回质因数分解,我也很想听听。

最佳答案

prime_factorize(n) 中:

if n < 2 or not isinstance(n, numbers.Integral):
    raise ValueError("Number to factor can't be less than 2")
else:
    # normal behavior

这样用户 a.) 获得关于出错的有意义的信息 b.) 可以在 try...except block 中处理异常。

我绝对不会转换不正确的数据或空的字典,因为这会在有人第一次传递不正确的值时导致一些棘手的调试。引发异常,这就是它们的用途!

关于python - prime_factorize(1) -> ? (Python 错误信号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476880/

相关文章:

python - 使用 PySpark Dataframe 的成对列操作(例如点积)

python - 使用python修改xml值文件

Python:给定计数(频率)和箱子绘制直方图

python - 在 Python 中读取大文件的惰性方法?

python - 在不执行的情况下将函数保存在元组中

python - 使用 Python beautifulSoup 抓取特定的 dd 项目

c++ - 如何从 boost::python::list 中提取值到 C++

python - 等到警报不存在 - Selenium/Python

python - `ImportError` 来自 python 子模块

python - 使用来自同一数据帧的 x 和 y 绘制直方图