2016-06-07 117 views
3

我试图使用input()来编写add()函数,但似乎输入对我来说真的不起作用。 该模块如下:input()命令不适用于Sublime Text 3

def add (n1, n2): 

    return (n1+n2) 

def main(): 

    print (add(input("Enter number one, please:"),input ("Enter number two, please:"))) 

if __name__ == "__main__": 
    main() 

当跑,我只是得到了“输入一个号码,请:”提示,并输入实际数量,按ENTER键时,没有真的发生。 我试图得到“崇高的输入”包,但无济于事。

我想在不诉诸Ubuntu的情况下运行它(我使用的是Windows 8.1)。

+1

我不熟悉崇高文本及其交互模式下输入的方式,但您应该阅读http://stackoverflow.com/questions/20449427/how-can- i-read-inputs-as-in-in-python,因为这不会做你想做的事情。 –

+0

当我在Windows 7上运行代码时,您的代码可以正常工作,但它可能不是执行该任务的最佳方式,但它可以工作。 – Brian

+2

相关:http://stackoverflow.com/questions/10604409/sublime-text-2-console-input –

回答

1

首先在Python 3中关闭input不再解释您提供给它的数据类型。这实质上意味着你给它的所有东西都将被读作一个字符串。这意味着add函数不会像预期的那样工作。为了解决这个问题变化的代码来执行以下操作:

def add (n1, n2): 

    return (n1+n2) 

def main(): 

    print (add(float(input("Enter number one, please:")),float(input ("Enter number two, please:")))) 

if __name__ == "__main__": 
    main() 

加法内建float功能的确保输入在转换成浮体和可以因此在其上数学运算。

其次,Sublime Text 3仍处于beta版开发阶段。这意味着某些功能可能无法按预期工作。尝试使用Sublime Text 2.另外,我使用python add.py在命令行中运行了上面的代码,它完美地工作。注意:我将文件保存为add.py

+0

我照你说的,该模块看起来像现在这样: 高清加(N1,N2): \t回报(N1 + N2) 高清的main(): \t印刷(添加(浮点(输入(“输入头号请: “)),浮点型(输入(” 输入号码二,请:“)))) 如果__name__ == ”__main__“: \t的main() 我也尝试建立使用字符串模块因为你说它是input()的默认值,但它仍然不起作用。 这是它: DEF的main(): \t人=输入( “给我一个字:”) \t打印(人) 如果__name__ == “__main__”: \t的main() – Ben