![](/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.