Python:给一个字符串分配一个数字
Python: Assign a number to a string
我写了一个“购物车程序”,可以添加、删除、显示和清除购物车的内容。
现在我希望能够使用索引号从购物车中删除内容。
例如:如果我想将一个苹果添加到我的购物车并列出我的购物车的内容,它看起来像这样:
https://i.stack.imgur.com/9kFpv.png
现在我希望能够删除购物车中的内容,该内容前面有索引号。我是 python 的菜鸟,如果我在装傻,请见谅。
# import necessary functions
from IPython.display import clear_output
# global list variable
cart = [ ]
# create function to add items to cart
def addItem(item):
clear_output( )
cart.append(item)
print( "{} has been added.".format(item) )
# create function to remove items from cart
def removeItem(item):
clear_output( )
try:
cart.remove(item)
print( "{} has been removed.".format(item) )
except:
print("Sorry we could not remove that item.")
# create a function to show items in cart
def showCart( ):
clear_output( )
if cart:
print("Here is your cart:")
else:
print("Your cart is empty.")
for index, item in enumerate (cart):
print( "{}) {}".format(index + 1, item) )
# create function to clear items from cart
def clearCart( ):
clear_output( )
cart.clear( )
print("Your cart is empty.")
# create main function that loops until the user quits
def main( ):
done = False
while not done:
ans = input("quit/add/remove/show/clear: ").lower( )
# base case
if ans == "quit":
print("Thanks for using our program.")
done = True
elif ans == "add":
item = input("What would you like to add? ").title( )
addItem(item)
elif ans == "remove":
showCart( )
item = input("What item would you like to remove? Type a number: ")
removeItem(item)
elif ans == "show":
showCart( )
elif ans == "clear":
clearCart( )
else:
print("Sorry that was not an option.")
main( )
这是我当前的代码。现在,当我想从购物车中删除一件商品时,我只能先写“remove”,然后再输入该商品的名称。看起来像这样:
https://i.stack.imgur.com/zi4Ez.png
但是我希望能够根据索引号删除一个项目。
您可以使用 cart.pop() 方法。假设您要移除购物车中的第 3 件商品,您可以使用 cart.pop(2) .
您可以使用list.pop()
功能取出物品,
您还可以存储要从列表中删除的本地项目,以确保这是您要删除的项目:
例如:
x = list.pop(<num of item>)
弹出后将从列表中删除
如果您不在 pop 函数中插入任何整数,则默认弹出最后添加的项目 (FIFO)
我建议使用字典更好更轻松地组织数据,每个值都可以有数量、序列号等。
在您的 removeItem(item)
函数中,将 cart.remove(item)
替换为 cart.pop(item)
pop()
使用其索引号从列表中删除元素。
这是实现您想要的目标的正确方法。
- 您需要使用 pop() 方法,该方法使用索引号从列表中删除项目。
所以像这样修改您的 RemoveItem 函数:
def removeItem(项目):
clear_output( )
try:
cart.pop(item) # Used pop instead of remove
print( "{} has been removed.".format(item))
except:
print("Sorry we could not remove that item.")
然后,在您的 main() 函数中,您必须将用户输入值转换为整数值,以便它可以传递给函数并由 pop() 方法使用。
这是更新后的代码:
elif ans == "remove":
showCart( )
item = int(input("What item would you like to remove? Type a number: "))[enter image description here][1]
removeItem(item)
我尝试按照上述更改修改您的代码并且效果很好。请参阅随附的输出屏幕截图以供参考。
Output
我写了一个“购物车程序”,可以添加、删除、显示和清除购物车的内容。
现在我希望能够使用索引号从购物车中删除内容。 例如:如果我想将一个苹果添加到我的购物车并列出我的购物车的内容,它看起来像这样: https://i.stack.imgur.com/9kFpv.png
现在我希望能够删除购物车中的内容,该内容前面有索引号。我是 python 的菜鸟,如果我在装傻,请见谅。
# import necessary functions
from IPython.display import clear_output
# global list variable
cart = [ ]
# create function to add items to cart
def addItem(item):
clear_output( )
cart.append(item)
print( "{} has been added.".format(item) )
# create function to remove items from cart
def removeItem(item):
clear_output( )
try:
cart.remove(item)
print( "{} has been removed.".format(item) )
except:
print("Sorry we could not remove that item.")
# create a function to show items in cart
def showCart( ):
clear_output( )
if cart:
print("Here is your cart:")
else:
print("Your cart is empty.")
for index, item in enumerate (cart):
print( "{}) {}".format(index + 1, item) )
# create function to clear items from cart
def clearCart( ):
clear_output( )
cart.clear( )
print("Your cart is empty.")
# create main function that loops until the user quits
def main( ):
done = False
while not done:
ans = input("quit/add/remove/show/clear: ").lower( )
# base case
if ans == "quit":
print("Thanks for using our program.")
done = True
elif ans == "add":
item = input("What would you like to add? ").title( )
addItem(item)
elif ans == "remove":
showCart( )
item = input("What item would you like to remove? Type a number: ")
removeItem(item)
elif ans == "show":
showCart( )
elif ans == "clear":
clearCart( )
else:
print("Sorry that was not an option.")
main( )
这是我当前的代码。现在,当我想从购物车中删除一件商品时,我只能先写“remove”,然后再输入该商品的名称。看起来像这样: https://i.stack.imgur.com/zi4Ez.png 但是我希望能够根据索引号删除一个项目。
您可以使用 cart.pop() 方法。假设您要移除购物车中的第 3 件商品,您可以使用 cart.pop(2) .
您可以使用list.pop()
功能取出物品,
您还可以存储要从列表中删除的本地项目,以确保这是您要删除的项目:
例如:
x = list.pop(<num of item>)
弹出后将从列表中删除 如果您不在 pop 函数中插入任何整数,则默认弹出最后添加的项目 (FIFO)
我建议使用字典更好更轻松地组织数据,每个值都可以有数量、序列号等。
在您的 removeItem(item)
函数中,将 cart.remove(item)
替换为 cart.pop(item)
pop()
使用其索引号从列表中删除元素。
这是实现您想要的目标的正确方法。
- 您需要使用 pop() 方法,该方法使用索引号从列表中删除项目。 所以像这样修改您的 RemoveItem 函数:
def removeItem(项目):
clear_output( )
try:
cart.pop(item) # Used pop instead of remove
print( "{} has been removed.".format(item))
except:
print("Sorry we could not remove that item.")
然后,在您的 main() 函数中,您必须将用户输入值转换为整数值,以便它可以传递给函数并由 pop() 方法使用。 这是更新后的代码:
elif ans == "remove": showCart( ) item = int(input("What item would you like to remove? Type a number: "))[enter image description here][1] removeItem(item)
我尝试按照上述更改修改您的代码并且效果很好。请参阅随附的输出屏幕截图以供参考。 Output