Sublime Text 3上的input()命令无法工作

3
我正尝试使用 input() 来编写一个 add() 函数,但似乎输入并没有按照我的要求生效。 以下是该模块的代码:

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()

当我运行时,只会得到“请输入第一个数字:”的提示,当输入实际数字并按下回车键时,什么都不会发生。我尝试获取“Sublime Input”软件包,但没有成功。我希望能够使其在不使用Ubuntu(我正在使用Windows 8.1)的情况下运行。

1
我不熟悉 Sublime Text 及其交互模式下输入的方式,但你应该阅读 https://dev59.com/xGIj5IYBdhLWcg3wRTH2,因为这并不能实现你想要的功能。 - Morgan Thrapp
你的代码在我在Windows 7上运行时工作正常,虽然这可能不是完成该任务的最佳方式,但它确实有效。 - Brian
2
相关链接: https://dev59.com/mWkv5IYBdhLWcg3wbgQx - OneCricketeer
即使那样做可以起作用,它也可能不会按照你的期望执行。对于1和2,你将得到“12”,因为input返回一个字符串。 - DeepSpace
1个回答

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

我按照你说的做了,模块现在看起来像这样: def add (n1, n2): return (n1+n2)def main (): print (add(float(input("请输入第一个数字:")),float(input("请输入第二个数字:"))))if name == "main": main()我还尝试使用字符串构建模块,因为你说它是input()的默认值,但仍然不起作用。 代码如下:def main(): person = input("给我一个单词:") print (person)if name == "main": main() - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接