小编shx*_*hx2的帖子

从子线程停止主线程

我正在写一个python程序,在main函数中我正在启动一个连续运行的线程.启动线程后,main函数进入while循环,连续进行用户输入.如果子线程中有异常,我也想结束main函数.最好的方法是什么?

提前致谢

python multithreading exception

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

Python raw_input搞乱字符串连接

我正在尝试在Python中做一些相对简单的事情,我很惊讶这对于它应该是多么简单而言并不起作用.

我在这里只是想连接三个简单的字符串.输入raw_input的输入在"abc"以下所有情况下:

proj = raw_input("Name of project: ")
print proj
ProjRegex = 'test1' + proj + 'test2'
print ProjRegex
Run Code Online (Sandbox Code Playgroud)

产量:

abc
test2abc
Run Code Online (Sandbox Code Playgroud)

案例2

proj = raw_input("Name of project: ")
print proj
ProjRegex = 'test1%stest2' % (proj)
print ProjRegex
Run Code Online (Sandbox Code Playgroud)

产量:

abc
test2abc
Run Code Online (Sandbox Code Playgroud)

请注意,在两种情况下,不是"test1abctest2"按预期打印,而是将test2替换为test1.

然后我注意到如果我没有使用raw_input,如果我说:

proj = "abc"
ProjRegex = 'test1' + proj + 'test2'
Run Code Online (Sandbox Code Playgroud)

然后它表现得像预期的那样.

那么发生的事情raw_input()是想要进行字符串替换吗?我的理解是它需要键盘输入,剥离换行符,并以字符串形式返回.

python windows string concatenation raw-input

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

当我将其设置为全局时,在 python 中赋值之前引用的局部变量

from random import randint
shifts = [4, 4.2, 5, 6, 7]
days_names = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday']
workers_names = ['Itai', 'Or', 'Reut', 'Kuka', 'Aviel']
counter = 1

def shift_arrange(worker):
    for day in days.values():
        counter+=1
        global avilable_shifts
        avilable_shifts = check_avilable_shifts(day)
        if not random_shifte_selector(worker,day): soft_reset(worker)
Run Code Online (Sandbox Code Playgroud)

我将计数器设置为全局变量,当我尝试运行此代码时,出现局部变量错误:

Traceback (most recent call last):
  File "C:\Or\mypy\shift creator\shift cretor.py", line 144, in <module>
    for w in workers.values(): shift_arrange(w)
  File "C:\Or\mypy\shift creator\shift cretor.py", line 105, in shift_arrange
    counter+=1
UnboundLocalError: local variable 'counter' referenced before assignmen
Run Code Online (Sandbox Code Playgroud)

我看到有人在这里问这个问题,他删除了他的 …

python variables runtime-error global-variables

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

使用Smack将带有Payload的项目发布到Pubsub节点

我正在尝试使用Smack将带有负载的项目发布到pubsub节点,但到目前为止我还没有管理.我创建了节点并设置其配置以提供有效负载(setDeliverPayloads = true).我使用send方法发送带有效负载的项目.

 node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload("my book", "books:pubsub:simple", "")));
Run Code Online (Sandbox Code Playgroud)

然而,该项目没有有效载荷.构造的IQ也没有有效载荷.正如我从smack的调试面板中看到的那样

这是由smack构建并发送到pubsub服务(显然没有负载)

<iq id="1ha20-11" to="pubsub.127.0.0.1" type="set">
   <pubsub xmlns="http://jabber.org/protocol/pubsub">
   <publish node="autoIncrement">
       <item id="autoIncrement*1333380921970"/>
   </publish>
  </pubsub>
</iq>
Run Code Online (Sandbox Code Playgroud)

我很感激任何帮助来解决这个问题.当然我仍然可以使用本机IQ消息,但我会尽量避免使用smack API中的PubSubManager.

xmpp openfire publish-subscribe smack whack

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

在回溯中使用`delete`取消分配时出现`free()`错误

我从gdb得到以下错误:

*** glibc detected *** /.root0/autohome/u132/hsreekum/ipopt/ipopt/debug/Ipopt/examples/ex3/ex3: free(): invalid next size (fast): 0x0000000120052b60 ***
Run Code Online (Sandbox Code Playgroud)

这是回溯:

#0  0x000000555626b264 in raise () from /lib/libc.so.6
#1  0x000000555626cc6c in abort () from /lib/libc.so.6
#2  0x00000055562a7b9c in __libc_message () from /lib/libc.so.6
#3  0x00000055562aeabc in malloc_printerr () from /lib/libc.so.6
#4  0x00000055562b036c in free () from /lib/libc.so.6
#5  0x000000555561ddd0 in Ipopt::TNLPAdapter::~TNLPAdapter ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#6  0x00000055556a9910 in Ipopt::GradientScaling::~GradientScaling ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#7  0x00000055557241b8 in Ipopt::OrigIpoptNLP::~OrigIpoptNLP ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#8  0x00000055556ae7f0 in Ipopt::IpoptAlgorithm::~IpoptAlgorithm ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#9  0x0000005555602278 in …
Run Code Online (Sandbox Code Playgroud)

c++ debugging ipopt

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

`map`-like函数保留序列类型

我想实现一个类似map的函数,它保留输入序列的类型. map不保留它:

