我对Python很新鲜,需要帮助从txt文件中读取信息。我有一个大的C ++应用需要在Python中复制它。可悲的是,我不知道从哪里开始。我一直在阅读和观看一些教程,但他们的帮助很少,而且我已经没时间了。
所以我的任务是: 我有一个购物清单:
- 商品名称,价格和年龄。
我还需要创建两个搜索。
if name of the item is == to the input name.
例如,您输入年龄15 - 30,该程序打印出适当的 物品并按价格对其进行分类。
任何帮助都会很好。至少从我可以开始的地方开始。 谢谢。
EDITED
到目前为止,我有这段代码:
class data:
price = 0
agefrom = 0
ageto = 0
name = ''
# File reading
def reading():
with open('toys.txt') as fd:
toyslist = []
lines = fd.readlines()
for line in lines:
information = line.split()
print(information)
"""information2 = {
'price': int(information[1])
'ageftom': int(information[2])
'ageto': int(information[3])
#'name': information[4]
}"""
information2 = data()
information2.price = int(information[0])
information2.agefrom = int(information[1])
information2.ageto = int(information[2])
information2.name = information[3]
toyslist.append(information2)
return toyslist
information = reading()
我有这个问题的问题。我想将用户的输入与txt文件中的项目信息进行比较。
n_search = raw_input(" Please enter the toy you're looking for: ")
def name_search(information):
for data in information:
if data.name == n_search:
print ("We have this toy.")
else:
print ("Sorry, but we don't have this toy.")
答案 0 :(得分:0)
如果你想在列表中填充某些内容,它通常会像以下一样简单:
if "apple" in ["tuna", "pencil", "apple"]
但是,在您的情况下,要搜索的列表是列表列表,因此您需要" project"不知何故。列表理解通常是最容易推理的,在for循环中是一种for循环。
if "apple" in [name for name,price,age in [["tuna",230.0,3],["apple",0.50,1],["pencil",1.50,2]]]
从这里开始,您需要开始查看过滤器,从而提供确定条目是否匹配的函数。你可以在for循环中使用自己的东西,或者使用像#iteffools那样更具功能性的东西。
对列表进行排序也很简单,只需使用排序(my_list)'如果需要,提供比较器功能。
根据你的评论举例...
class ShoppingListItem:
def __init__(self,name,price,age):
self.name=name
self.price=price
self.age=age
或
from collections import namedtuple
sli = namedtuple("ShoppingListItem",['name','age','price'])