![](/img/trans.png)
[英]Python Docstring Comments, Greater Than and Less Than Symbols Not Showing
[英]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
要么你的意思是if
不for
(在這種情況下,解決辦法是更換for
帶有if
),或者你希望你的代碼將遍歷,也許,所有整數b
在給定的范圍(在這種情況下,答案是for
不能那樣工作;您需要構造一個顯式對象以進行迭代,例如使用range
。
我懷疑是后者,因為您尚未真正賦予b
值。 (實際上,您有,但可能不是您想要的方式。您已使b
等於代表整數類型的對象。如果這對您沒有意義,請暫時將其忽略。)
恐怕Python不夠聰明,您不能說“ b
是一個整數;請為0到x
之間的每個可能的值做一些事情”,我想這就是您的期望。 但是,例如range(1,x+1)
是一個對象,代表從1(含)到x+1
(不含)的所有整數,並且您可以使用for
循環為每個整數做某事。
for
必須跟隨一個迭代。 正確的語法是:
for variable in iterable:
在您的情況下,您應該生成一些從1
到x
可迭代對象。 為此,您應該使用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.