我的目标是在一个循环中接受两个用户输入,将它们保存在字典中,当用户结束循环时,让用户保存字典。
# ------ Global Variables -------
user_cont = True
# ------- Functions -------
def get_Product():
while user_cont:
# get product code
get_ProductCode()
# get product number
get_ProductNum()
# save to dict
create_ProductDict()
# ask to continue
user_continue()
# save dict to file
def get_ProductCode():
作品
def get_ProductNum():
作品
def user_continue():
工作,但现在没有得到提示
我目前正在尝试修复的问题:
# save to dictionary
def create_ProductDict():
product_Dict = {}
productCode = get_ProductCode()
productNum = get_ProductNum()
print(product_Dict)
根据我对每个循环的理解,它应该接收返回的productCode和productNum,并存储它们?但现在它不会要求用户继续并结束循环,这样我就可以在尝试让用户保存字典之前查看它
此外,我需要让用户为数据选择一个文件名。
一如既往,我们非常感谢您的帮助!
这里有两个问题。第一个问题是,一旦create_ProductDict((函数结束,您的字典就会被销毁,因为字典是在函数的范围内创建的。
解决这一问题的一种方法是将全局范围中的字典声明为全局变量。这样,字典将随着更多项目的添加而持久存在
接下来,您的输入变量当前没有被使用,字典也没有被添加到其中
productDict[productCode] = productNumber
因此,假设您的输入函数等效于python的input((函数,那么解决这两个问题的解决方案将如下所示:
products = {}
def create_product_dict():
code = input("Enter Code: ")
num = input("Enter Number: ")
products[code] = num
create_product_dict()
create_product_dict()
print(products)
其输出为:
Enter Code: 123
Enter Number: 456
Enter Code: abc
Enter Number: 596
{'123': '456', 'abc': '596'}
希望这有帮助:(
试试这个:
def get_Product():
user_cont = True
while user_cont:
get_ProductCode()
get_ProductNum()
create_ProductDict()
user_cont = user_continue()
def user_continue():
ip = input('Enter Yes to Continue: ').lower()
return True if ip == 'yes' else False
这是我完成的主函数,上面的一切都为我指明了我需要的方向,但我无法完全回答我的问题。我的主要发现是在我要求继续之前更新了词典,然后在最后添加了保存的词典。(此处未包含与问题/解决方案无关的附加功能。谢谢!
user_cont = True
while user_cont:
# get product code
productCode = get_ProductCode()
# get product number
productNum = get_ProductNum()
# print(productCode, productNum)
# save to dict
products[productCode] = productNum
# debug to ensure dictionary was saving multi lines
# print(products)
# ask to continue
user_cont = user_continue()
for productCode, productNum in products.items():
formproducts = (productCode + ", " + productNum)
# print test
# print(formproducts)
# save dict to file
FILENAME = input(str("Please enter a file name: "))
file = open(FILENAME, "w")
file.write( str(products) )
file.close()
print("File saved.")