2014-01-25 81 views
0

我在想如何將以下C++代碼翻譯成Python代碼。從Python中讀取輸入並在while循環中打印出

int n; 
while (cin >> n) 
cout << n <<endl; 

我的猜測是,它會是這樣的

import sys 

while n = raw_input(): 
    print n + "\n" 

,但它不工作...請幫助我。謝謝。

+0

你得到了什麼錯誤信息? – 2014-01-25 19:14:29

回答

1

或許是這樣的:

import sys # why? 

n = "string" 

while n: 
    n = raw_input() 
    print n + '\n' 

然而

while n = raw_input(): # incorrect. 

,因爲這將無法正常工作:

  1. n沒有定義
  2. 在任何情況下,測試平等,你應該通常使用==,雖然不是在這種特殊情況下,因爲這將意味着基本,而n等於empty string('')

例如:

>>> raw_input() == '' 
True 
1

這是因爲n = raw_input()在Python不使用C而cin >> n返回一個值++確實。 (這節省了程序員最常見的錯誤,即用=代替==

您可以嘗試類似的方法。

n = raw_input("Enter Something: ") 
while n: 
    print n 
    n = raw_input("Enter Something: ") 

測試運行:

>>> 
Enter Something: Monty 
Monty 
Enter Something: Python 
Python 
Enter Something: Empty Line Next 
Empty Line Next 
Enter Something: 

P.S - 沒有必要在這種情況下,import sys的(如果你不是在你的代碼中使用任何其他地方)。而且,print語句會自動將光標移動到下一行,因此在這種情況下不需要添加\n

+0

謝謝。我在這個網站http://www.compileonline.com/execute_python_online.php上測試了它,並且我得到了這個錯誤報告:輸入了一些東西:Traceback(最近調用了最後一個): 文件「main.py」,第5行,在 n = raw_input(「Enter Something:」) EOFError:讀取一行時的EOF – user3213711

+0

這很可能與在線解釋器有關。爲什麼不使用Python包提供的IDLE?或者在shell中使用Python。 –

+0

我明白了。什麼是shell中的Python?感謝您的幫助! – user3213711

相關問題