Python论坛  - 讨论区

标题:shell交互中代码输入疑问

2011年04月22日 星期五 10:02

while True:
reply=raw_input('enter text:')
if reply=='stop':
break
print int(reply)**2
print 'Bye'

以上这段小代码在shell里输入后执行提示错误:IndentationError: unindent does not match any outer indentation level

 

但保存为.py文件后执行通过没问题。

 

请问是什么问题??

2011年04月22日 星期五 10:51

缩进问题

2011年04月22日 星期五 10:57

while True:
    reply=raw_input('enter text:')
    if reply=='stop':
        break
    print int(reply)**2
print 'Bye'

缩进我注意的啊,不然执行py文件也不会通过

2011年04月22日 星期五 12:06

我用的是3.2

while True:

    reply=input('enter text:')

    if reply=='stop':

        break

    print (int(reply)**2)

print ('Bye')

没问题啊

2011年04月22日 星期五 12:35

while True:
reply=raw_input('enter text:')
if reply=='stop':
break
print int(reply)**3
print 'bye'

可是我在shell里输入以上代码 就是提示:IndentationError: unindent does not match any outer indentation level

执行上述的py文件就没问题

pyhon版本2.6.6

2011年04月22日 星期五 12:52

缩进问题啊缩进问题

2011年04月22日 星期五 13:15

不是缩进的问题,楼上的能试试再说可以吗?

另外可能是ie版本的问题  按缩进粘帖过来的代码显示不出来

2011年04月22日 星期五 13:18

 

不是缩进问题是什么问题? RP?

2011年04月22日 星期五 13:52

 

我先前问的时候已写了:保存为py文件通过没问题,但那是在shell里一行行敲入这些代码后回车发现上述问题的。

 

2011年04月22日 星期五 14:00

我尝试了这个例子,在最后一行的地方出了问题。

我个人感觉,最后一行的print语句并不在while循环之内

所以应该在退出while循环的输入,之后再写这句。

因为这一句无法匹配到while循环之内。

但是在退出循环的输入之后,这段代码就开始运行了。

所以,建议写为函数的形式

def mathfun():
      while True:
          reply=raw_input('enter text')
          if reply=='stop':
              break
          print int(reply)**2
      print 'bye'

之后调用
 mathfun()

2011年04月22日 星期五 17:46

难过的不是不懂 而是怎么讲都理解不了

难道在shell里敲就不用管缩进?唉...

2011年04月22日 星期五 20:13

呵呵,呵呵呵呵 淡定

2011年04月24日 星期日 09:46

interactive mode里, 当代码块回到第一列的时候, 说明准备把这段代码交给解释器进行解释处理了, 这时候在第一列继续代码应该是会出错的。

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号