我是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()
答案 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的基本语法,练习更多会提升你的技能。