目前我正在学习Python(不是编程),我正试图用这种语言解决我的第一个问题。
首先,我检查了import X
和from 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中存在元素,那么只做总和。
这是对的吗?
谢谢!
答案 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]
基本上,你会习惯它。