我用C、Perl和Python编写了一个简单的程序,它将一个变量递增到10亿。我没有想到不同的语言之间会有太大的差异,但我非常惊讶地看到了一个巨大的差异。这些程序简单地数到10亿:
在c中:
int main() {
int c = 0;
while (c < 1000000000) {
c++;
}
}
在Perl中:
#! /usr/bin/env perl
use strict;
use warnings;
my $x = 0;
while ($x < 1000000000) {
$x++;
}
在Python中:
#!/usr/bin/env
我正试着训练DQN去玩Tic-Tac-Toe。我训练它玩X(而O动作是随机的)。经过12小时的训练,比赛打得还不错,但并非完美无缺。现在我想同时训练两个网,一个是X移动,另一个是O移动。但是,当我尝试在第二个网络上执行model.predict(状态)时,会出现以下错误:
ValueError: Cannot feed value of shape (9,) for Tensor 'InputData/X:0', which has shape '(?, 9)'
但我知道shure的网络定义和数据维度是相同的。定义两个DNN是有意义的。
以下是一个通用示例:
i
我已经学习Python大约6个月了,虽然我有很多实际知识,但我仍然很少有经验编程知识(在Python或其他方面)。因此,我担心的是: 1.我正在重新发明轮子;2.我自己解决问题的尝试将充满我不知道的问题。
问题
问题很简单。我有由X和Y坐标组成的点。我希望能够简单地将它们加减在一起,并测试它们是否相等:
a = Point(1,1)
b = Point(2,2)
assert a + a == b
另一个困难是,我至少有两种不同的类型的点,我需要能够在它们之间进行转换并测试它们之间的坐标相等性:
r = RegularPoint(1,1)
i = InterfacePoint(1,1)
ri
我试图通过apache中的wsgi在虚拟环境中服务器django应用程序。但我明白错误
[Fri Oct 11 18:28:55 2013] [error] [client 86.151.x.x] ImportError: Could not import settings 'myapp.myapp_settings' (Is it on sys.path?): No module named settings
不过,一切看起来都很好,
路径
/opt/django/webtools_django15/
|-- __init__.py
|-- myapp
| |-- __i
我有下面的Python测试程序:
import tensorflow as tf
sess = tf.InteractiveSession()
# Some tensor we want to print the value of
a = tf.one_hot(1,5)
# Add print operation
a = tf.Print(a, [a], message = "This is a: ")
# Add more elements of the graph using a
b = tf.add(a, a)
b.eval()
我称之为函数,它将创建一个很好的热编
我最近开始自学python,并一直在使用这门语言进行在线算法课程。由于某些原因,我为本课程创建的许多代码非常慢(相对于我在过去创建的C/C++ Matlab代码而言),而且我开始担心我没有正确地使用python。
这里有一个简单的python和matlab代码来比较它们的速度。
MATLAB
for i = 1:100000000
a = 1 + 1
end
Python
for i in list(range(0, 100000000)):
a=1 + 1
matlab代码大约需要0.3秒,python代码大约需要7秒。这是正常的吗?我针对
def is_devisable(n,m): #checks divisibility
if n%m==0:
return True
return False
def is_devisable23n8(x): #checks if x is devisable by 2 or 3 and not 8
if is_devisable(x,8)==False and is_devisable(x,3)==True or is_devisable(x,2)==True:
return 'Yes'
return 'No
Python 2.7:
我正在研究Euler #011项目,并找到了我知道的代码,但是我发现了它的工作原理。
for i in xrange(17):
# top-left to bottom-right
add(grid[i*20::21])
add(grid[i::21][:20-i]) # <---a
# top-right to bottom-left
add(grid[3+i::19][:i+4])
add(grid[39+i::19][i:]) # <---b
我的问题是:第二组括号如何在a和b处起作用?我知道他们限
我正在创建自己的复数类(而不是使用Python的内置类),当我试图将零添加到复数时,我遇到了一个问题。作为参考,这是一个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "display.py", line 25, in __init__
t.color(mandelbrot(c).getColor())
File "C:\Users\Joe\Desktop\Python\mandelbrot.py", line
我有两个串行化的添加和减法(它们是相同的,区别是添加+=1和减法-=1)指向一个答案。我想限制他们,以便用户只能使用add指向一个答案一次。您知道如何在Django Rest框架中实现它吗?
class Answer(models.Model):
number_of_points = models.IntegerField(default=0)
class SubtractPointsSerializer(serializers.ModelSerializer):
class Meta:
model = Answer
fields = ('
根据的说法,Python list上的append操作是原子的。同时,加法操作不是原子的:
i = i + 1
据我所知,Python GIL正在强制append操作成为原子操作。我的问题是,为什么GIL不对加法操作执行相同的操作?
考虑以下代码:
In [24]: L = []
In [25]: def func1():
...: L.append(2)
...:
In [26]: i = 0
In [27]: def func2():
...: i = i + 2
...:
两个函数的字节码如下所示:
In [28]: dis.dis(
在研究C#时,我发现非常奇怪的是,动态类型的Python会在以下代码中出现错误:
i = 5
print i + " "
静态类型的C#通常会继续进行类似的代码:
int i = 5;
Console.Write(i + " ");
我希望有另外一种方式(在python中,我可以不用任何强制转换就可以做到这一点,但是C#将要求我将int转换为string或string到int)。
我只是想强调一下,我并不是问哪种语言更好,我很好奇,用这种方式实现语言的原因是什么。
我使用的是Python2.7和MySQLdb。我在下面的代码中得到了这个错误:
Value = 5
x.execute("SELECT number from Testing where id ='%s';" % Value)
data = x.fetchall()
print (data)
data = data[0][0]
data = data + 0.5
x.execute(""" UPDATE Testing SET number = %s WHERE id = %s """, (data, Value)