为什么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:14 编辑
你这个代码具体实现什么功能,最好能举例说明一下。
shell() 没有返回值,下面这一句是什么意思?
fobj.write(str(shell(a))) jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。
这个代码将输入的数字进行希尔排序,然后将输入的数字和排序的过程都写入wjy.txt这个文件中 jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。
shell() 没有返回值,下面这一句是 ...
fobj.write(str(shell(a)))写错了,应该删了。 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 jackz007 发表于 2022-10-7 19:01
你这个代码具体实现什么功能,最好能举例说明一下。
shell() 没有返回值,下面这一句是 ...
可以了,谢谢。那个文件名你提出来的那里改了一下好了
页:
[1]