How do you input integers using input in Python

107
June 22, 2019, at 03:30 AM

I'm trying to teach myself how to code in Python and this is my first time posting to Stack Overflow, so please excuse any improprieties in this post. But let's get right to it.

I'm trying to use the input command to return an integer. I've done my research, too, so below are my multiple attempts in Python 3.4 and the results that follow:

Attempt #1
guess_row = int(input("Guess Row: "))

I get back the following:

Traceback (most recent call last):
File "<input>", line 1, in <module> 
ValueError: invalid literal for int() with base 10: 'Guess Row: 2`
Attempt #2
guess_row = float(input("Guess Row: "))

I get back the following:

Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: could not convert string to float: "Guess Row: 2""
Attempt #3
try:
    guess_row=int(input("Guess Row: "))
except ValueError:
    print("Not an integer")

Here, I get back the following:

Guess Row: 2
Not an integer

Although it returns something, I know this is wrong because, for one, the input returns as a string and it also returns the print command.

Point being, I've tried int, float, and try, and so far nothing has worked. Any suggestions? I just want to be able to input an integer and have it returned as one.

Answer 1

Your third attempt is correct - but what is happening to guess_row before/after this code? For example, consider the following:

a = "Hello"
try:
    a = int(input("Enter a number: "))
except ValueError:
    print("Not an integer value...")
print(str(a))

If you enter a valid number, the final line will print out the value you entered. If not, an exception will be raised (showing the error message in the except block) and a will remain unchanged, so the final line will print "Hello" instead.

You can refine this so that an invalid number will prompt the user to re-enter the value:

a = None
while a is None:
    try:
        a = int(input("Enter a number: "))
    except ValueError:
        print("Not an integer value...")
print(str(a))
Answer 2

To illustrate the comments, from 3.4.2 Idle Shell on Windows, python.org (PSF) installer

>>> n = int(input('Guess1: '))
Guess1: 2
>>> n2 = float(input('Guess2: '))
Guess2: 3.1
>>> n, n2
(2, 3.1)

What system are you using and how did you install Python?

Answer 3

However, I noticed something odd. The code works if I run it just by using the traditional run (i.e., the green button) that runs the entire code, rather than trying to execute individuals lines of code by pressing F2. Does anyone know why this may be the case?

This seems to be a problem in Eclipse, from the PyDev FAQ:

Why raw_input() / input() does not work correctly in PyDev?

The eclipse console is not an exact copy of a shell... one of the changes is that when you press in a shell, it may give you a \r, \n or \r\n as an end-line char, depending on your platform. Python does not expect this -- from the docs it says that it will remove the last \n (checked in version 2.4), but, in some platforms that will leave a \r there. This means that the raw_input() should usually be used as raw_input().replace('\r', ''), and input() should be changed for: eval(raw_input().replace('\r', '')).

Also see: PyDev 3.7.1 in Eclipse 4 — input() prepends prompt string to input variable?, Unable to provide user input in PyDev console on Eclipse with Jython.

READ ALSO
How can generate email address-like strings in python? [on hold]

How can generate email address-like strings in python? [on hold]

Sound's not scientific but cool when I have been facing to the following snippet inspired by jezrael and after execute It is possible to leave an email contactI already played with that But I didn't understand:

127
Some email recipients get messages with =0D or =3D characters

Some email recipients get messages with =0D or =3D characters

I have a LAMP web application that emails usersSome users have complained that instead of seeing html email messages, they see weird sequences of characters such as =0D or =3D

128
mocha IT inside of a callback

mocha IT inside of a callback

I am new to mocha and node

114