2016-06-07 126 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