【问题标题】:input() command not working on Sublime Text 3 [duplicate]input()命令不适用于Sublime Text 3 [重复]
【发布时间】:2016-10-07 12:16:43
【问题描述】:

我正在尝试使用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()

运行时,我只是得到“请输入第一个:”提示,当输入一个实际数字并按 ENTER 时,什么都没有发生。 我尝试获取“Sublime Input”包,但无济于事。

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

【问题讨论】:

  • 我不熟悉 sublime text 以及它在交互模式下接受输入的方式,但你应该阅读stackoverflow.com/questions/20449427/…,因为这不会达到你想要的效果。
  • 您的代码在我在 Windows 7 上运行时可以正常工作,它可能不是完成该任务的最佳方式,但它可以工作。
  • 即使这样有效,它也可能无法达到您期望的效果。对于 1 和 2,您将得到 '12',因为 input 返回一个字符串。

标签: python python-3.x input sublimetext3


【解决方案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("Enter第一个,请:")),float(input("请输入第二个:")))) if name == "main": main()我还尝试使用 String 构建模块,因为您说它是 input() 的默认值,但它仍然不起作用。就是这样: def main(): person = input("Give me a word:") print (person) if name == "main": main()
猜你喜欢
  • 2016-12-27
  • 2015-04-16
  • 2016-01-05
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多