zsc123xyz147 发表于 2021-4-1 15:26:10

第23 24讲的课后作业

empty = []
def get_digits(n):
    if n > 0:
      s1 = n % 10
      empty.append(s1)
      n = (n - s1) / 10
      return get_digits(n)
    else:
      empty.reverse()
      return empty



>>> get_digits(123456)

然后一运行就成这样了
但是我把n = (n - s1) / 10改成了n = n // 10,结果就正常了,那为什么这一步会导致出现浮点数

jackz007 发表于 2021-4-1 15:53:54

       普通除法运算符是 /,运算结果的类型是浮点数,地板除运算符是 //,运算结果的类型是整型数。

zsc123xyz147 发表于 2021-4-1 16:03:04

jackz007 发表于 2021-4-1 15:53
普通除法运算符是 /,运算结果的类型是浮点数,地板除运算符是 //,运算结果的类型是整型数。

普通除法/的两边若都是整型,比如10 / 2 ,这样得到的结果也是浮点数么

LuLD 发表于 2021-4-1 16:08:30

zsc123xyz147 发表于 2021-4-1 16:03
普通除法/的两边若都是整型,比如10 / 2 ,这样得到的结果也是浮点数么

是的,你可以用IDLE 自己验证一下
>>> 10/2
5.0
>>> 10//2
5
>>>

zsc123xyz147 发表于 2021-4-1 16:10:33

LuLD 发表于 2021-4-1 16:08
是的,你可以用IDLE 自己验证一下

感谢感谢,之前都没有注意到

zsc123xyz147 发表于 2021-4-1 16:11:06

jackz007 发表于 2021-4-1 15:53
普通除法运算符是 /,运算结果的类型是浮点数,地板除运算符是 //,运算结果的类型是整型数。

感谢回答

Peteryo01223 发表于 2021-4-1 17:47:44

jackz007 发表于 2021-4-1 15:53
普通除法运算符是 /,运算结果的类型是浮点数,地板除运算符是 //,运算结果的类型是整型数。

言简意赅~
页: [1]
查看完整版本: 第23 24讲的课后作业