鱼C论坛

 找回密码
 立即注册
查看: 2965|回复: 9

[已解决]判断是否为奇数和偶数,

[复制链接]
发表于 2017-7-8 16:24:43 | 显示全部楼层 |阅读模式

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

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

x
b=input('请输入一个整数:')
c=int(b)
d=c/2
if isinstance(d,int)==1:
    print("该数是偶数")
else:
    print("该数是奇数")
请问这个程序哪里错了?为什么不管输入什么都是奇数啊
最佳答案
2017-7-8 16:51:23
Python中两个整数相除,即使整除了返回的结果也是浮点型。

  1. >>> a = 3
  2. >>> b = a / 1
  3. >>> type(b)
  4. <class 'float'>
复制代码



b=input('请输入一个整数:')
c=int(b)
d=c/2                                        #这里的d不管是否整除都会是浮点数。
if isinstance(d,int)==1:                #isinstance的返回值就是true和false,所以不用写等于1。
    print("该数是偶数")
else:
    print("该数是奇数")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-8 16:38:44 | 显示全部楼层
if isinstance(d,int)==1:
值这个并不能判断,而且d=c/2是float
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 16:50:52 | 显示全部楼层

isinstance 判断是否为指定的数据类型


  1. b=input('请输入一个整数:')
  2. c=int(b)

  3. if c%2==0:
  4.     print("该数是偶数")
  5. else:
  6.     print("该数是奇数")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 16:51:23 | 显示全部楼层    本楼为最佳答案   
Python中两个整数相除,即使整除了返回的结果也是浮点型。

  1. >>> a = 3
  2. >>> b = a / 1
  3. >>> type(b)
  4. <class 'float'>
复制代码



b=input('请输入一个整数:')
c=int(b)
d=c/2                                        #这里的d不管是否整除都会是浮点数。
if isinstance(d,int)==1:                #isinstance的返回值就是true和false,所以不用写等于1。
    print("该数是偶数")
else:
    print("该数是奇数")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-8 16:56:44 | 显示全部楼层
景命 发表于 2017-7-8 16:51
Python中两个整数相除,即使整除了返回的结果也是浮点型。

#这里的d不管是否整除都会是浮点数
这是为什么呀。如果是偶数,比如4/2=2 这不就是整形了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 17:01:38 | 显示全部楼层
>>>d=10/2
>>>print(d)
5.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 17:07:40 | 显示全部楼层
灿君君 发表于 2017-7-8 16:56
#这里的d不管是否整除都会是浮点数
这是为什么呀。如果是偶数,比如4/2=2 这不就是整形了吗


>>> a = 4 / 2
>>> a
2.0
>>> type(a)
<class 'float'>


看懂了吗,2后边带小数点。


地板除法 (//),又叫向下取整除法、floor除法,默认向下取整,如果除数与被除数都是整数,那么结果为整数(注意:只有地板除法是这样,普通除法结果位浮点数),如果除数与被除数其中一个为浮点型或者全部为浮点型,那么结果为浮点型(注意:普通的除法也是这样)。


总结一下:
        普通除法:结果为浮点数。
        地板除法:如果除数和被除数都为整数,结果为整数。除数和被除数其中一个为浮点数,结果为浮点数。

Python3 中就是这么规定的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 17:13:35 | 显示全部楼层
判断奇偶数主要的方法是取模:
123 % 2 为1,是奇数
246 % 2 为0,是偶数
还可以用位运算:
123 & 1 为1,是奇数
246 & 1 为0,是偶数
也可以用你的方法,但要修改一下。
d = 123 / 2
d.is_integer(),为False,是奇数
d= 246 /2
d.is_integer(),为True,是偶数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-8 17:14:21 | 显示全部楼层
景命 发表于 2017-7-8 17:07
>>> a = 4 / 2
>>> a
2.0

看懂了,谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-8 17:16:18 | 显示全部楼层
冬雪雪冬 发表于 2017-7-8 17:13
判断奇偶数主要的方法是取模:
123 % 2 为1,是奇数
246 % 2 为0,是偶数

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 02:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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