我的函数运行正常,但是由于它处于for循环中,因此会多次打印输出。当我尝试将其从for循环中删除时,它只会多次打印前一位。
我的代码:
myNum=4
iterationCount=3
doSummation=True
def printSomeNumbers(myNum,iterationCount,doSummation):
for i in range(iterationCount):
if (doSummation== False):
print(myNum)
else:
counter= 0
for i in range(iterationCount):
counter+=myNum
print(counter)
printSomeNumbers(myNum,iterationCount,doSummation)
当我运行它时,它输出:
4
8
12
4
8
12
4
8
12
我希望它仅输出:
4
8
12
当我像这样更改打印缩进量时:
else:
counter= 0
for i in range(iterationCount):
counter+=myNum
print(counter)
或者向左进一步输出:
12
12
12
当doSummation为False时,只应将myNum输出为迭代计数值的倍数。
答案 0 :(得分:0)
下面是一个仅打印一次的示例。像其他评论一样,嵌套的for循环导致其打印3次。
这将正常打印:
def printSomeNumbers(myNum,iterationCount,doSummation):
if doSummation:
counter= 0
for i in range(iterationCount):
counter+=myNum
print(counter)
else:
for i in range(iterationCount):
print(myNum)
答案 1 :(得分:0)
以下是相同的代码,但进行了一些重新整理以有望解决该问题:
def printSomeNumbers(myNum,iterationCount,doSummation):
if (doSummation== False):
print(myNum)
else:
counter= 0
for i in range(iterationCount):
counter+=myNum
print(counter)
printSomeNumbers(4,3,True)
print('...')
printSomeNumbers(4,3,False)
此固定代码的输出为:
4
8
12
...
4