簡體   English   中英

一些Python問題

[英]A Few Python questions

我正在嘗試從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等式 - 無類型 - coersion運算符?

PS我意識到如果沒有檢查各種輸入的輸入,這個功能是不實用的,但這不是編寫它的重點。

PPS此外,是否有一個Python相當於javascript evaluation ? on true : on false evaluation ? on true : on false if statement abbreviation?

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

沒有相應的運營商is在JavaScript中,並沒有等同於JavaScript的==在Python。 Python的==會對內置類型進行類型檢查。

條件運算符 (在JavaScript中a ? b : c )在Python中寫出:

 b if a else c

在Python中不需要分號,一切都是用縮進完成的。 此外,混合標簽和空格可能會導致問題。 堅持一個或另一個。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM