我创建了一个简单的python类,代码如下所示。在
class Solution38:
def countAndSay(self, n):
self.n = n
a[0] = 1
for t in range(n):
s = str(a[t])
l = len(s)
b = '1'
c = 0
f = []
for d in range(l):
if s[d] == b:
c = c+1
else:
m = str(c)+str(b)
b = s[d]
c = 1
f = f+str(m)
return f
solution = Solution38()
print solution.countAndSay(4)
当我试图运行它时,它显示“未定义全局名称‘a’”。
另外,当我将a[0]
更改为self.a[0]
时,另一个错误弹出,说“Solution38实例没有属性‘a’”。在
有人能帮我吗?在
谢谢!在
有点像
创建变量
^{pr2}$a
。有点像使用变量
a
,因此它必须已经存在。对你来说,它不是问题是}不同。您可以直接将}的第一个成员,然后才能给它一个新值,因此{}必须存在,然后才能更新。在
a[0] = 1
与{1
分配给名称b
,但必须先访问{这是错误的。我想你想达到的目的是
^{pr2}$如果我错了请纠正我。在
“Solution38实例没有属性'a'-发生此错误的原因是您将a=[]声明为类变量而不是实例变量。将[0]更改为self.a[0]将无法修复此问题。您需要从一开始就将其声明为self.a={}。 https://docs.python.org/2/reference/compound_stmts.html#class-definitions
“但是另一个错误是'int'ob'is not iterable..n中的't'行:” 在这里,你的错误只是告诉你,你不能循环通过一个整数。你要传递n=4,t怎么会循环通过它呢因为4'里的t没有意义。您应该看看python中的range()函数
-我不太确定你到底想做什么,但如果你想找的话,这应该能帮你迭代四次。 https://docs.python.org/2/library/functions.html#range
请仔细阅读这两方面的内容,并看看一些例子!如果您想继续编写代码,它们将非常有用。在
相关问题 更多 >
编程相关推荐