Why does Python's eval(input("Enter input: ")) change input's datatype?
<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>