我想开始涉足Perl 6.我编程的很大一部分涉及SQLite数据库.看起来在Perl 6中使用SQLite已经付出了工作,但我能找到的大部分信息都陈旧而模糊.
我在这里看到了一个"perl6-sqlite"模块,但它被标记为[old]并且几乎没有.我也看到了基于与Java有关的新DBI的引用,但大多数谈话都来自去年,目前还不清楚是否有一些有用的东西.
那么目前在Perl 6中使用SQLite是否可以接受?
在另一个问题的答案中,观察到一种奇怪的行为,特别是Python 3. 命令的文档truncate说明(强调我的):
将流大小调整为给定大小(以字节为单位)(如果未指定大小,则调整当前位置).当前流位置不会更改.此大小调整可以扩展或减少当前文件大小.在扩展的情况下,新文件区域的内容取决于平台(在大多数系统上,额外的字节是零填充的).将返回新文件大小.
然而...
>>> open('temp.txt', 'w').write('ABCDE\nFGHIJ\nKLMNO\nPQRST\nUVWXY\nZ\n')
32
>>> f = open('temp.txt', 'r+')
>>> f.readline()
'ABCDE\n'
>>> f.tell()
6 # As expected, current position is 6 after the readline
>>> f.truncate()
32 # ?!
Run Code Online (Sandbox Code Playgroud)
它不是在当前位置(6)截断,而是在文件末尾截断(即根本不截断).通过检查磁盘上的文件来验证这一点.
此过程在Python 2中按预期工作(文件截断为6个字节),在Python 3中也使用StringIO而不是文件.为什么Python 3中的文件不能正常工作?这是一个错误吗?
(编辑:如果f.seek(6)在truncate.之前给出显式,它也可以正常工作.)
import serial
import numpy
import matplotlib.pyplot as plt
from drawnow import *
data = serial.Serial('com3',115200)
while True:
while (data.inWaiting() == 0):
pass
ardstr = data.readline()
print (ardstr)
Run Code Online (Sandbox Code Playgroud)
在这里,我试图从arduino获取数据,但它是以格式输入的b'29.20\r\n'。我想要以格式显示数据,"29.20"以便对其进行绘制。
我尝试过ardstr = str(ardstr).strip('\r\n'),ardstr.decode('UTF-8')
但没有一个在工作。我的python版本是3.4.3。
我该怎么做才能得到结果"29.40"而不是"b'29.20\r\n'"?
我在下面运行了一个装饰器演示。
def logger(func):
def inner(*args, **kwargs):
print(args)
print(kwargs)
return func(*args, **kwargs)
return inner
@logger
def foo1(a, b, c, x=2, y=1):
print(x * y)
foo1(6,7,8)
Run Code Online (Sandbox Code Playgroud)
输出是:
(6, 7, 8)
{}
2
Run Code Online (Sandbox Code Playgroud)
为什么字典是空的?我认为应该是{'x':2, 'y':1}
我有以下代码:
from sympy import *
x = Symbol("x")
f = Function("f")(x)
diff(3*x + 2, x) # == 3
diff(f, x).subs(f, 3*x + 2) # == Derivative(3*x + 2, x) <- Why not 3?
Run Code Online (Sandbox Code Playgroud)
为什么sympy不求我的时候取代了表达f与表达x?
作为模拟通过孔径的衍射的长程序的一部分,我正在摆弄,试图让我的结果的plt.imshow()原点位于图的中心,即我希望改变轴。
相关代码部分是:
n=40
lam=0.0006
k=(2*np.pi)/lam
z=float(input("Type screen distance, z in mm: "))
rho=float(input("Type rho in mm: "))
delta = 2/n
intensity = np.zeros((n+1,n+1))
for i in range(n+1):
x=-1+(i*delta)
for j in range(n+1):
y =-1+(j*delta)
intensity[i,j] = (abs(square_2dsimpson_eval(-rho/2,rho/2,n)))**2
plt.imshow(intensity)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个样式来翻转单单元格表格,例如:
<TABLE ONCLICK='goSomewhere("http://en.wiktionary.org/wiki/yes", "http://en.wiktionary.org/wiki/no")' CLASS="mybutton">
<TR>
<TD>This is a button</TD>
</TR>
</TABLE>
Run Code Online (Sandbox Code Playgroud)
通过 CSS 插入按钮,例如:
table.mybutton {
border : 1px solid;
border-radius : 8px;
border-spacing : 2px;
font-size : 80%;
display : inline-table;
cursor : pointer;
}
table.mybutton:hover {
background-color : black;
color : white;
}
Run Code Online (Sandbox Code Playgroud)
根据是否通过此 Javascript 按住 Shift 键,我设法让它访问两个 URL 之一:
var shift = false;
function shiftHandler(event) {
shift = event.shiftKey;
};
window.addEventListener("keydown", shiftHandler, false);
window.addEventListener("keypress", shiftHandler, false);
window.addEventListener("keyup", shiftHandler, false);
function goSomewhere(url1, url2) {
if (shift) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Python 中向二维数组添加额外的列,但我陷入困境。我有一个如下所示的二维数组:
['000', '101']
['001', '010']
['010', '000']
['011', '100']
Run Code Online (Sandbox Code Playgroud)
然后我交换第二列中的 2 个元素,得到如下内容:
['000', '101']
['001', '000']
['010', '010']
['011', '100']
Run Code Online (Sandbox Code Playgroud)
我想现在将最后一列添加为第三列,如下所示:
['000', '101', '101']
['001', '010', '000']
['010', '000', '010']
['011', '100', '100']
Run Code Online (Sandbox Code Playgroud)
但我只设法得到这个:
['000', '101']
['001', '000']
['010', '010']
['011', '100']
101
000
010
100
Run Code Online (Sandbox Code Playgroud)
我正在添加这样的列:
col = column(data,1)
data_res += col
Run Code Online (Sandbox Code Playgroud)
我正在创建一个像这样的数组:
with open('data.txt', 'r') as f:
for line in f:
line_el = line.split()
data.append(line_el)
Run Code Online (Sandbox Code Playgroud)
我这样交换:
def swap(matrix, id_l, id_r):
matrix[id_l][1], matrix[id_r][1] = matrix[id_r][1],matrix[id_l][1]
return matrix …Run Code Online (Sandbox Code Playgroud) 我有一个 numpy.ndarray 如下。这是 talib.RSI 的输出。这是 numpy.ndarray 的类型。我想获得滚动列表(windows=3).max() 和滚动列表(window=3).min
怎么做?
[ nan nan nan nan nan
nan nan nan nan nan
nan nan nan nan 56.50118203
60.05461743 56.99068148 55.70899949 59.2299361 64.19044898
60.62186599 53.96346826 44.06538636 52.04519976 51.32884016
58.65240379 60.44789401 58.94743634 59.75308787 53.56534397
54.22091468 47.22502341 51.5425848 50.0923126 49.80608264
45.69087847 50.07778871 54.21701441 58.79268406 63.59307774
66.08195696 65.49255218 65.11035657 68.47403716 70.70530564
73.21955929 76.57474822 65.89852612 66.51497688 72.42658468
73.80944844 69.56561001]
Run Code Online (Sandbox Code Playgroud) 如果我没记错的话a is b应该返回Trueifa和b指向同一个对象。对于两个相等的列表,它会返回False,因为这两个列表是两个不同的列表。我认为不可变对象没有这个问题,但是当我输入时:
a = (1, 2, 3)
b = (1, 2, 3)
a is b #returns false
Run Code Online (Sandbox Code Playgroud)
我认为这应该返回True并a指向b具有相同值的不可变对象。为什么我使用元组时没有a指向同一个对象b?
python ×7
python-3.x ×4
matplotlib ×2
arduino-uno ×1
arrays ×1
css ×1
decorator ×1
file-io ×1
html ×1
immutability ×1
javascript ×1
numpy ×1
perl6 ×1
python-3.5 ×1
raku ×1
sqlite ×1
sympy ×1
tuples ×1