几个Python问题

A Few Python questions

本文关键字:问题 Python 几个      更新时间:2023-09-26

我正试图从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?还有,缩进是定义某物的唯一方法吗?我知道分号不是必需的,但可以使用,在结束循环或函数定义方面有类似的东西吗?

最后,isis not是Python无类型转换相等操作符吗?

注:我意识到如果不检查输入的各种东西,这个函数是不实用的,但这不是写它的重点。

最大功率另外,是否有一个Python等效的javascript evaluation ? on true : on false if语句缩写?

Python不允许在表达式中赋值(如i+=1),因为这些赋值会导致混乱的代码,而Python的设计是使编写混乱的代码变得困难,并使编写明显的代码变得简单。

你可以简单地这样写:

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中也没有等价的==操作符。Python的==对内置类型进行类型检查。

条件运算符 (JavaScript中的a ? b : c)在Python中写成:
 b if a else c

在Python中不需要分号,一切都是通过缩进完成的。此外,混淆制表符和空格也会导致问题。坚持其中之一。:)