相关疑难解决方法(0)

如果找到零,python乘法表达式的计算速度会更快吗?

假设我有一个乘法表达式,有许多被乘数(小表达式)

expression = a*b*c*d*....*w   
Run Code Online (Sandbox Code Playgroud)

其中例如c是(x-1),d是(y**2-16),k是(x y-60)..... x,y是数字
,我知道c,d,k, j也许为零
我写这个表达式的顺序对于更快的评估很重要吗?
写c
d k j 更好 ....*w或python会评估所有表达式,无论我写的顺序如何?

python math optimization evaluation

8
推荐指数
3
解决办法
1036
查看次数

Python的函数参数和操作数的评估顺序是否具有确定性(+在哪里记录)?

C不保证任何评估顺序所以如下语句f(g1()+g2(), g3(), g4())可能会执行g1(),g2(),g3(),和g4()以任意顺序(虽然f()会后,所有的人都被执行)

那Python怎么样?我对Python 2.7的实验表明,它似乎是从左到右的评估顺序,但我想知道是否指定了这种情况.

测试程序:

def somefunc(prolog, epilog):
    print prolog
    def f(a, b, *args):
        print epilog
    return f        

def f(text):
    print text
    return 1

somefunc('f1','f2')(f('hey'),f('ho'),f('hahaha'),f('tweedledee')+f('tweedledum'))
Run Code Online (Sandbox Code Playgroud)

打印

f1
hey
ho
hahaha
tweedledee
tweedledum
f2
Run Code Online (Sandbox Code Playgroud)

python operator-precedence python-2.7 python-3.x

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

python 3如何打印(list,list.pop())?

对于带有多个参数的print(),我认为它会逐一评估它们.但是,以下代码

a = [1, 2, 3, 4]
print(a, a[:], a.pop(), a, a[:])
Run Code Online (Sandbox Code Playgroud)

版画

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

我以为蟒蛇将评估a第一,然后a[:],然后a.pop(),再aa[:]再次,这将打印

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

那究竟是如何运作的呢?

python python-3.x

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

在 Ruby 中评估方法参数的顺序是什么?

我尝试回答这个问题之前,我一直假设参数是按照我们输入它们的方式从左到右计算的。例如我们有一些方法:

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

有没有办法随着时间的推移监视 Ruby 程序中的变量定义和值?如果调用foo 0,1,2如何证明变量按以下顺序赋值?

时间 0: a = 0

时间一: b = 1

时间2: c = 2

我意识到我的例子是微不足道的,因为我有相同类型的参数,a, b, c但是当你引入默认参数、关键字参数和数组参数时,它可能会变得混乱。如果没有人知道答案,我将不胜感激有关如何确定答案的建议。

基本上相当于this的 Ruby 。

ruby

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