我是python的新手。这是我的档案:
contiguous.py:
def fillArray(len, val):
var arr = [], i
for i = 0; i < len; i++:
arr.append(val)
return arr
我尝试执行:
$ python contiguous.py
File "contiguous.py", line 2
var arr = [], i
^
SyntaxError: invalid syntax
$ python -V
Python 3.6.0
为什么会出错?我错过了什么?
答案 0 :(得分:2)
您不必声明变量以在Python中使用它。你只是实例化。所以你只想写arr = []
而不是i
。此外,您的循环语法不正确。你应该写for i in range(len)
。
答案 1 :(得分:1)
好的,您在Python中的功能是:
def fillArray(len, val):
arr = []
for _ in range(len):
arr.append(val)
return arr
相当于:
def fillArray(len, val):
return [val] * len
如果val
为mutable
,哪些都很危险:Python为pass by assignment,因此如果您尝试通过fillArray(len, [])
创建一系列空列表,您将拥有糟糕的一天。
答案 2 :(得分:0)
python中没有var关键字。只需删除它。
变量设置为:
[i]
另外,你在python中每行设置多个变量的方式是:
variable_x = []
此外,你的循环看起来错了。它应该是:
variable_x, i = [], 0
答案 3 :(得分:0)
您不需要关键字var
。要使arr
成为一个数组,只需执行:
arr = []
python中的变量没有类型,只有对象可以。任何给定时刻的变量类型是它们在那个时刻引用的对象的类型。因此,上面的行会将arr
初始化为空列表,从而有效地使arr
成为列表。此外,还有一些关于代码的其他注意事项:您正在尝试使用值填充数组。有一种多更简单的方法:
arr = [val] * len
在这种情况下,您甚至不需要arr=[]
,您的整个功能可以被上面的行代替。
答案 4 :(得分:0)
在python中,你不需要说var
来分配变量,因为python中有 no 变量声明。你只是arr = []
。在分配给变量之后,您也不应该说, i
,因为i
将引用变量不存在。由于您稍后分配i
,实际上根本不需要这样做。也可以使用for i in range(len)
。