我有一个prime_factorize
函数,它返回一个从素因子到其幂的字典映射。例如,50=2^1*5^2,所以prime_factorize(50)
返回{2 : 1, 5 : 2}
。你知道吗
假设这是记录在案的行为,那么如果称为0、1或负数,用什么方式来表示错误最不令人惊讶呢?抛出ValueError
?返回看起来正确的输出(例如prime_factorize(-5) -> {-1: 1, 5: 1}
)?返回空的dict?你知道吗
如果你有更好的格式来返回一个素因子分解,我也很乐意听到
Tags:
与python无关,更多的是关于素因子分解的概念;因子分解应该为所有x<;2或非整数引发一个异常。你知道吗
在
prime_factorize(n)
中:这样,用户a.)可以获得关于出错的有意义的信息,b.)可以处理
try...except
块中的异常。你知道吗我绝对不会转换不正确的数据或空的dict,因为当有人第一次传递不正确的值时,这会导致一些棘手的调试。提出例外,这就是他们的目的!你知道吗
不知道你为什么在这里用字典。两个元组的列表不是也可以吗?即have
prime_factor(50)
return[(2,1), ((5,2)]
。你知道吗使用字典的前提是你知道键并想查找它的值,而对于一个任意数的素数因子似乎不是这样。你知道吗
相关问题 更多 >
编程相关推荐