当我输入前面带有0的小整数到python时,它们会产生奇怪的结果.为什么是这样?
>>> 011
9
>>> 0100
64
>>> 027
23
Run Code Online (Sandbox Code Playgroud)
注意:Python版本2.7.3我在Python 3.0中对此进行了测试,显然现在这是一个错误.所以这是版本特定的.
编辑:他们显然仍然是整数:
>>> type(027)
`<type 'int'>`
Run Code Online (Sandbox Code Playgroud) 可能重复:
分段尝试在C中打印值时出错
我对C很新,但不知道为什么这个程序会破坏.如果我删除了与之相关的行,程序将编译并运行i,但如果我分配i,我不能再分配任何东西*ptr而不打破程序.
int main(void)
{
int i;
int *ptr;
i = 2;
*ptr = 5;
printf("%d",*ptr);
}
Run Code Online (Sandbox Code Playgroud) 当我创建一个球的实例,然后将其复制到另一个变量时,更改原始也会更改球的副本.例如,采用下面的简化示例:
class Ball() {
Color _color;
public Ball(Color startColor) {
_color = startColor;
}
public void setColor(Color newColor) {
_color = newColor;
}
}
Ball myBall = new Ball(black);
Ball mySecondBall = myBall;
myBall.setColor(white);
Run Code Online (Sandbox Code Playgroud)
我已经省略了_color的存取方法,但是如果我得到了球的颜色,那么它们现在都是白色的!所以我的问题是:
我在我的python代码中使用这个循环:
final_fun=[]
for i_base in xrange(n_base):
final_fun.append(sum(fun[:,i_base])/n_ci)
Run Code Online (Sandbox Code Playgroud)
我想知道如何简化这个循环?如果我简化这个循环,我的程序会更快吗?一般来说,我知道如何简化这个,但在这里我被追加阻止了!
我有一个稳定增长的元素列表,直到我将该列表中的所有数据转储到一个文件中.然后,我想再次将该列表重用于同一目的.简单地将其分配给新列表而不是从列表中删除所有元素是不好的做法吗?似乎垃圾收集应该处理旧列表,这样我就不必担心删除元素了.
例如:
var myList = new List<element>();
myList.Add(someElement);
myList.Add(anotherElement);
// dumps the elements into a file
myList = new List<element>();
Run Code Online (Sandbox Code Playgroud)
编辑:即使有很简单的方法,我也想知道它的哲学方面.如果周围有办法让垃圾收集起来是不是很糟糕?允许垃圾收集与删除元素和重用相同内存的成本是多少?
我在这里的第二行到最后一行遇到了语法错误,但不知道为什么.它看起来与它之前的第2行相同,但由于某种原因我得到了语法错误.我已经尝试过它和它之前的线和它之间的空行,结果相同.
## numlist = some list
array_size = 20
for row in xrange(array_size):
for col in xrange(array_size):
if(col<=(array_size-4)):
check(sum(numlist[row][col:col+4])
if(row<=(array_size-4)):
check(sum([numlist[row+i][col] for i in range(4)]))
Run Code Online (Sandbox Code Playgroud)