小编Jul*_*ien的帖子

Python:从字符串名称调用函数

我有一个str对象,例如:menu = 'install'.我想从这个字符串运行install方法.例如,当我打电话时,menu(some, arguments)它会打电话install(some, arguments).有没有办法做到这一点?

python

72
推荐指数
3
解决办法
10万
查看次数

在python中通过进程名称获取PID的跨平台方法

在主机上运行多个具有相同名称的进程.使用pythonjython通过名称获取这些进程的PID的跨平台方法是什么?

  1. 我想要像pidofpython 一样的东西.(pidof反正我也没有.)
  2. 我无法解析,/proc因为它可能不可用(在HP-UX上).
  3. 我不想运行os.popen('ps')和解析输出,因为我觉得它很难看(字段顺序可能在不同的操作系统中有所不同).
  4. 目标平台是Solaris,HP-UX和其他平台.

python cross-platform jython hp-ux

50
推荐指数
4
解决办法
6万
查看次数

在python中,发生异常时会自动释放锁吗?

例如:

import threading

lock = threading.Lock()

with lock:
    some code that throws an exception
Run Code Online (Sandbox Code Playgroud)

这是假设抛出异常的代码没有包含在 try except 块中。

python locking

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

Python。如何从 Python 中的列表中删除零

X = [0,5,0,0,3,1,15,0,12]

for value in range(0,len(X)):

    if X[value] <= 0:
        del X[value]
        print(X)
print(X)
Run Code Online (Sandbox Code Playgroud)

我运行了代码,但是我收到一条错误消息,指出列表超出了索引范围。有人可以帮我解决这个错误吗

python

7
推荐指数
2
解决办法
3万
查看次数

Tensorflow:Py_func返回未知形状

我有一个简单的问题是tf.py_func功能.

我有一个my_img形状张量的形状(1,224,224,3).为了测试py_func,我将张量提供给python函数return_tf,该函数应该返回相同的张量(根据文档转换为numpy数组之后).

这是代码:

def return_tf(x):
   return np.array(x)

test = tf.py_func(return_tf,[my_img],[tf.float32])
Run Code Online (Sandbox Code Playgroud)

但当我检查返回张量的形状时test,我得到:

tf.Tensor 'PyFunc:0' shape=unknown dtype=float32
Run Code Online (Sandbox Code Playgroud)

我也无法eval()在张量上运行,因为我收到了错误:

AttributeError: 'list' object has no attribute 'eval'.
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何修复由张量返回的张量形状tf.py_func

python numpy tensorflow

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

我在Python中对多边形点(约旦曲线定理)的改编是否正确?

问题

我最近发现需要确定我的点是否在多边形内部。所以我学习了C++中的这种方法并将其改编到Python中。但是,我认为我正在研究的 C++ 代码不太正确?我相信我已经解决了这个问题,但我不太确定,所以我希望比我聪明的人可以帮助我解决这个问题?

这个定理非常简单,其想法是这样的,给定一个闭合多边形,你画一条任意的线,如果你的点在里面,你的线将与边缘相交奇数次。否则,你将是均匀的并且它在多边形之外。非常酷。

我有以下测试用例:

    polygon_x = [5, 5, 11, 10]
    polygon_y = [5, 10, 5, 10]
    test1_x = 6
    test1_y = 6

    result1 = point_in_polygon(test1_x, test1_y, polygon_x, polygon_y)
    print(result1)

    test2_x = 13
    test2_y = 5
    result2 = point_in_polygon(test2_x, test2_y, polygon_x, polygon_y)
    print(result2)
Run Code Online (Sandbox Code Playgroud)

如果我将其定义如下,则上面的内容都会为 false:

            if polygon_x[i] < polygon_x[(i+1) % length]:
                temp_x = polygon_x[i]
                temp_y = polygon_x[(i+1) % length]
            else:
                temp_x = polygon_x[(i+1) % length]
                temp_y = polygon_x[i]
Run Code Online (Sandbox Code Playgroud)

这是错误的!我应该先为true然后result1falseresult2。很明显,有些东西很时髦。 …

python intersection polygon points python-3.x

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

如何使用来自 Qt PushButton 的单击信号传递值?

我有 n 个按钮最初都标记为“0”。当程序运行时,这些标签或值将更改为不同的整数,例如在某些时候我可能有:'7'、'0'、'2'、...

我有一个将 int 作为参数的函数(或插槽):

void do_stuff(int i);
Run Code Online (Sandbox Code Playgroud)

我想在按下“x”时调用 do_stuff(x)。即:当按下任何按钮时,使用该按钮的值调用 do_stuff。我怎样才能做到这一点?到目前为止,我有类似的东西:

std::vector values; // keeps track of the button values
for (int i = 0; i < n; i++){
    values.push_back(0);
    QPushButton* button = new QPushButton("0");
    layout->addWidget(button);
    // next line is nonsense but gives an idea of what I want to do:
    connect(button, SIGNAL(clicked()), SLOT(do_stuff(values[i])));
}
Run Code Online (Sandbox Code Playgroud)

c++ qt slot

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

python-igraph如何添加带权重的边?

python-igraph如何添加带权重的边?

我有一个像[('1', '177', 1.0), ('1', '54', 1.0), ('1', '61', 2.0), ('1', '86', 2.0), ('10', '100', 38.0)]. 元组中的最后一个是从'1'到的边的权重'177'。但是如何添加呢?我用

g.add_vertices(vertexList)
g.add_edges(edgelist)
Run Code Online (Sandbox Code Playgroud)

但这是错误的。

python igraph

3
推荐指数
2
解决办法
5073
查看次数

python argparse 数组而不是 str

我在使用 argparse 时遇到问题。使用下面的代码,我期望 args.dir 是一个字符串,但我得到了一个数组。我怎样才能得到一个字符串?有人可以帮忙吗?

#!/usr/bin/env python3

import sys
import argparse

#import mysql.connector

# Set version number
version = '1.0.0'

# Parse arguments supplied on the commandline
argparser = argparse.ArgumentParser(description=sys.argv[0])
argparser.add_argument('dir', nargs=1, type=str, help='directory to view')
args = argparser.parse_args()

# Print program name and version number to stdout
print(argparser.prog + " v" + version)
print('Creating index for: ' + args.dir[0])
Run Code Online (Sandbox Code Playgroud)

python argparse

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

python中的字母位置

新手在这里...尝试编写一个函数,该函数接受一个字符串并将所有字符替换为其各自的字典值。这是我所拥有的:

def alphabet_position(text):

    dict = {'a':'1','b':'2','c':'3','d':'4','e':'5','f':'6','g':'7','h':'8':'i':'9','j':'10','k':'11','l':'12','m':'13','n':'14','o':'15','p':'16','q':'17','r':'18','s':'19','t':'20','u':'21','v':'22','w':'23','x':'24','y':'25','z':'26'}
    text = text.lower()
    for i in text:
        if i in dict:
            new_text = text.replace(i, dict[i])
    print (new_text)
Run Code Online (Sandbox Code Playgroud)

但是当我运行时:

alphabet_position("The sunset sets at twelve o' clock.")
Run Code Online (Sandbox Code Playgroud)

我得到:

the sunset sets at twelve o' cloc11.
Run Code Online (Sandbox Code Playgroud)

这意味着它只更改字符串中的最后一个字符。有任何想法吗?非常感谢任何输入。

python

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