簡體   English   中英

大於/小於符號的基本Python語法錯誤

[英]Basic Python syntax error for greater/less than symbols

我在教自己如何編寫python代碼。 在此問題中,我不斷收到0大於b小於或等於x行的語法錯誤。 說這是無效的語法。 為什么會這樣呢?

我可以使用range(x)函數來獲取數字列表,但這種方式似乎應該更快,更輕松。 謝謝您的幫助

def factorial(x):
    if x==0:
        return 1
    elif x>0:
        b=int
        total = 1
        for 0<b<=x:
            total*=b
        return total

要么你的意思是iffor (在這種情況下,解決辦法是更換for帶有if ),或者你希望你的代碼將遍歷,也許,所有整數b在給定的范圍(在這種情況下,答案是for不能那樣工作;您需要構造一個顯式對象以進行迭代,例如使用range

我懷疑是后者,因為您尚未真正賦予b值。 (實際上,您有,但可能不是您想要的方式。您已使b等於代表整數類型的對象。如果這對您沒有意義,請暫時將其忽略。)

恐怕Python不夠聰明,您不能說“ b是一個整數;請為0到x之間的每個可能的值做一些事情”,我想這就是您的期望。 但是,例如range(1,x+1)是一個對象,代表從1(含)到x+1 (不含)的所有整數,並且您可以使用for循環為每個整數做某事。

for必須跟隨一個迭代。 正確的語法是:

for variable in iterable:

在您的情況下,您應該生成一些從1x可迭代對象。 為此,您應該使用range(1,x+1) (如果您在python 2中,請使用xrange

您的代碼應如下所示:

for b in range(1, x+1):
    total *= b

另外, b = int不是您的想法。 這不是聲明,它使b並非int類型的變量,而實際上是類型本身。 在python中,您不能將變量限制為保持某種類型(至少不是以簡單的方式,AFAIK)

暫無
暫無

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

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