繁体   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