小编use*_*ica的帖子

同时运行两个进程

我正在尝试同时运行 2 个进程,但只有第一个运行

def add():
    while True:
        print (1)
        time.sleep(3)

def sud():
     while True:
        print(0)
        time.sleep(3)

p1 = multiprocessing.Process(target=add) 
p1.run()
p = multiprocessing.Process(target=sud)
p.run()
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

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

Python 2.7 Grammar Geek - 列表理解中的Lambda

你能构建一个与下面的Python 2.7语法规则相匹配的最小有效源代码示例吗?是否可以不产生运行时错误?

(1) atom:           '[' [listmaker] ']'
(2) listmaker:      test  list_for
(3) list_for:       'for' exprlist 'in' testlist_safe
(4) testlist_safe:  old_test
(5) old_test:       old_lambdef
(6) old_lambdef:    'lambda' [varargslist] ':' old_test
Run Code Online (Sandbox Code Playgroud)

到目前为止我能达到的最好结果是:

L = [ fn() for fn in (lambda: x for x in xrange(3)) ]
Run Code Online (Sandbox Code Playgroud)

但我的解决方案的问题是围绕"lambda"的括号.你能不用括号建立一个例子吗?如果没有,那你怎么解释为什么你不能建立'in lambda',即使它完全符合语法规则?

python lambda grammar list-comprehension python-2.7

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

python中逗号运算符的含义

我理解python中关于逗号运算符的简单概念.例如,

x0, sigma = 0, 0.1
Run Code Online (Sandbox Code Playgroud)

表示x0 = 0,sigma = 0.1.但我获得了一个代码如下所示的代码.

y, xe = np.histogram(np.random.normal(x0, sigma, 1000))
Run Code Online (Sandbox Code Playgroud)

其中y和xe的输出如下.

y
Out[10]: array([  3,  17,  58, 136, 216, 258, 189,  87,  31,   5], dtype=int64)

xe
Out[11]: 
array([-0.33771565, -0.27400243, -0.21028922, -0.146576  , -0.08286279,
       -0.01914957,  0.04456364,  0.10827686,  0.17199007,  0.23570329,
        0.2994165 ])
Run Code Online (Sandbox Code Playgroud)

我不知道如何阅读y,xe表达式.我能抬起头来了解它的含义是什么?

python python-3.x

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

Python 中函数调用缺少参数时如何引发异常

如果我有这个功能

def my_function(a,b,c):
Run Code Online (Sandbox Code Playgroud)

当用户调用该函数时,他们省略最后一个参数

print(my_function(a,b))
Run Code Online (Sandbox Code Playgroud)

我应该提出什么例外?

python exception

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

名称*open*是否属于此示例中的内置或全局范围?

请考虑以下代码段:

global open
print(open)
Run Code Online (Sandbox Code Playgroud)

得出以下结果:

<built-in function open>
Run Code Online (Sandbox Code Playgroud)

我的问题是:在这个例子中,名称open是否属于内置或全局范围?

我认为全局声明会强制将name 打开映射到全局范围(因此,会导致我们出错),这不会发生在这里.为什么?

python lookup scope global built-in

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

如何重复每个数组元素等于元素值的次数?

我有一个numpy的数组:

import numpy as np

a = np.array([2,5,1])
Run Code Online (Sandbox Code Playgroud)

我如何使用numpy或pandas或列表理解等获取这样的数组?(不使用for循环)

[2,2,5,5,5,5,5,1]
Run Code Online (Sandbox Code Playgroud)

python numpy

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

是Java弱类型,因为这个例子演示了与python相比时?

我熟悉强弱类型.我也知道Java是强类型的.现在我学习python,它是一种强大的类型语言.但现在我看到python比Java更"强"类型.举例说明

public class StringConcat {

  public static void main(String[] args) {
      String s="hello ";
      s+=4;
    System.out.println(s);
}
}
Run Code Online (Sandbox Code Playgroud)

没有错误并打印你好4

在python中

>>> x="hello"
>>> x+=4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
Run Code Online (Sandbox Code Playgroud)

所以这个例子演示了python是强类型的.除非Java引擎盖下,做一些操作将int转换为String并执行String concat.

python java string string-concatenation strong-typing

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

程序忽略if​​语句,并在False时打印True

我正在为一个家庭作业问题编写一个简单的程序,它似乎正在跳过我的if语句.我看过其他问题,那里的问题似乎不是我的问题所以我希望你能提供帮助.

def isWordGuessed(secretWord, lettersGuessed):
if lettersGuessed == []:
    return False
else:
    for i in lettersGuessed:
        if i in secretWord == False:
            return False

        else:
            if i == lettersGuessed[-1]:
                return True
Run Code Online (Sandbox Code Playgroud)

当我在一些打印功能中查看它正在做什么时,它会完全跳过

if i in secretWord == False:
Run Code Online (Sandbox Code Playgroud)

我已放在这条线的正上方

print i in secretWord
Run Code Online (Sandbox Code Playgroud)

它会打印出正确的布尔值,但即使打印出False,它仍然会跳过if语句.我觉得我必须忽略一些非常基本的东西,但是我似乎无法弄清楚它是什么,所以任何帮助都会受到赞赏.谢谢

编辑:

以下是使用输入调用此函数的示例

isWordGuessed('apple',['a','e','i','k','p','r','s'])
Run Code Online (Sandbox Code Playgroud)

python if-statement statements

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

由fromfunction错误创建NumPy

码:

n=3
x=np.fromfunction(lambda i,j: (i==1)and(j==1), (n,n), dtype=int)
Run Code Online (Sandbox Code Playgroud)

导致“ ValueError:具有多个元素的数组的真值不明确。请使用a.any()或a.all()”

有什么问题?

python numpy

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

在python中在循环内编写循环的更简洁方法

我有一个对象列表,这些对象是我的代码中的特定类,如此,

[object1, object2, object3, object4, object5, object6]
Run Code Online (Sandbox Code Playgroud)

即该类有两个属性:class.scoreclass.id

我可能有相同ID的对象.例如.:

[object1.id, object2.id, object3.id, object4.id, object5.id, object6.id] = [1, 2, 3, 4, 2, 3]
Run Code Online (Sandbox Code Playgroud)

但得分不同.例如.:

[object1.score, object2.score, object3.score, object4.score, object5.score,
object6.score] = [0.25, 0.55, 0.6, 0.4, 0.30, .33]
Run Code Online (Sandbox Code Playgroud)

我想要做的是让列表没有这个对象的重复,但是添加了分数.所以对于前面的例子,输出将是:

[object1.id, object2.id, object3.id, object4.id] = [1, 2, 3, 4]
[object1.score, object2.score, object3.score, object4.score] = [.25, .85, .93, .4]
Run Code Online (Sandbox Code Playgroud)

我设法用两个for循环来做到这一点:

k = 1
    for object in list_of_objects:
        j = 1
        for object2 in list_of_objects:
            if object.id == object2.id and j > …
Run Code Online (Sandbox Code Playgroud)

python for-loop

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