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

时间:2017-03-03 16:37:24

标签: 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 
    ])

正如我之前所说的,我知道编程并且我理解它在做什么,但对我来说似乎有点不合逻辑,因为看起来python以不同于“典型”语言的方向读取脚本。

如果我没有错,这个陈述总结了两个词典中元素之间的所有差异(动力2),但是如果它做的条件是在dic2中存在元素,那么只做总和。

这是对的吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

from math import sqrt

在你的第二个问题上,是的,如果你来自其他语言,python似乎确实以奇怪的顺序做事。例如:

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]]

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

[2,4,6,8]

基本上,你会习惯它。