我正在尝试从javascript中的后台学习Python。我看到有人做了一个递归函数来找到最小公分母,并想知道为什么他们不只是使用一个循环,所以,无论是为了体验还是为了自娱自乐,我写了一个更简单的一个:
我想出了:
def LCM(n,d):
while(n%d++ != 0 ):
continue
return d-1
print(LCM(99,12))
毋庸置疑,对于那些了解Python的人来说,++不是一个有效的运算符。我也试过
def LCM(n,d):
while(n%(d+=1) != 0 ):
continue
return d-1
print(LCM(99,12))
为了确保这不是我的想法,我在javascript尝试了同样的事情:
function LCM(b,d){
while(b%d++ != 0){
}
return d-1;
}
Python不允许使用javascript中的表达式吗?还有,缩进是定义某事的唯一方法吗?我知道分号不是必需的,但可以使用,在关闭循环或函数定义方面是否有类似的东西?
最后,is
和is not
是Python equal-without-type-coersion运算符吗?
P.S。我意识到如果没有检查各种输入的输入,这个功能是不实际的,但这不是写它的重点。
P.P.S此外,是否有一个Python等价的javascript evaluation ? on true : on false
if语句缩写?
答案 0 :(得分:8)
Python不允许在表达式中进行赋值(例如i+=1
),因为这些可能导致代码混乱,并且Python旨在使编写令人困惑的代码变得困难,并且使编写明显代码变得简单。 / p>
你可以简单地写一下:
def LCM(n,d):
while n%d != 0:
d += 1
return d-1
print(LCM(99,12))
Python的is
测试两个对象是相同的对象而不是相等。请考虑以下事项:
d = {}
e = d
assert d == {} # Empty dictionaries equal each other
assert d is not {} # .. but are not identical
assert d is e # d and e refer to the same object
JavaScript中没有与is
等效的运算符,并且Python中没有与JavaScript ==
等效的运算符。 Python的==
会对内置类型进行类型检查。
条件运算符(JavaScript中的a ? b : c
)在Python中写为:
b if a else c
答案 1 :(得分:0)
Python中不需要分号,一切都是用缩进完成的。此外,混合标签和空格可能会导致问题。坚持一个或另一个。 :)