user input producing incorrect boolean - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: user input producing incorrect boolean (/thread-24812.html) |
user input producing incorrect boolean - al_Czervik - Mar-05-2020 Hello! I am brand new Python but have been coding VBA for a few years. Running through my introductory labs, I am running into a problem using the Boolean test. No errors are thrown but the boolean result is incorrect and I am following the syntax correctly to the best of my limited knowledge. I defined the variable correctly: menu = "salad, pasta, sandwich, pizza, drinks, dessert" print('pizza' in menu) When I introduce an input variable, something is busting.menu_ask = input("What would you like to order? ") What would you like to order? pizza print(menu_ask,"in menu =",'menu_ask' in menu) Can anyone help me out here? This seems so straight forward. Thank you for any consideration.
RE: user input producing incorrect boolean - buran - Mar-05-2020 it should be print(menu_ask, "in menu =", menu_ask in menu)now, couple of advises: at the moment menu is a str. it's better it to be list/tuple with each item being a str, in this case you can check for exact match. At the moment if your search term is part of another, bigger str, it will still give you True use string formmating or f-strings to construct the print output RE: user input producing incorrect boolean - al_Czervik - Mar-05-2020 Thank you Buran. I understand that and will keep that in consideration as I progress. As of now, I am at the very rudimentary levels so just want to ensure syntax and logic align. I'm aware of string formatting (.upper(), .lower(), etc.) but wanted to keep the ex as basic as possible. The class has not addressed f-strings or lists yet. I still don't understand why my program is incorrect. The lab requires me to: Quote:get user input for add_item variable print(menu) add_item = input("What would you like to add? ") new_menu = menu + ", " + add_item
print(new_menu) menu_ask = input("What would you like to order from the new menu? ") print(menu_ask, "in the new menu = ",menu_ask in menu)
RE: user input producing incorrect boolean - buran - Mar-05-2020 In first snippet it was not working because you were checking that string 'menu_ask' is in the menu . Note, not the variable menus_ask which has value pizza , but literally the string 'menu_ask' In the second one you introduce different error. you create new variable new_menu which has 'soup` as part of the stringstill you check in menu , which does not have soup you want to do menu = menu + ", " + add_item I see that assignment indeed ask menu to be string keep the list for future string formatting is not what you think print('{} in the new menu = {}'.format(men_ask, menu_ask in menu))or with f-strings print(f'{menu_ask} in the new menu = {menu_ask in menu}') RE: user input producing incorrect boolean - al_Czervik - Mar-05-2020 Thanks again. I fixed the syntax and it works now. Ok. I see about the string formatting - getting a little ahead of myself. I'm a little confused as to why print(menu_ask,"in the new menu =",menu_ask in new_menu) produces soup in the new menu = True howeverpaint_colors = "red, blud, green, black, orange, pink" print("Red in paint colors = ", red in paint_colors)where red in paint_colors throws a name error--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-35-2f9734434943> in <module>() 1 paint_colors = "red, blud, green, black, orange, pink" ----> 2 print("Red in paint colors = ", red in paint_colors) NameError: name 'red' is not definedThe instructor specifies that when using red in paint_colors , red needs to be a str 'red'
|