小编Pio*_*ski的帖子

Python中的函数定义需要花费大量时间

为什么python试图计算p定义期间的值?定义此功能需要很长时间.

def f():
    raise Exception('Some error')
    p = 2322111239**42322222334923492304923

print 'Defined!'
Run Code Online (Sandbox Code Playgroud)

另外,如果p在定义期间计算值,为什么可以无错误地定义此函数?

def f():
    return 4
    p = 11/0
Run Code Online (Sandbox Code Playgroud)

这个显然工作正常,因为不涉及常量:

def f():
    raise Exception('Some error')
    x=42322222334923492304923
    p = 2322111239**x

print 'Defined!'
Run Code Online (Sandbox Code Playgroud)

python function python-2.7

11
推荐指数
2
解决办法
370
查看次数

用于机器学习的外部GPU

我拥有MacBook Pro 15'2014年中期,我正在考虑购买Titan X GPU来加速我的神经网络的训练.Titan将通过Thunderbolt 2作为外部GPU连接.

我可以从这种设置中获得什么样的性能 - 它是否与连接到主板相同?霹雳是否会限制GPU的速度?

macos gpu

10
推荐指数
2
解决办法
5127
查看次数

Python:通过套接字在两台计算机之间发送数据

我正在开发一个脚本,可以在两台不同的计算机之间传输数据,并可以访问互联网.我正在使用python的socket标准模块.当我在单台计算机上运行客户端和服务器时,它工作正常,但是当它们在不同的计算机上运行时,我无法使其工作.

这是我的服务器代码的一部分:

import socket, time,os, random

class Server():
  def __init__(self,Adress=('',5000),MaxClient=1):
      self.s = socket.socket()
      self.s.bind(Adress)
      self.s.listen(MaxClient)
  def WaitForConnection(self):
      self.Client, self.Adr=(self.s.accept())
      print('Got a connection from: '+str(self.Client)+'.')


s = Server()
s.WaitForConnection()
Run Code Online (Sandbox Code Playgroud)

这是我的客户端代码的一部分:

import socket

class Client():
   def __init__(self,Adress=("Here is the IP of the computer on which the \
                                   server scrip is running",5000)):
      self.s = socket.socket()
      self.s.connect(Adress)

c = Client()
Run Code Online (Sandbox Code Playgroud)

当我在具有Internet访问权限的两台不同计算机上运行这些脚本时,客户端无法连接并引发错误,服务器正在等待连接永远.

我究竟做错了什么?

python sockets connection tcp

8
推荐指数
1
解决办法
2万
查看次数

在Python 2.7中模拟按键事件

我想要做的是在Windows上按Python脚本级别的任何键盘键.我尝试过SendKeys,但它只适用于python 2.6.我试过的其他方法包括

import win32com.client 
win32com.client.Dispatch("WScript.Shell").SendKeys('String to be typed')
Run Code Online (Sandbox Code Playgroud)

只允许从脚本级别键入字符串,但不允许按ENTER键和其他"特殊"键.

因此我的问题是:如何从python脚本级别模拟任何键盘按键事件,包括"特殊",如ENTER,CTRL,ESC等.

如果可以在任何指定的时间按住一个键并按下Alt + F4之类的组合键,这将非常有用.

python api simulation keyboard events

8
推荐指数
1
解决办法
2万
查看次数

Python递归RuntimeError

def f1():
    f1()
Run Code Online (Sandbox Code Playgroud)

我们都知道在Python中调用这个函数会产生 RuntimeError: maximum recursion depth exceeded

我写了它的sligtly修改版本:

def f2():
    try:
        f2()  #This line throws an error
    finally: #except works too
        f2()  #This line does not throw an error!
Run Code Online (Sandbox Code Playgroud)

第二个函数永远运行而不抛出RuntimeError.更重要的是,我无法通过CtrlC组合阻止它.

我不明白为什么调用f2()不会抛出RuntimeError.你能解释一下吗?

python recursion

8
推荐指数
1
解决办法
1211
查看次数

Python元组到C数组

我写一个C函数接受一个Python tupleints作为参数.

