大于/小于符号的基本Python语法错误
我正在自学如何编写python代码。在这个问题中,我不断收到0大于b小于或等于x行的语法错误。说这是一个无效的语法。为什么会这样 我可以使用range(x)函数来获得一个数字列表,但这种方法似乎应该更快更简单。谢谢你的帮助大于/小于符号的基本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
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:…