我希望用户输入一个特定的产品名称(保存在一个文件中),因此我想打印出该产品的价格(保存在另一个文件中),但不能这样做。
我刚刚开始编程,所以它对我来说是新的。
def find_in_file(f) :
myfile = open("file1.txt")
products = myfile.read()
products = products.splitlines()
if f in products:
return "Product is in list"
else:
return "Product is not in list"
def printing_in_file(p) :
myprice = open("file2.txt")
price = myprice.read()
price = price.splitlines()
return price
if code in sec_code.values():
product = input("Enter product name: ")
print(printing_in_file(p))
我期望价格作为输出,但是我得到的未定义名称'p'。
答案 0 :(得分:0)
以下答案有效,但由于您没有提供输入文件的样本,因此此答案尚不完整。
您提供的代码没有'p'变量,因此我将其替换为变量 product 。我为函数 find_product (名为 find_in_file )中的返回值创建了 bool 值。如果输入的产品名称完全匹配(这将产生问题),则返回布尔值True。接下来,代码将调用产品名称的函数 find_product_price (名为 printing_in_file )。我必须创建包含产品名称和价格的文件,因为您没有提供示例文件作为问题的一部分。
此代码有效,但有局限性,因为我不知道您的输入文件或sec_code值的确切格式。有了更多信息,可以改进此代码,或者用一些新的代码替换掉更好的代码。
祝您编码顺利。
def find_product(product_name) :
inventory_file = open('tmpFile.txt', 'r', encoding='utf-8')
products = inventory_file.read()
products = products.splitlines()
if product_name in products:
return True
else:
return False
def find_product_price(product_name) :
product_prices = open('tmpFile01.txt', 'r', encoding='utf-8')
prices = product_prices.read()
price = prices.splitlines()
if product_name in price:
return price
product = input("Enter product name: ")
product_search = find_product(product)
if product_search == True:
print ('The product is available.')
print(find_product_price(product))
# outputs
['cisco router $350']
elif product_search == False:
print (f'{product} are not available for purchase.')