title: Why does Python's eval(input("Enter input: ")) change input's datatype?
body: <p>In Python 3, I write a simple command to accept an integer input from the user thus:</p>
  
  <pre><code>x = int(input("Enter a number: "))
  </code></pre>
  
  <p>If I skip the <code>int()</code> part and simply use <code>x = input("Enter a number: ")</code>, my input's datatype is a string, not an integer. I understand that.</p>
  
  <p>However, if I use the following command:</p>
  
  <pre><code>x = eval(input("Enter a number: "))
  </code></pre>
  
  <p>the input's datatype is 'int'.</p>
  
  <p>Why does this happen?</p>