从Python读取输入并在while循环中打印出来

时间:2014-01-25 19:01:56

标签: python c++ input while-loop

我想知道如何将以下C ++代码翻译成Python代码。

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

我的猜测是这样的

import sys

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

但它不起作用......请帮帮我。谢谢。

2 个答案:

答案 0 :(得分: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( '' )
  3. 示例:

    >>> raw_input() == ''
    True
    

答案 1 :(得分:1)

这是因为Python中的n = raw_input()没有返回值,而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