鱼C论坛

 找回密码
 立即注册
查看: 1646|回复: 7

[已解决]求解答零基础学Python中第23讲中的一个引申思考

[复制链接]
发表于 2018-4-27 15:42:39 | 显示全部楼层 |阅读模式

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

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

x
大神麻烦看一下,这个题目的要求和解答是这样的:

result = [] # 首先将result设为列表形式
def get_digits(n):
    if n>0 :
        result.insert(0,n%10)# 循环第一步是取余运算,并把结果添加到列表的第一个位置上
        get_digits(n//10)# 第二步是地板除

get_digits(1234)# 往复循环,直至n=0则跳出循环
print(result)#最后打印出的结果是列表

我想请问如果输入的是一个小于零的负数,应该怎么修改代码呢?比如,输入-1122,打印出来是[-1,-1,-2,-2]这样的。   
   
   
最佳答案
2018-4-28 09:57:14
  1. result = [] # 首先将result设为列表形式
  2. def get_digits(n):
  3.     if n>0:
  4.         result.insert(0,n%10)
  5.         get_digits(n//10)
  6.     if n<0:
  7.         n=abs(n)
  8.         result.insert(0,-(n%10))
  9.         get_digits(n//10)
  10.     return result

  11. a=get_digits(8964)
  12. #由于负数地板除和取余数与正数不同,故做以下处理
  13. b=[]
  14. if a[-1]<0:
  15.     for each in a[:-1]:
  16.         b.append(-each)
  17.     b.append(a[-1])
  18. else:
  19.     b=a
  20. print(b)
复制代码
360截图20180427153807700.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-4-27 15:43:13 | 显示全部楼层
截图里面有题目要求
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-27 15:44:07 | 显示全部楼层
我试着改了几遍,都没有能实现,哪位大神能帮我看一下吗,谢谢了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-27 15:54:58 | 显示全部楼层
把 n%10
改成
n%-10
试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-28 09:57:14 | 显示全部楼层    本楼为最佳答案   
  1. result = [] # 首先将result设为列表形式
  2. def get_digits(n):
  3.     if n>0:
  4.         result.insert(0,n%10)
  5.         get_digits(n//10)
  6.     if n<0:
  7.         n=abs(n)
  8.         result.insert(0,-(n%10))
  9.         get_digits(n//10)
  10.     return result

  11. a=get_digits(8964)
  12. #由于负数地板除和取余数与正数不同,故做以下处理
  13. b=[]
  14. if a[-1]<0:
  15.     for each in a[:-1]:
  16.         b.append(-each)
  17.     b.append(a[-1])
  18. else:
  19.     b=a
  20. print(b)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-8 10:02:17 | 显示全部楼层
BngThea 发表于 2018-4-27 15:54
把 n%10
改成
n%-10

不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-8 10:03:18 | 显示全部楼层

你好,谢谢您的回答,我试了一下,可以运行!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-8 10:06:20 | 显示全部楼层

也感谢您的回答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-11 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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