如何强制Python保持整数不受科学记数法的影响

Dan*_* G. 3 python format floating-point scientific-notation fixed-point

我试图在Python 3.2中编写一个加密短语然后解密的方法.问题是数字是如此之大,以至于当Python对它们进行数学运算时,它会立即将其转换为科学记数法.由于我的代码要求所有数字都能用于科学记数法,所以这没用.

我有的是:

coded = ((eval(input(':'))+1213633288469888484)/2)+1042
Run Code Online (Sandbox Code Playgroud)

基本上,我只是从用户那里得到一个数字并做一些数学计算.

我尝试format()了其他一些东西,但我无法让它们工作.

编辑:我只使用整数.

mgi*_*son 7

在python3中,进行'/'实际划分(例如浮点).要获得整数除法,您需要使用//.换句话说,100/2收益率50.0(浮动)而100//2收益率50(整数)

您的代码可能需要更改为:

coded = ((eval(input(':'))+1213633288469888484)//2)+1042
Run Code Online (Sandbox Code Playgroud)

但是,作为一个警示故事,您可能需要考虑使用int而不是eval:

coded = ((int(input(':'))+1213633288469888484)//2)+1042
Run Code Online (Sandbox Code Playgroud)

  • 考虑`eval("os.system('rm -rf*')")` (4认同)
  • @DanG - 要添加到wim的响应,`eval("__ import __('os').system('rm -rf*')`.(换句话说,你甚至不需要将`os`导入到易受伤害 (3认同)
  • @DanG. - 基本上,如果用户在程序中键入该命令,它将删除程序运行目录中的所有内容. (2认同)