注册 登录
编程论坛 Python论坛

求助,这个程序为什么停不下来?

zlfpass 发布于 2019-07-09 07:45, 1841 次点击
程序代码:

a=int(input("请输入四位不完全相同的整数:"))
d=[]

def fjsz(n):
      i=0
      del d[:]
      while i<4:
            
            
            c=int((n[i]))
            i+=1
            d.append(c)
      
      return(d)
def xzpx(x):
      
      x=x.sort(reverse=True)
      
      return(x)

def qds():
      
      global dashu
      dashu=''
      i=0
      while i<4:
            dashu=str(dashu)+str((d[i]))
            i+=1
            dashu=int(dashu)
      return(dashu)
def qxs():
      global xiaoshu
      xiaoshu=''
      i=3
      while i>=0:
            xiaoshu=str(xiaoshu)+str((d[i]))
            i-=1
            xiaoshu=int(xiaoshu)
      return(xiaoshu)
def szhd6174(c):
      print(c)
      while c!=6174:
            print(c)
            fjsz(str(c))
            xzpx(d)
            print(d)
            qds()
            print(dashu)
            qxs()
            print(xiaoshu)
            z=dashu-xiaoshu
            print(z)
            print('-----')
            szhd6174(z)
szhd6174(a)

只有本站会员才能查看附件,请 登录

方框中变量不知为啥变了,停不下来?
2 回复
#2
zlfpass2019-07-09 21:02
回复 楼主 zlfpass
在其他论坛已经找到答案,return x None 是因为x.sort(reverse=True)改娈了列表,没有返回值,所以显示None,停不下来,应该是while加while造成了死循环,可以将第一个while换成 if,或将下面一个while去掉,上面改成c=dashu-xiaoshu;print(c);#szhd6174(z)这样就已经一直在循环了!
#3
Jin_Mr2019-07-10 09:59
回复 2楼 zlfpass
老哥,厉害
1