Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
User input & Dictionary
#1
Hi All,

I'm just learning python.

I need user to enter Month and the print statement should print the complete Month
e.g.
Input = Jan
Output = January

#print(monthConversions[month]) works for me fine but I wanted to use a comparator to check if user has entered correctly and print Wrong Value if input is not appropriate.

monthConversions = {
    "Jan": "January",
    "Feb": "Februarzy",
    "Mar": "March",
    "April": "April",
    "May": "May",
    "June": "June",
    "July": "July",
    "Aug": "August",
    "Sep": "September",
    "Oct": "October",
    "Nov": "November",
    "Dec": "December",
}

month  = input("Enter month in three digit ")


if month == monthConversions:
    print(monthConversions[month])
else:
    print("Wrong Value ")

# print("You entered " + str(month))
After I run the code I get

Enter month in three digit Jan
Wrong Value


Reply
#2
You're checking whether month is equal to the dictionary monthConversions, which will obviously never be True - values of different types are never equal. What comparison do you actually want? Do you want to check whether the input exists as a key in the dict, or something else?
Reply
#3
You want to do
 
if month in monthConversions:
    print(monthConversions[month])
else:
    print("Wrong Value ")
however,there is more pythonic ways to do it
one would be
try:
    print(monthConversions[month])
except KeyError:
    print("Wrong Value")
the best would be

print(monthConversions.get(month, "Wrong Value"))
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#4
(Mar-28-2020, 09:38 AM)ndc85430 Wrote: You're checking whether month is equal to the dictionary monthConversions, which will obviously never be True - values of different types are never equal. What comparison do you actually want? Do you want to check whether the input exists as a key in the dict, or something else?

hi thanks for the response.
I need the output to be January when I input Jan
if I input anything else it should be "Wrong Value"

In my case when I enter Jan im getting wrong value despite of Jan : January being available in the list.
Reply
#5
Ok, so how do you get the value associated with "Jan" in the dict?
Reply
#6
(Mar-28-2020, 10:07 AM)buran Wrote: You want to do
 
if month in monthConversions:
    print(monthConversions[month])
else:
    print("Wrong Value ")
however,there is more pythonic ways to do it
one would be
try:
    print(monthConversions[month])
except KeyError:
    print("Wrong Value")
the best would be

print(monthConversions.get(month, "Wrong Value"))

Thanks alot the if month in month.conversations worked for me. This Is what I was exactly looking for.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  WHILE LOOP NOT RETURNING USER INPUT AFTER ZerroDivisionError! HELP! ayodele_martins1 7 991 Oct-01-2023, 07:36 PM
Last Post: ayodele_martins1
  restrict user input to numerical values MCL169 2 869 Apr-08-2023, 05:40 PM
Last Post: MCL169
  user input values into list of lists tauros73 3 1,025 Dec-29-2022, 05:54 PM
Last Post: deanhystad
Information How to take url in telegram bot user input and put it as an argument in a function? askfriends 0 1,033 Dec-25-2022, 03:00 PM
Last Post: askfriends
Question Take user input and split files using 7z in python askfriends 2 1,030 Dec-11-2022, 07:39 PM
Last Post: snippsat
Sad how to validate user input from database johnconar 3 1,837 Sep-11-2022, 12:36 PM
Last Post: ndc85430
  How to split the input taken from user into a single character? mHosseinDS86 3 1,138 Aug-17-2022, 12:43 PM
Last Post: Pedroski55
  Use pexpect to send user input alisha17 0 1,828 May-10-2022, 02:44 AM
Last Post: alisha17
  WHILE Loop - constant variables NOT working with user input boundaries C0D3R 4 1,434 Apr-05-2022, 06:18 AM
Last Post: C0D3R
Question How to let the user add 'None' to an specific array in a dictionary? noahverner1995 4 1,735 Dec-26-2021, 10:03 AM
Last Post: noahverner1995

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020