python - 检索列表值并使用用户输入更改值
问题描述
我有一串产品零件 = 'ABCDEFGHIJKL'。每个字母的起始值假定为 100。用户应该将数字添加到他们选择的特定字母中,该字母的值将相应更新。我不应该对这段代码使用字典。我写了我大致知道的东西,除了那些 [?]
def updateInventory():
startLevel = 100
partIds = 'ABCDE'
stockLevel = [startLevel] * len(partIds)
productCodes = []
while True:
partIdentifier = input("Enter part identifier or <ENTER> to end: ").upper()
if partIdentifier == '':
break
# partIdentifier must be in partIds
if partIdentifier not in partIds:
print("The part identifier is invalid")
else:
#print the part and its current quantity
print(f"Current stock level for {partIdentifier} = [?]")
while True:
# user tp input how much quantity to add
quantity = int(input("Enter quantity to add: "))
if quantity < 0:
print("The quantity is invalid")
else:
partIds[partIdentifier] += quantity
print(f"Updated stock level for {partIdentifier} = [?]")
break
updateInventory()
示例运行
Enter part identifier or ENTER to end: T
The part identifier is invalid
Enter part identifier or ENTER to end: E
Current stock level for E = 100
Enter quantity to add: 0
The quantity is invalid
Enter part identifier or ENTER to end: E
Current stock level for E = 100
Enter quantity to add: 25
Updated stock level for E = 125
解决方案
您1
在语句中使用 dict 键print
而不是partIdentifier
. 在第二部分中添加了数量,我认为这就是你想要的,如果你在 f 字符串的中间添加它不会被添加,除非你使用:=
.
此外,您可以检查键是否在没有.keys()
.
def updateInventory():
partIds = {'A': 100, 'B': 100, 'C': 100, 'D': 100, 'E': 100, 'F': 100, 'G': 100}
while True:
partIdentifier = input("Enter part identifier or <Enter> to end: ").upper()
if partIdentifier == '': # break the loop if the user press enter
break
# check the validity of the partIdentifier
if partIdentifier not in partIds:
print("The part identifier is invalid")
else:
print(f"Current stock level for {partIdentifier} = {partIds[partIdentifier]}")
# check if the amount entered by the user is acceptable
while True:
quantity = int(input("Enter quantity to add: "))
if quantity <= 0:
print("The quantity is invalid")
else:
partIds[partIdentifier] += quantity
print(f"Updated stock level for {partIdentifier} = {partIds[partIdentifier]}")
break
updateInventory()
推荐阅读
- ruby-on-rails - 如何按字边界或数字分割?
- c# - 将度数角度转换为旋转矩阵 C#
- python - python错误-TypeError:字符串索引必须是整数
- python - 如何在双元组上使用递归来总结第二个值?
- mysql - 条件更新查询
- drupal - 如何从 Drupal 8 中的 hook_form_alter 将参数传递给 ajax 回调
- java - Linux中散列命令之间的区别
- java - Using Intent to send user to another activity from Adapter
- git - 设置上游远程分支时不会运行预推送脚本
- css - 用于显示 CSS 属性定义的 WebStorm 工具