title: Is variable type declaration needed in Python when value comes from user input?
body: <p>As I have understood, in Python(I am using 2.7.2+) variable type declaration happens automatically based on the value added to variable. If I assign an integer to variable named <code>nr</code> and would like to subtract 1 from this variable like this:</p>
  
  <pre><code>nr = raw_input("Word: ");
  number = nr - 1
  </code></pre>
  
  <p>..then I end up with the <code>unsupported operand type(s) for -: 'str' and 'int'</code> error. Now if I specify that my input will be integer like this:</p>
  
  <pre><code>nr = int(raw_input("Word: "));
  number = nr - 1
  </code></pre>
  
  <p>..then I'm able to complete the subtraction. Why is it needed to declare the variable type in this time?</p>