我们知道Python eval()是邪恶的
http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
StackOverflow中的线程和线程建议使用SymPy evalf().
作为一个Python新手,我无法真正说服自己,evalf()因为我缺乏技能是安全的.任何人都可以详细说明evalf()(不同)的内容吗?
我的最小例子是
#!/usr/bin/python3
import warnings
warnings.warn('Run Forest run!', stacklevel=2)
warnings.warn('Run Forest run!')
Run Code Online (Sandbox Code Playgroud)
它会输出
sys:1: UserWarning: Run Forest run!
./file.py:6: UserWarning: Run Forest run!
warnings.warn('Run Forest run!')
Run Code Online (Sandbox Code Playgroud)
第一行给了我一些信息.第二行是完美的,给我源文件和行号...但我想摆脱多余的第三行.那可能吗?
根据官方文件:
public void close()抛出IOException
关闭此输入流并释放与该流关联的所有系统资源.
InputStream的close方法什么都不做.
它什么都不做什么呢?
是否有一个可以突出显示单个字符编辑的差异工具,而不仅仅是显示整行的旧版本和新版本(即差异StackExchange显示您对帖子进行编辑的那种)?
我更喜欢在Linux命令行diff中使用的一个git.
在Python中使用符号计算我有
import sympy
from cmath import *
from mpmath import arg, cplot
z = sympy.symbols('z')
fhandle='z**2'
g = lambda w: sympy.sympify(fhandle).evalf(subs={z: w})
g(1+2j)
# Returns: -3.0 + 4.0*I
# hence the next command fails, because I is expected to be 1j
cplot(g, [-3,3], [-3,3])
Run Code Online (Sandbox Code Playgroud)
抓取网页我只发现了这将解决print命令问题,但无法使用cplot.
有什么建议?
python ×3
diff ×1
eval ×1
git-diff ×1
inputstream ×1
java ×1
python-3.x ×1
sympy ×1
warnings ×1