冒泡排序代码不起作用,不返回任何输出。请协助

时间:2013-10-21 22:26:06

标签: python-2.7

在第二个函数中创建了2个函数调用冒泡排序。

  def bubblesort(s):
       for i in range(len(s)-1):
                      for j in i:
                           if x[j]>s[j+1]:
                           p=s[j+1]
                           s[j+1]=s[j]
                           s[j]=p
  return s
  def main():
      x=[]
      z=1
      while z<=4:
          y =  int(raw_input("enter your numbers: ")) 
          z +=1
          x.append(y)   
          print "Your input: " + x
          print bubblesort(x)

  raw_input ("press<enter>")

它不打印已排序的输出

2 个答案:

答案 0 :(得分:0)

你没有在任何地方调用你的main()函数。

尝试在最终main()行之前添加raw_input

此外,您的空白似乎与您复制到堆栈溢出的地方有点混乱。例如,return s行应位于bubblesort函数内。

另一个错误是,对于行print "Your input: " + x,您需要将x转换为字符串。所以str(x)代替。

答案 1 :(得分:0)

有效的代码:

def bubblesort(s):
     p = 0
     for i in range(len(s)-1):
          for j in range(len(s)-1):
             if s[j]>s[j+1]:
               p=s[j+1]
               s[j+1]=s[j]
               s[j]=p
     return s
def main():
  x=[]
  z=1
  while z<=6:
        y =  int(raw_input("enter your numbers: "))
        z +=1
        x.append(y)
        print "Your input: " + str(x)
        print bubblesort(x)

main()
raw_input ("pres<enter>")

但我需要知道为什么我不能迭代一个int类型'i'。当i =范围(len(s)-1)在'for j in i'而不是'for j in range(len(s)-1)'时。