map(str, (8, 9))  # input is a tuple
=> ['8', '9']     # output is a list
Run Code Online (Sandbox Code Playgroud)

我提出的一种方法是:

def map2(f, seq):
   return type(seq)( f(x) for x in seq )

map2(str, (1,2))
=> ('1', '2')
map2(str, [3,4])
=> ['3', '4']
map2(str, deque([5,6]))
=> deque(['5', '6'])
Run Code Online (Sandbox Code Playgroud)

但是,如果seq是迭代器/生成器,则不起作用. imap适用于这种情况.

所以我的问题是:

  1. 有没有更好的实现方式map2,支持列表,元组和其他许多方法?
  2. 是否有一种优雅的方式可以扩展map2到也支持生成器(就像imap这样)?显然,我想避免:try: return map2(...) except TypeError: return imap(...)

我正在寻找类似的东西的原因是我正在编写一个函数装饰器,它将返回值从X型转换为Y.如果原始函数返回一个序列(让我们假设一个序列只能是一个列表,我认为它是一个X序列,我想把它转换成Y的相应序列(同时保留序列的类型).

你可能已经意识到,我正在使用python 2.7,但python 3也很有用.

python list generator python-2.7

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

Visual Studio 2013 - 如何在起始页面上显示rss新闻?

如何在主页visual studio 2013上启用rss新闻源?因为它是在2012年的视觉工作室.

rss feed start-page visual-studio-2013

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

我无法在linux中杀死我的python脚本

我试图杀死我的python进程并始终在那里.

也尝试使用sudo,如果我使用顶级命令,该过程仍然存在.

python脚本是由我创建的,没有其他进程在不断调用.

ubuntu@ip-*******:~/Desktop/Servidor$ pkill python -e

python killed (pid 1284)

ubuntu@ip-*******:~/Desktop/Servidor$ pkill python -e

python killed (pid 1284)

ubuntu@ip-*******:~/Desktop/Servidor$ pkill python -e

python killed (pid 1284)
Run Code Online (Sandbox Code Playgroud)

python linux kill-process

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

Python:检查生成器中是否存在对象

我有一个错误是由检查"如果x在发电机中"的变化结果引起的

def primes(upper_limit):
    for n in range(2, upper_limit):
        if all(n % i > 0 for i in range(2, n)):
            yield n

first_hundred_primes = primes(100)

print(5 in first_hundred_primes)
print(5 in first_hundred_primes)
print(5 in first_hundred_primes)
print(5 in first_hundred_primes)
print(5 in first_hundred_primes)
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

True
False
False
False
False
Run Code Online (Sandbox Code Playgroud)

我假设一个不是要检查一个对象是否存在于生成器中,但如果是这种情况,为什么它不会抛出一些错误,为什么这个工作?

>>> hundred_generator = range(1,100)
>>> 50 in hundred_generator
True
>>> 50 in hundred_generator
True
>>> 50 in hundred_generator
True
Run Code Online (Sandbox Code Playgroud)

在我检查是否存在某个对象(加快检查)之前,我通常会将生成器变成一个集合,这样可以解决问题,但我非常想知道这里发生了什么?

python list generator range

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

python:删除列表中的多个项目

我想删除b中的所有项目,其中将是[7,8,9,0],我怎么能这样做,这似乎不起作用

In [21]:
a=[1,2,3,4,5]
b=[1,2,3,5,5,5,7,8,9,0]
for i in b:
    if i in a:
        print i
        b.remove(i)
print b
Run Code Online (Sandbox Code Playgroud) #
Out[21]:
1
3
5
[2, 5, 5, 7, 8, 9, 0]
Run Code Online (Sandbox Code Playgroud)

python list

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

使用 linalg.block_diag 来表示可变数量的块

所以我有一个生成各种矩阵的代码。这些矩阵需要存储在块对角矩阵中。这应该相当简单,因为我可以使用 scipy 的:

scipy.linalg.block_diag(*arrs)
Run Code Online (Sandbox Code Playgroud)

然而我遇到的问题是我不知道需要像这样存储多少个矩阵。我想让事情尽可能简单(自然地)。我想做一些类似的事情:

scipy.linalg.block_diag( matrix_list[ii] for ii in  range(len(matrix_list)) )
Run Code Online (Sandbox Code Playgroud)

但这行不通。我可以想到其他一些方法来做到这一点......但对于我认为应该简单得多的事情来说,它们都变得相当复杂。

有谁知道(或知道)执行此操作的简单方法?

提前致谢!

python numpy matrix parameter-passing scipy

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

最后一个awk nth元素

我试图在UNIX shell中获得第n个元素,"第n个元素"存储在变量中.

我尝试了以下awk,但没有一个工作.

awk '{print $NF-$minus_day}'
awk '{print $(NF-$minus_day)}'
awk '{print $(NF-minus_day)}'
Run Code Online (Sandbox Code Playgroud)

shell awk

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

Python中日期对象的拼接列表

是否有一种简单的方法来拼接日期对象列表:

spliced = sortedDates[startDate:endDate]
print spliced
Run Code Online (Sandbox Code Playgroud)

或者这需要枚举?

示例:

sortedDates = [July 1 2012, July 2 2012, July 3 2012, July 4, 2012]
spliced = sortedDates[July 2 2012:July 4 2012]
Run Code Online (Sandbox Code Playgroud)

python slice

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