![](/img/trans.png)
[英]What is the problem in the for loop of my python pizza code not working?
[英]My code is working but with no outputs, what is the problem?
问题是什么?
我什至在开始时就尝试过这样以获得输出
print("enter list elements")
arr = input()
def AlternateRearr(arr, n):
arr.sort()
v1 = list()
v2 = list()
for i in range(n):
if (arr[i] % 2 == 0):
v1.append(arr[i])
else:
v2.append(arr[i])
index = 0
i = 0
j = 0
Flag = False
#set value to true is first element is even
if (arr[0] % 2 == 0):
Flag = True
#rearranging
while(index < n):
#if 1st elemnt is eevn
if (Flag == True):
arr[index] = v1[i]
index += 1
i+=1
Flag = ~Flag
else:
arr[index] = v2[j]
index +=1
j += 1
Flag = ~Flag
for i in range(n):
print(arr[i], end = "" )
arr = [9, 8, 13, 2, 19, 14]
n = len(arr)
AlternateRearr(arr, n)
print(AlternateRearr(arr))
没有错 我猜只是驱动程序代码不起作用,没有输出。
没有输出
唯一可以输出任何内容的地方是print(AlternateRearr(arr))
。 但是,让我们看一下AlternateRearr
本身-它返回什么?
AlternateRearr
任何地方都没有return语句,因此print
将显示None。 好吧,这是某种东西 ,不是完全没有……
但是代码无论如何都不会到达这一部分-如果这样做的话,则会抛出错误,因为print(AlternateRearr(arr))
仅将一个参数传递给具有2个参数的函数AlternateRearr
。 您没有为n
设置默认值,因此它将不起作用。
好了,所以我们来到了结论,我们没有达到print
反正。 但是为什么呢? 因为你从不叫它。 您只定义它,它与调用它是不同的。
如果您只是尝试在常规代码附近调用它,则可能会遇到问题-Python是一种解释型语言,因此您的主代码(未包含在函数中)应位于文件的底部,因为它不知道在它下面。
那是您完整的代码吗? 因为您确实有一个名为AlternateRearr
的函数,但是您从未调用过它
调用该函数,并将整数传递给迭代。 在函数之后添加:
AlternateRearr(arr, 5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.