static PyObject* lcs(PyObject* self, PyObject *args) {
    int *data;
    if (!PyArg_ParseTuple(args, "(iii)", &data)) {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

我能够转换一个固定长度的元组(这里是3)但是如何arraytuple任何长度获得一个C ?

import lcs
lcs.lcs((1,2,3,4,5,6)) #<- C should receive it as {1,2,3,4,5,6}
Run Code Online (Sandbox Code Playgroud)

编辑

我可以传递一个由';'分隔的数字来代替元组.例如'1; 2; 3; 4; 5; 6'并将它们与C代码中的数组分开.但我不认为这是一种正确的方法.

static PyObject* lcs(PyObject* self, PyObject *args) {
    char *data;
    if (!PyArg_ParseTuple(args, "s", &data)) {
        ....
    }
    int *idata;
    //get ints from data(string) and place them in idata(array of ints)
}
Run Code Online (Sandbox Code Playgroud)

编辑(解决方案)

我想我找到了一个解决方案:

static PyObject* lcs(PyObject* …
Run Code Online (Sandbox Code Playgroud)

c python arrays tuples

7
推荐指数
1
解决办法
3585
查看次数

如何更改存储在内存地址中的值?

让我们说内存地址0A7F03E4存储一个值124.如何将其更改为300使用python?是否有为此类任务提供的模块?

python memory

5
推荐指数
1
解决办法
5949
查看次数

素数发现函数的优化

经过10分钟的工作,我写了一个功能如下.它返回一个低于参数的所有素数的列表.我已经使用了所有已知的编程和数学技巧,以尽可能快地完成此功能.为了找到低于一百万的所有素数,它需要大约2秒.

您是否认为有进一步优化的可能性?有任何想法吗?

def Primes(To):
  if To<2:
    return []
  if To<3:
    return [2]
  Found=[2]
  n=3
  LastSqr=0
  while n<=To:
     k=0
     Limit=len(Found)
     IsPrime=True
     while k<Limit:
         if k>=LastSqr: 
            if Found[k]>pow(n,0.5): 
               LastSqr=k
               break
         if n%Found[k]==0:
            IsPrime=False
            break
         k+=1
     if IsPrime:
        Found.append(n)
     n+=1
  return Found
Run Code Online (Sandbox Code Playgroud)

python primes

1
推荐指数
1
解决办法
160
查看次数

XorShift数字生成

用C和Python编写的相同XorShift函数给出了不同的结果.你能解释一下吗?

XorShift函数以下列方式生成数字:

x(0) = 123456789
y(0) = 362436069
z(0) = 521288629
w(0) = 88675123 

x(n+1) = y(n)
y(n+1) = z(n)
z(n+1) = w(n)
w(n+1) = w(n) ^ (w(n)>>19) ^ (x(n)^(x(n)<<11)) ^ ((x(n)^(x(n)<<11)) >> 8)
Run Code Online (Sandbox Code Playgroud)

我在Python中编写了这个函数来生成w的后续值:

X = 123456789
Y = 362436069
Z = 521288629
W = 88675123

def xor_shift():
    global X, Y, Z, W
    t = X ^ (X << 11)
    X = Y
    Y = Z
    Z = W
    W = W ^ (W >> 19) ^ t ^ …
Run Code Online (Sandbox Code Playgroud)

c c++ python xor shift

1
推荐指数
1
解决办法
2229
查看次数

具有正确语法的Python SyntaxError

为什么这段代码给我一个语法错误:

eval(1485*'not ' + '1')
Run Code Online (Sandbox Code Playgroud)

显然语法是正确的.1485以下的工作正常.而1496及以上我得到了内存错误.我认为应该引发MemoryError而不是SyntaxError.

python syntax python-2.7

1
推荐指数
1
解决办法
120
查看次数

标签 统计

python ×9

c ×2

python-2.7 ×2

api ×1

arrays ×1

c++ ×1

connection ×1

events ×1

function ×1

gpu ×1

keyboard ×1

macos ×1

memory ×1

primes ×1

recursion ×1

shift ×1

simulation ×1

sockets ×1

syntax ×1

tcp ×1

tuples ×1

xor ×1