我编写了以下程序来比较python与c/fortran的速度.为了获得程序使用的时间,我使用了"time"命令.所有程序计算x x + y y + z*z的平方根,其中x,y,z是浮点数.我使用了根方,因为它是科学计算中最耗时的部分之一,我参与其中.
我得到以下几次:
fortran 0m29.9s //
c 0m20.7s //
python 30m10.8s
Run Code Online (Sandbox Code Playgroud)
根据我做的简单测试,我发现Python不推荐用于科学计算.但可能我的代码效率很低.
您是否认为我可以为这个简单的测试用例提高代码效率?
Fortran语言:
program root_square
implicit none
integer i,j
real x,y,z,r
x=1.0
y=2.0
z=3.0
do j=1,3000
do i=1,1000000
r=sqrt(x*x+y*y+z*z)
enddo
enddo
end program root_square
Run Code Online (Sandbox Code Playgroud)
C:
#include "stdio.h"
#include "math.h"
int main (void)
{
float x=1.0,y=2.0,z=3.0,r;
int i,j;
for(j=0; j<3000; j++){
for(i=0; i<1000000; i++) {
r=sqrt(x*x+y*y+z*z);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
#!/usr/bin/env python
from math import sqrt
x = 1.0
y = 2.0
z …Run Code Online (Sandbox Code Playgroud) 我需要一个Python/C/C++/Java实现,它可以暂停散列进度并将进度存储在文件中,以便在稍后阶段从该文件中恢复进度.
无论使用上面列出的语言编写,它都应该在Python中正常工作.建议您提供与"hashlib"配合使用的方法,但这不是必需的.此外,如果已经存在这样的事情,那么链接就足够了.
对于一个想法,您的实现应该实现什么.
import hashlib
import hashpersist #THIS IS NEEDED.
sha256 = hashlib.sha256("Hello ")
hashpersist.save_state(sha256, open('test_file', 'w'))
sha256_recovered = hashpersist.load_state(open('test_file', 'r'))
sha256_recovered.update("World")
print sha256_recovered.hexdigest()
Run Code Online (Sandbox Code Playgroud)
这应该提供与我们使用标准sha256函数对"Hello World"进行简单散列相同的输出.
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
Run Code Online (Sandbox Code Playgroud) 最近我在我的小学操作系统中安装了"dconfeditor".我重新启动计算机并登录,看到Elementary OS的所有漂亮外观已经消失.我真的不知道为什么这发生在我身上,所以,我没有其他信息.请告诉我如何在我的小学操作系统中恢复旧主题.
这是我的截图: -
在─>


离职后>

当我在Codecademy Labs中执行以下代码时: -
names = [Adam,"Alex","Mariah","Martine","Columbus"]
for Adam in names:
print Adam
Run Code Online (Sandbox Code Playgroud)
它打印: -
Columbus
Alex
Mariah
Martine
Columbus
Run Code Online (Sandbox Code Playgroud)
现在,我想问为什么"哥伦布"处于最高位置.我知道我在列表中使用了一个空变量"Adam",并且在"for循环"中使用了相同的变量.它应该是一个"语法错误",因为在列表和"for循环"中使用相同的变量,然后为什么该列表的最后一个元素首先打印出来,最后也打印出来.