Python模数给出字符串格式错误

r36*_*363 6 python modulus

我试图在python中执行一个值的模数,但是我得到错误,因为它将模数解释为字符串格式化常量,据我所知.我最初的猜测是输入这个,但它会挂起.

    val = pow(a,n,p)
    val = y1*val
    val = val % p
Run Code Online (Sandbox Code Playgroud)

这两行代码是否与此问题相对应.现在,当我运行它时,我得到:TypeError:在字符串格式化期间不是所有参数都转换在第二行.

如果我将val包装成一个整数并输入它...它需要很长的时间来计算.

我对python不太熟练,我的猜测是我错过了一些简单的东西,但是什么?

jsb*_*eno 5

如果yu遇到此错误,则y1本身是一个字符串。您无法使用字符串执行数字计算-当您执行“ int(y1)”时-它不是强制转换,而是将字符串中的字符表示的数字转换为实际的数值-这是您可以执行的唯一方法对它执行数字运算。

如果是日志,则可能是因为您正在尝试将“ y1 * val”转换为int-这已经是错误的-如果y1是字符串,则“ y1 * val”会将y1串联到其自身的“ val”时间-所以这将是一个巨大的数字。您需要先将“ y1”中的值作为一个数字,然后再乘以-如下所示:

val  = int(y1) * val
Run Code Online (Sandbox Code Playgroud)