为什么python中的计数器不工作?
我刚刚开始学习Python,需要列出一些特定的值。请参阅下面的代码。然而,我的计数器似乎不起作用。它只接受第一个num,不改变它。例如,当我尝试5号尺码时,我会得到所有25号的列表,而不是25 24 23 22。。。 我的柜台什么也没做。我试着把它放在代码的其他地方,但没有任何改变。有什么帮助吗为什么python中的计数器不工作?,python,python-3.x,list,Python,Python 3.x,List,我刚刚开始学习Python,需要列出一些特定的值。请参阅下面的代码。然而,我的计数器似乎不起作用。它只接受第一个num,不改变它。例如,当我尝试5号尺码时,我会得到所有25号的列表,而不是25 24 23 22。。。 我的柜台什么也没做。我试着把它放在代码的其他地方,但没有任何改变。有什么帮助吗 def listmaker(size): listsize = size * size list = [] for i in range(size): fo
def listmaker(size):
listsize = size * size
list = []
for i in range(size):
for j in range(size):
counter = 0
num = listsize - counter
if number > 0 :
elem = num
list.append(elem)
elif number == 0:
elem = "X"
counter = counter + 1
print(list)
示例4的输出大小为:
16 16 16 16 16 16 16 16 16....(times 16)
我想要的是:
16 15 14 13 12 11 10 9...
将
计数器=0
移动到循环之前,使其仅运行一次,并将计数器=counter+1
(顺便说一句,相当于计数器+=1
)移动到第二个循环的末尾,以便在所有其他操作之后重复运行
另外,您的elif number==0:
是无用的,因为循环将只运行25次,而这将在26次之后激活
如果您想有效地执行此操作,您可以使用
列表(范围(大小**2,0,-1))
将计数器=0
移动到循环之前,这样它只运行一次,并移动计数器=计数器+1
(顺便说一句,相当于计数器+=1
)到第二个循环的末尾,以便在其他所有操作之后重复运行
另外,您的elif number==0:
是无用的,因为循环将只运行25次,而这将在26次之后激活
如果您想有效地执行此操作,您可以使用
列表(范围(大小**2,0,-1))
所有错误都在注释中
def listmaker(size):
listsize = size * size
list = []
# you should init counter outside the loops
counter = 0
for i in range(size):
for j in range(size):
num = listsize - counter
# number -> num
if num > 0 :
elem = num
list.append(elem)
# number -> num
elif num == 0:
elem = "X"
# you should modify the counter in the loop
counter = counter + 1
print(list)
你所有的错误都在评论中
def listmaker(size):
listsize = size * size
list = []
# you should init counter outside the loops
counter = 0
for i in range(size):
for j in range(size):
num = listsize - counter
# number -> num
if num > 0 :
elem = num
list.append(elem)
# number -> num
elif num == 0:
elem = "X"
# you should modify the counter in the loop
counter = counter + 1
print(list)
如果您只是想将
size
中的整数平方为1,只需这样做
list(range(size**2, 0, -1))
-1
步骤告诉范围
倒计时。使用range(size**2,-1,-1)
如果您想让列表停在0
而不是1
如果您只是想让整数从size
平方为1,只需这样做
list(range(size**2, 0, -1))
-1
步骤告诉范围
倒计时。使用范围(大小**2,-1,-1)
如果你想让列表停在0
而不是1
你能更清楚地知道你期望的输出是什么吗?你可以在循环之外修改计数器的值。其他专业提示:计数器+=1
你能更清楚地知道你期望的输出是什么吗?你可以修改计数器
的值在循环之外。其他专业提示:计数器+=1
很好的解决方案,但您并没有真正回答作者的问题。他想知道代码中的错误。这是一个很好的解决方案,但你并没有真正回答作者的问题。他想知道代码中的错误。