语法错误 - Python;因为我算在内

时间:2017-04-09 15:31:58

标签: python syntax-error

我是Python新手。我在下面的代码的for i count in range(1,11):行上遇到语法错误,无法弄清楚错误是什么。错误可能是显而易见的,但这是我编写的第一个代码,所以任何帮助都表示赞赏!

def printList():
    li=list()
    for i count in range(1,11):
      li.append(i**l)
    print li[10:]

  printList()

4 个答案:

答案 0 :(得分:1)

第一个错误

i count是什么意思?

我认为你认为count是一个Python关键字。事实并非如此。只需使用for i in range(1,11):

for如何真正起作用

我这样做是为了让您理解for i count in range(1,11):错误的原因

for为变量(在本例中为i)分配迭代中的第一个值,此处为range(1,11)(但可以是一个列表:{{ 1}}),即1,运行在其旁边缩进的内容,然后继续使用[1,2,4,'a','whatever']的第二个值,并再次运行代码,直到它完成i的所有可用值

第二次错误

但是,你必须面对另一个错误i,这可以通过更改以下行来解决:NameError: name 'l' is not defined到:li=list()

修复行为

但即使有了这种改变,代码也无法正常工作,因为它打印出来:

li,l=list(),2 #Change 2 to another value

问题在于[] [] [] [] [] [] [] [] [] [] ,它将打印索引大于或等于10的所有项目,这意味着它将从第11项开始打印。

如果将其更改为print li[10:],您可以看到其余代码 有效,假设为print li,您会看到:

l = 2

我怀疑你想要选择大于或等于10的项目,你可以使用列表理解来实现这一点,只需将该行更改为:

[1]
[1, 4]
[1, 4, 9]
[1, 4, 9, 16]
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25, 36]
[1, 4, 9, 16, 25, 36, 49]
[1, 4, 9, 16, 25, 36, 49, 64]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

最后,代码:

print [elem for elem in li if elem >= 10]

返回:

def printList():
    li=list()
    l=2
    for i in range(1,11):
        li.append(i**l)
        print [elem for elem in li if elem >= 10]
printList()

其他事项:

  • 由于您似乎使用的是Python2,因此您应该使用[] [] [] [16] [16, 25] [16, 25, 36] [16, 25, 36, 49] [16, 25, 36, 49, 64] [16, 25, 36, 49, 64, 81] [16, 25, 36, 49, 64, 81, 100] 而不是xrange()。另一方面,在Python3中,range() xrange()

  • 您不应该使用两个空格进行缩进,也可以使用制表符,但建议

    <。

    < / LI>

答案 1 :(得分:0)

您需要删除for循环中的计数。

for i in range(1, 11):
    li.append(i**1)

答案 2 :(得分:0)

首先,for语句中只有一个变量,因此应该删除count并且还没有定义l变量

def printList():
    li=list()
    l=1 #here is l value
    for i in range(1,11):
      li.append(i**l)
    print li[10:]

  printList()

答案 3 :(得分:0)

与建议的人一样,您的代码存在语法错误:

1,for循环应该是:

for i in range(1,11):# this will iterate from 1 to 10 and assign to i every loop

2,输入代码时要小心,我认为该行有拼写错误:

li.append(i**l) # maybe the l should be i

3,python的缩进应该是4个空格,但该行只有2个空格:

for i in range(1,11):
  li.append(i**l)

最好先学习并尝试熟悉python的基本语法,练习更多会提升你的技能。