我想知道是否:
a = "abcdef"
b = "def"
if a[3:] == b:
print("something")
Run Code Online (Sandbox Code Playgroud)
实际上是否执行了a内存中某处“def”部分的副本,或者是否就地完成了字母检查?
注意:我说的是一个字符串,而不是一个列表(我知道答案)
我正在使用(Py)OpenGL来显示256色索引图像.我使用着色器和包含调色板的一维纹理.这是片段着色器代码:
#version 330
uniform sampler2D texture;
uniform sampler1D palette;
void main()
{
vec2 uv = gl_TexCoord[0].xy;
vec4 color = texture2D(texture, uv);
gl_FragColor = texture1D(palette, color.a) ;
}
Run Code Online (Sandbox Code Playgroud)
为避免舍入错误,所有MAG和MIN过滤器都设置为NEAREST.
我看到1D纹理的纹理坐标的方式是:
我将自己的整数索引转换为0到1之间的浮点数,以确保发生了什么,使用公式x_float =(x_int + .4)/ 256,即x_float位于前面提到的区间内,稍早于其中心(到避免结果在间隔的错误一侧舍入).
但它不起作用.我制作了256个细胞的检查板,颜色索引为0到255,灰色等级调色板(从0x000000到0xFFFFFF).代码如下.然后我制作了一个屏幕快照并在Paint.NET中编辑它以查看颜色是否正确,并注意到颜色为0xE0的跳转:我得到两次颜色0xDF,并且从这一个,所有内容都移动了一个:最后一个颜色是0xFE而不是0xFF
我怀疑某种舍入错误,但不知道如何...
这是完整的代码:
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
from OpenGL.arrays import vbo
from OpenGL.GL import shaders
from numpy import *
def checkboard(size = 512, cell = 32):
bitmap = zeros(size …Run Code Online (Sandbox Code Playgroud) 几秒钟后(大约5秒),这段简单的代码崩溃(窗口没有响应).
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 24)
#clock = pygame.time.Clock()
#font = pygame.font.Font(None, 32)
cycles = 0
while True:
screen.fill(0)
# text = font.render('Cycles : %d' % cycles, True, (255, 255, 255))
# screen.blit(text, (100, 100))
cycles += 1
pygame.display.update()
Run Code Online (Sandbox Code Playgroud)
如果我取消注释注释行,我可以清楚地看到程序在显示47到50之间的值时失控.
我使用python 2.7和pygame 1.9.2,Windows 8(64位)和Eclipse + PyDev.
这是初学者Numpy用户的一个基本问题:我有一个5行2列的2D数组,你可以看到10个2d向量,我想测试一个给定的向量是否在表中.
例如 :
>>> tableau = array(range(10), dtype = uint8)
>>> tableau.shape = (5,2)
>>> print tableau
[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]]
>>> [0, 1] in tableau
True
Run Code Online (Sandbox Code Playgroud)
最后一行给出了True,但在'tableau'中也是'[0,2].
目前,我计算欧几里得距离是否为0,但我确信这是一个更简单的答案.
谢谢你的帮助