A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© laiminghui 高级黑马   /  2013-5-20 12:21  /  1512 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么老有报错:
求高手解答
x=16
ans = 0
if x >= 0:
    while ans*ans < x:
        ans = ans + 1
        print 'ans =', ans
    if ans*ans != x:
        print x, 'is not a perfect square'
    else: print ans
else:  print x, 'is a negative number'   

我使用的  python 2.7版本

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
楼主童鞋,if x >= 0 这条if判断好像用不着吧
因为一开始你就定义了x=16了啊,建议你去掉这条if 和最后那条else语句试试,
我这没有python 2.7,现在用java给你实现了一下,你看下是不是你想要的结果:
  1. public static void main(String[] args)
  2.         {               
  3.                 int x=16;
  4.                 int ans=0;
  5.                 while(ans*ans<x)
  6.                 {
  7.                         ans = ans + 1;
  8.                         System.out.println("ans ="+ans);                       
  9.                 }
  10.                 if(ans*ans != x)
  11.                         System.out.println(x+"is not a perfect square");
  12.                 else
  13.                         System.out.println(ans);
  14.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
萧萧北 发表于 2013-6-15 09:29
楼主童鞋,if x >= 0 这条if判断好像用不着吧
因为一开始你就定义了x=16了啊,建议你去掉这条if 和最后那条 ...

:handshake
回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马