大银豚 发表于 2022-10-7 18:50:49

为什么shell(a)的内容没有写入

a=[]
def shell(a):
    try:
      fobj = open("wjy","at")
      m = len(a)
      gap = int(m / 2)
      while gap > 0:
            print("间隔" + str(gap))
            for i in range(int(gap), m):
                key = i
                cur = a
                while key >= gap and cur > a:
                  a = a
                  key = key - gap
                a = cur
            gap = int(gap / 2)
            print(a)
            fobj.write(str(a))
      fobj.close()
    except Exception as err:
      print(err)
      return None

if __name__ == "__main__":
    try:
      fobj=open("wjy.txt","wt")
      count = 1
      while count <= 3:
            s = int(input("请输入数字:"))
            fobj.write(str(s) + " ")
            a.append(s)
            count = count + 1
            if count > 3:
                b = input("是否继续输入:y/n")
                if b == "y":
                  count = 3
                else:
                  print(a)
      fobj.write(str(shell(a)))
      fobj.close()
      shell(a)
    except Exception as err:
      print(err)

jackz007 发表于 2022-10-7 19:01:32

本帖最后由 jackz007 于 2022-10-7 19:14 编辑

         你这个代码具体实现什么功能,最好能举例说明一下。
         shell() 没有返回值,下面这一句是什么意思?
         fobj.write(str(shell(a)))

大银豚 发表于 2022-10-7 19:13:49

jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。

这个代码将输入的数字进行希尔排序,然后将输入的数字和排序的过程都写入wjy.txt这个文件中

大银豚 发表于 2022-10-7 19:28:49

jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。
         shell() 没有返回值,下面这一句是 ...

fobj.write(str(shell(a)))写错了,应该删了。

大银豚 发表于 2022-10-7 19:32:10

jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。
         shell() 没有返回值,下面这一句是 ...

请输入数字:33
请输入数字:1
请输入数字:6
是否继续输入:y/n y
请输入数字:3
是否继续输入:y/n y
请输入数字:8
是否继续输入:y/n n

间隔2

间隔1


Process finished with exit code 0

大银豚 发表于 2022-10-7 19:43:22

jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。
         shell() 没有返回值,下面这一句是 ...

可以了,谢谢。那个文件名你提出来的那里改了一下好了
页: [1]
查看完整版本: 为什么shell(a)的内容没有写入