python是否读取脚本与其他语言不同?

问题描述:

目前我正在学习Python的(而不是编程),我试图解决我的第一个问题,这种语言。python是否读取脚本与其他语言不同?

首先我检查是什么import Xfrom X import Y之间的差异。我知道第一次加载到命名空间中的软件包,但这个包的方法,所以你需要写X.Y,在另一方面,第二导入方式加载到命名空间中的功能和参考包。尽管如此,我不明白为什么import math.sqrt失败。我收到这个错误:math is not a package

有谁知道会发生什么?

然后我想怎么写这样的说法:

sum([ 
    pow(dic1[elem]–dic2[elem], 2) 
    for elem in dic1 if elem in dic2 
    ]) 

正如我告诉我才知道规划,我知道它在做什么,但它似乎对我来说有点不合逻辑,因为似乎蟒蛇读取脚本的方向与“典型”语言不同。

如果我没有错,这句话总结了两个词典中的元素之间的所有差异(动力2),但只有在for语句的条件是dic2存在elem时才做总和。

这是正确的吗?

谢谢!

+0

见http://stackoverflow.com/q/16341775/476。如果您应该一次询问一个问题,那么我们可能已经将其作为一个副本过滤掉了。 – deceze

+0

尝试'输入数学;数学.__ file__'与'import xml; XML .__ file__'。 “数学”是用C实现的,而不是Python,因此可能会有不同的导入行为。 –

关于第一个问题,请尝试:

from math import sqrt 

到你的第二个问题,是的,蟒蛇似乎做的事情在一个奇怪的命令,如果你是从其他语言。例如:

x=1 if a=2 else 0 

这是相同的话说:

if a=2: 
    x=1 
else: 
    x=0 

,如果你这样做:

x=[i*2 for i in [1,2,3,4]] 

它意味着使每一个元素的变量i列表中的[ 1,2,3,4],乘以2并从结果中创建一个新列表。所以在上面的例子中x是:

[2,4,6,8] 

基本上,你会习惯它。

+0

感谢您的回答。第一部作品,但我想了解导入数学失败的原因。 你的第二个答案是完美的!谢谢! – Maik