鱼C论坛

 找回密码
 立即注册
查看: 2267|回复: 10

关于python里面负整形除整形转换的问题

[复制链接]
发表于 2017-1-5 14:40:16 | 显示全部楼层 |阅读模式
5鱼币
大家好,我是一个小萌新!我想问一下,为什么在python里面,比如-1000是一个整形,然而-1000/100,,却成为了一个浮点数-10.0了?然后我也测试了-1000/-10也是一个浮点数,什么情况?为啥呀?这个让我很费解,BTY我是从零基础学习的第五课那边做课后作业有问题过来的,第一次悬赏也不知道悬多少鱼币好,希望各位大大能够帮助回答一下。

最佳答案

查看完整内容

============================================================== python3.x中/与//运算符的区别 / true运算,结果类型float,与操作数无关,结果就是实际计算值,是啥就是啥, //floor运算,结果类型(二中一带浮点型,结果为float;其余为int),取不大于(小于等于)结果的最大整数值值 -------------------------------------------------- >>> type(100/10)#结果类型float,与操作数无关 >>> type(100.0/10) >>> ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-5 14:40:17 | 显示全部楼层
==============================================================
python3.x中/与//运算符的区别
/ true运算,结果类型float,与操作数无关,结果就是实际计算值,是啥就是啥,
//floor运算,结果类型(二中一带浮点型,结果为float;其余为int),取不大于(小于等于)结果的最大整数值值
--------------------------------------------------
>>> type(100/10)#结果类型float,与操作数无关
<class 'float'>
>>> type(100.0/10)
<class 'float'>
>>> type(100/10.0)
<class 'float'>
--------------------------------------------------
>>> 100/10
10.0
>>> 100.0/10
10.0
>>> 100/10.0
10.0
--------------------------------------------------
>>> type(100//10)#结果类型int
<class 'int'>
>>> type(100.0//10)#二中一带浮点型,结果为float
<class 'float'>
>>> type(100//10.0)#二中一带浮点型,结果为float
<class 'float'>
--------------------------------------------------
>>> 100//10
10
>>> 100.0//10
10.0
>>> 100//10.0
10.0
--------------------------------------------------
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-5 14:53:58 | 显示全部楼层
type(100/10)
输出:float

整形除整形会自动转换浮点数,要获得整形可以用 int(100/10),或者直接100//10 地板除
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-5 14:58:34 | 显示全部楼层
这似乎就是python的语法!不然怎么会有运算符(//)
QQ图片20170105145759.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-5 15:10:22 | 显示全部楼层
3与2的不同点之一吧。2楼的回答给力,赞。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-6 11:00:18 | 显示全部楼层
1楼回答到点子上了。
除法的话会自动转成浮点型,想得到整数可以用int内置函数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-6 15:49:21 | 显示全部楼层
回答的都够给力的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-8 14:25:19 | 显示全部楼层
谢谢哈各位,我已经明白了,我这个问题是来自于小甲鱼课后的作业,其中第九行,(year/100 != int(year/100)的作用是什么
  1. temp = input('请输入一个年份:')
  2. while not temp.isdigit():
  3.     temp = input("抱歉,您的输入有误,请输入一个整数:")

  4. year = int(temp)
  5. if year/400 == int(year/400):
  6.     print(temp + ' 是闰年!')
  7. else:
  8.     if (year/4 == int(year/4)) and (year/100 != int(year/100)):
  9.         print(temp + ' 是闰年!')
  10.     else:
  11.         print(temp + ' 不是闰年!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-13 19:33:42 | 显示全部楼层
砖村子 发表于 2017-1-8 14:25
谢谢哈各位,我已经明白了,我这个问题是来自于小甲鱼课后的作业,其中第九行,(year/100 != int(year/100) ...

新手表示 第九行为什么要/100呢= =
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-14 14:52:13 | 显示全部楼层
新手表示 第九行为什么要/100呢= =
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-14 15:02:35 | 显示全部楼层
新手表示 第九行为什么要/100呢= =
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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