鱼C论坛

 找回密码
 立即注册
查看: 536|回复: 4

[已解决]python100例第三例自己的想法

[复制链接]
发表于 2018-7-24 15:33:09 | 显示全部楼层 |阅读模式

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

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

x
  1. #coding=gbk
  2. #一个整数,它加上100后是一个完全平方数,
  3. #再加上168又是一个完全平方数,请问该数是多少?

  4. for i in range(-10000,10001,1):
  5.         if isinstance((i+100)**0.5,int)and isinstance((i+100+168)**0.5,int):
  6.                 print(i)
复制代码

为什么会没有输出呢?
最佳答案
2018-7-24 16:05:25
因为你的思路与用法错了~

首先,函数 isinstance(object, classinfo) 是在问此变量是否为此数据类型。您输入的语法是没问题的,但不会是您想要的结果,因为整型与浮点型的运算结果会是浮点型
尝试:type((1+100)**0.5) ,结果会是 float,因为根号是浮点型的运算。

既然您问的是 float == int,判断结果当然是 False
and 逻辑,只要前者是 False,那么将直接返回 False
既然是 False,那么由始至终都不会进入 if 的程序,也就是 print

提示:您可以尝试 x + 100 是否为完全平方,如果是,则再尝试 x +100 + 168 是否为完全平方~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-24 15:50:27 | 显示全部楼层
一个数开根号结果固定是float
  1. >>> type(9**0.5)
  2. <class 'float'>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-24 16:05:25 | 显示全部楼层    本楼为最佳答案   
因为你的思路与用法错了~

首先,函数 isinstance(object, classinfo) 是在问此变量是否为此数据类型。您输入的语法是没问题的,但不会是您想要的结果,因为整型与浮点型的运算结果会是浮点型
尝试:type((1+100)**0.5) ,结果会是 float,因为根号是浮点型的运算。

既然您问的是 float == int,判断结果当然是 False
and 逻辑,只要前者是 False,那么将直接返回 False
既然是 False,那么由始至终都不会进入 if 的程序,也就是 print

提示:您可以尝试 x + 100 是否为完全平方,如果是,则再尝试 x +100 + 168 是否为完全平方~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-24 16:54:05 | 显示全部楼层
claws0n 发表于 2018-7-24 16:05
因为你的思路与用法错了~

首先,函数 isinstance(object, classinfo) 是在问此变量是否为此数据类型。您 ...

想到用isinstance()就是和您的提示的意思相同,想当然的用了,谢谢解答,再去试试!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-24 17:04:53 | 显示全部楼层
修正后的代码:
  1. #coding=gbk
  2. #一个整数,它加上100后是一个完全平方数,
  3. #再加上168又是一个完全平方数,请问该数是多少?

  4. for i in range(-100,10001,1):
  5.         a=(i+100)**0.5
  6.         a=int(a)
  7.         if a**2==(i+100):
  8.                 a=(i+100+168)**0.5
  9.                 a=int(a)
  10.                 if a**2==(i+100+168):
  11.                         print(i)
  12.                        
复制代码


输出结果:
1111.png

自己的想法:
1、这道题一开始拿到手我不会像网上那样去分析奇偶,而是会想到一开始利用循环求解(数据处理上肯定是比分析过的慢)
2、基础知识不够扎实
3、负数很容易忘掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 19:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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