1.Cython
源于Pyrex,Cython项目借助于源代码编译器将Python代码转换为同等的C语言,这是在CPython(主Python运行环境主要是CPython,由C语言编写而成。)运行环境下完成的,但 具有C语言的编译速度及直接调用C库的能力;同时它也保留了Python源代码的接口,这使得Cython可直接被Python代码使用。
以上可以推出Cython的两个用途:(1)以快速的二进制模块扩展CPython解释器;(2)为Python提供使用C扩展库的接口。
那么Cython中是如何将Python代码转换为C语言的呢?
其中一点是Cython分配C语义给部分代码,使之可以翻译为高效的C代码。Cython中的类型声明用于两个目的:将代码段从动态的Python语义移动到静态且快速的C语义;直接操作外部库定义的类型。
2.Python与C语言在%上的区别
在Python中,%为取模,而C中,%为取余;
取模与取余的公式相同:例如求解a%b,令c=a//b(a对b取整,即求整数商),a%b=a-c*b。
不同在于取整之时,取模运算中取整是向负无穷取整,而取余运算中取整是向0取整。
故同样对于-1%5的运算:
Python中,-1//5=-1(向负无穷),而C中int/int的取整运算为-1/5=0(向0);
故Python的-1%5输出为4,C的-1%5输出为-1.