Posts: 5
Threads: 2
Joined: Mar 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) Output: True
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) Output: pizza in menu = False
Can anyone help me out here? This seems so straight forward. Thank you for any consideration.
Posts: 8,158
Threads: 160
Joined: Sep 2016
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
Posts: 5
Threads: 2
Joined: Mar 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
new_menu use string addition to add add_item to menu
print the new_menu
testing
check if an item is on the menu, check for previous items and the item you added
# add to menu
# Testing Add to Menu - create user input to search for an item on the new menu
print(menu)
add_item = input("What would you like to add? ")
new_menu = menu + ", " + add_item Output: salad, pasta, sandwich, pizza, drinks, dessert
What would you like to add? soup
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) Output: salad, pasta, sandwich, pizza, drinks, dessert, soup
What would you like to order from the new menu? soup
soup in the new menu = False
Posts: 8,158
Threads: 160
Joined: Sep 2016
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 string
still 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}')
Posts: 5
Threads: 2
Joined: Mar 2020
Mar-05-2020, 09:50 PM
(This post was last modified: Mar-05-2020, 09:50 PM by al_Czervik.)
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 however
paint_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 defined The instructor specifies that when using red in paint_colors , red needs to be a str 'red'
|