如何将几个输入循环到字典文件Wirth Python中



我的目标是在一个循环中接受两个用户输入,将它们保存在字典中,当用户结束循环时,让用户保存字典。

# ------ 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.")

最新更新