Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大于/小于符号的基本Python语法错误_Python - Fatal编程技术网

大于/小于符号的基本Python语法错误

大于/小于符号的基本Python语法错误,python,Python,我正在自学如何编写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: tot

我正在自学如何编写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
def阶乘(x):
如果x==0:
返回1
elif x>0:
b=int
总计=1

对于0您的意思是
if
,而不是
for
(在这种情况下,解决方案是将
for
替换为
if
),或者您希望您的代码将迭代给定范围内的所有整数
b
(在这种情况下,答案是
不是这样工作的;您需要构造一个显式对象进行迭代,例如使用
范围

我怀疑是后者,因为你没有给
b
一个值。(事实上,你已经给了,但可能不是你想要的方式。你已经使
b
等于一个表示整数类型的对象。如果你觉得没有意义,现在就忽略它。)


恐怕Python不够聪明,你不能说“
b
是一个整数;请为0到
x
之间的每个可能值做点什么”——我想这正是你所希望的。但是,例如,
range(1,x+1)
是一个对象,表示从1(包括)到
x+1的所有整数,并且您可以使用
for
循环为每个循环执行操作。

for
后面必须跟一个iterable。正确的语法是:

for variable in iterable:
在您的例子中,您应该生成一些从
1
x
的iterable。为此,您应该使用
range(1,x+1)
(或者
xrange
,如果您使用的是python 2)

您的代码应该如下所示:

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

另外,
b=int
也不是您所想的。这不是一个声明,它使
b
不是类型
int
的变量,而是类型本身。在python中,您不能限制变量保持特定类型(至少不是以简单的方式,AFAIK)
0我在这里很困惑……你期望
做什么0@MarcB--Python没有
&&
运算符。
0对于xrange(1,x+1)中的I:…