鱼C论坛

 找回密码
 立即注册
查看: 2813|回复: 5

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

[复制链接]
发表于 2022-10-7 18:50:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[i]
                while key >= gap and cur > a[key - gap]:
                    a[key] = a[key - gap]
                    key = key - gap
                a[key] = 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-7 19:01:32 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-7 19:14 编辑

         你这个代码具体实现什么功能,最好能举例说明一下。
         shell() 没有返回值,下面这一句是什么意思?
         fobj.write(str(shell(a)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-7 19:13:49 | 显示全部楼层
jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。

这个代码将输入的数字进行希尔排序,然后将输入的数字和排序的过程都写入wjy.txt这个文件中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

fobj.write(str(shell(a)))写错了,应该删了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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
[33, 1, 6, 3, 8]
间隔2
[33, 3, 8, 1, 6]
间隔1
[33, 8, 6, 3, 1]

Process finished with exit code 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可以了,谢谢。那个文件名你提出来的那里改了一下好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 23:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表