不弃_ 发表于 2022-2-9 11:40:03

运行不起来

python爱好者. 发表于 2022-2-9 11:51:03

你 while 循环最后结尾少了一句:
n -= 1
所以就会无限死循环,因为 n 会一直是 46 不变,所以要再写这一句!


给个好评,兄弟!{:10_254:}

sls111 发表于 2022-2-9 11:55:41

这是个死循环啊,怎么返回值,而且变量b是干什么的,n是不是得-1,看不懂程序的目的

Twilight6 发表于 2022-2-9 12:03:11



你的 while 循环条件是 n > 0 但是在循环中你没有对 n 进行改变,那么只要进入循环,就不可能退出循环了

另外 sort 列表方法是在原列表上进行排序,没有返回值,Python 默认返回 None ,而你设置 return 返回值为_.sort() 会导致返回 None

参考代码:

def get_digits(n):
    _ = []
    while n > 0:
      a = n % 10
      n = n // 10
      _.append(a)
    _.sort()
    return _
result = get_digits(46)
print(result)

另外,本题是要求我们将各位数上的值依次存入列表中,那就不需要进行排序,直接取反后返回即可:

参考代码:

def get_digits(n):
    _ = []
    while n > 0:
      a = n % 10
      n = n // 10
      _.append(a)
    _.reverse()
    return _
result = get_digits(46)
print(result)

不弃_ 发表于 2022-2-9 14:00:15

Twilight6 发表于 2022-2-9 12:03
你的 while 循环条件是 n > 0 但是在循环中你没有对 n 进行改变,那么只要进入循环,就不可能退出循环 ...

索德斯呢。淦谢

Passepartout 发表于 2022-2-9 14:33:01

{:5_103:}
页: [1]
查看完整版本: 运行不起来