我正在尝试在 python 中执行一个值的模数,但据我所知,我遇到了错误,因为它将模数解释为字符串格式常量。我最初的猜测是对它进行类型转换,但它随后挂起。
val = pow(a,n,p)
val = y1*val
val = val % p
这两行代码是不是对应这道题。现在,当我运行它时,我得到: TypeError:并非所有参数都在字符串格式化期间转换 在第二行。
如果我将 val 包装成一个整数并对其进行类型转换...计算时间会非常长。
我对 python 不是很熟练,我猜我错过了一些简单的东西,但是什么?
最佳答案
如果 yu 得到这个错误,y1 本身就是一个字符串。您不能使用字符串执行数值计算 - 当您执行“int(y1) ”时 - 它不是强制转换,而是将字符串中字符表示的数字转换为实际数值 - 这是您可以的唯一方法对其进行数值运算。
如果它是 takin thta log,这很可能是因为您正在尝试将“y1 * val”转换为 int - 这已经是错误的 - 如果 y1 是一个字符串,“y1 * val”会为您提供连接到自身的 y1 “val” "次 - 所以这将是一个非常巨大的数字。在乘法之前,您需要将“y1”中的值作为数字 - 如:
val = int(y1) * val
关于Python 模数给出字符串格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9792387/