Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert user input to string in python 2.7 [duplicate]

When I enter

username = str(input("Username:"))

password = str(input("Password:"))

and after running the program, I fill in the input with my name and hit enter

username = sarang

I get the error

NameError: name 'sarang' is not defined

I have tried

username = '"{}"'.format(input("Username:"))

and

password = '"{}"'.format(input("Password:"))

but I end up getting the same error.

How do I convert the input into a string and fix the error?

like image 414
sarang.g Avatar asked Feb 08 '23 05:02

sarang.g


1 Answers

Use raw_input() in Python 2.x and input() in Python 3.x to get a string.

You have two choices: run your code via Python 3.x or change input() to raw_input() in your code.

Python 2.x input() evaluates the user input as code, not as data. It looks for a variable in your existing code called sarang but fails to find it; thus a NameError is thrown.

Side note: you could add this to your code and call input_func() instead. It will pick the right input method automatically so your code will work the same in Python 2.x and 3.x:

input_func = None
try:
    input_func = raw_input
except NameError:
    input_func = input

# test it

username = input_func("Username:")
print(username)

Check out this question for more details.

like image 114
jDo Avatar answered Mar 02 '23 22:03

jDo