+ -
当前位置:首页 → 问答吧 → 问个python的简单问题

问个python的简单问题

时间:2011-06-18

来源:互联网

这个问题好像不怎么好谷歌百度,所以来这里发帖问了。如下:

有如下一段程序代码:
Python code
print("type integers,each followed by enter;or just enterr to finish")

total=0
count=0

while True:
    line=input("integer:")
    if line:
        print("line is true.")
    else:
        print("line is not true.")
        
    if line:
        try:
            number=int(line)
        except ValueError as err:
            print(err)
            continue
        except EOFError:
            break
        total+=number
        count+=1
    else:
        break
if count:
        print("count=",count,"total=",total,"mean=",total/count)



我在python shell中执行能得到预期的结果:
>>> 
type integers,each followed by enter;or just enterr to finish
integer:2
line is true.
integer:3
line is true.
integer:0
line is true.
integer:
line is not true.
count= 3 total= 5 mean= 1.6666666666666667

但是在windows的cmd命令提示符下运行这个程序却是另外一个结果:
E:\doc\PROGRAM\python\3>py1-1.py
type integers,each followed by enter;or just enterr to finish
integer:2
line is true.
integer:3
line is true.
integer:0
line is true.
integer:
line is true.
invalid literal for int() with base 10: '\r'
integer:

导致有区别的就是上面粗体字显示的地方,这里我是直接按回车输入的,为什么这里会产生差异?怎么解决这个问题?

作者: panzifei   发布时间: 2011-06-18

你看下input()的返回值,在cmd下和在IDLE下有什么区别吧。

作者: yq_118   发布时间: 2011-06-18

引用 1 楼 yq_118 的回复:
你看下input()的返回值,在cmd下和在IDLE下有什么区别吧。

自带的帮助文档好像对这个解释得比较简单,并没有这么深入的说明。网上的资料也是很简单。python的资料真少

作者: panzifei   发布时间: 2011-06-18

按一楼说的自己调试下。这种问题要习惯自己解决。这就是经验的来源和积累。

作者: iambic   发布时间: 2011-06-18

呵呵,才开始学,还不怎么懂。
调试过了,用它自己的工具调试不是跟在idle中执行一样的吗,结果是正确的。
现在的问题是在cmd命令提示符中没有得到我预期的执行结果。

作者: panzifei   发布时间: 2011-06-18